简介
楚列斯基凤姐发只适用于系数矩阵A是对称正定的情况。
操作方法
先将矩阵A进行楚列斯基分解:A=R'R;
然后接R'y=b;
最后解Rx=y,得到原方程组的接。下面给出利用楚列斯基分解法求解线性方程组Ax=b的函数。
function x=solvebyCHOL(A,b)
% 该函数利用Cholesky分解法求线性方程组Ax=b的解 lambda=eig(A); if lambda>eps&isequal(A,A') [n,n]=size(A); R=chol(A); %解R'y=b y(1)=b(1)/R(1,1); if n>1 for i=2:n y(i)=(b(i)-R(1:i-1,i)'*y(1:i-1)')/R(i,i); end end %解Rx=y x(n)=y(n)/R(n,n); if n>1 for i=n-1:-1:1 x(i)=(y(i)-R(i,i+1:n)*x(i+1:n)')/R(i,i); end end x=x'; else x=[]; disp('该方法只适用于对称正定的系数矩阵!'); end
举例应用
>> A=[3 3 -3;3 5 -2; -3 -2 5]; >> b=[1 2 3]'; >> x=solvebyCHOL(A,b) x = 10/3 -2/3 7/3 >> A*x %验证解的正确性 ans = 1 2 3