楚列斯基分解法解方程组matlab程序

作者:wendy | 创建时间: 2023-06-04
楚列斯基分解法解方程组matlab程序

简介

楚列斯基凤姐发只适用于系数矩阵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

点击展开全文

更多推荐