基于MATLAB的Cholesky分解法(by Violet)

来源:互联网 发布:淘宝实物有色差 编辑:程序博客网 时间:2024/05/16 23:39

Method


Let L=l11l21ln10l22ln2   00lnn
Use Squre Root Method, when A=LLT, we have:

uii=aiik=1i1u2ki,i=1,,n

uij=aiji1k=1uikujkuii,j=i+1,,n

Using these two function to realize Cholesky factorization.

function [L]=Cholesky(A)   %平方根法    [N,N]=size(A);    X=zeros(N,1);    Y=zeros(N,1);    for i=1:N        A(i,i)=sqrt(A(i,i)-A(i,1:i-1)*A(i,1:i-1)');        if A(i,i)==0            'A is singular, no unique solution';            break;        end        for j=i+1:N            A(j,i)=(A(j,i)-A(j,1:i-1)*A(i,1:i-1)')/A(i,i);        end    endfor x=1:N    for y=1:N        B(x,y)=A(x,y);      %右上角元素归0        if x<y            B(x,y)=0;            break;        end    endendL=B
原创粉丝点击