矩阵的Cholesky分解的Matlab实现.pdf
《矩阵的Cholesky分解的Matlab实现.pdf》由会员分享,可在线阅读,更多相关《矩阵的Cholesky分解的Matlab实现.pdf(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、矩阵的 Cholesky 分解的 Matlab 实现下次再补上改进的%Cholesky 分解法,%Cholesky 分解法function X=m_chol(A,b)N,N=size(A);X=zeros(N,1);Y=zeros(N,1);for i=1:NA(i,i)=sqrt(A(i,i)-A(i,1:i-1)*A(i,1:i-1);if A(i,i)=0A is singular.no unique solutionbreakendfor j=i+1:NA(j,i)=(A(j,i)-A(j,1:i-1)*A(i,1:i-1)/A(i,i);endendAb%前代法for j=1:NY(
2、j)=(b(j)-A(j,1:j-1)*Y(1:j-1)/A(j,j);endY%A=Afor k=N:-1:1X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N)/A(k,k);endCholesky 分解如果矩阵 X 是对称正定的,则 Cholesky 分解将矩阵 X 分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即 X=RR。MATLAB函数 chol(X)用于对矩阵 X 进行 Cholesky 分解,其调用格式为:R=chol(X):产生一个上三角阵 R,使 RR=X。若 X 为非对称正定,则输出一个出错信息。R,p=chol(X):这个命令格
3、式将不输出出错信息。当X 为对称正定的,则 p=0,R 与上述格式得到的结果相同;否则p 为一个正整数。如果X为满秩矩阵,则 R 为一个阶数为 q=p-1的上三角阵,且满足RR=X(1:q,1:q)。实现Cholesky分解后,线性方程组Ax=b变成RRx=b,所以x=R(Rb)。例7-4用 Cholesky 分解求解例7-1中的线性方程组。命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;R=chol(A)?Error using=cholMatrix must be positive definite命令执行时,出现错误信息,说明A 为非正定矩阵。转自:http:/203.208.37.104/search?q=cache:EfIWKymoWB8J:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩阵 Cholesky 分解 Matlab 实现
限制150内