楚列斯基分解法解方程组matlab程序
简介
- 01
楚列斯基凤姐发只适用于系数矩阵A是对称正定的情况。
操作方法
- 01
先将矩阵A进行楚列斯基分解:A=R'R;
- 02
然后接R'y=b;
- 03
最后解Rx=y,得到原方程组的接。下面给出利用楚列斯基分解法求解线性方程组Ax=b的函数。
- 04
function x=solvebyCHOL(A,b)
- 05
% 该函数利用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
- 06
举例应用
- 07
>> 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
赞 (0)