数值分析matlab程序lu分解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、程序
function [ L,U,zhibiao ] = LU_Decom( A )
%求矩阵A的LU分解,其中,
%A为要分解的矩阵
%L为单位下三角阵
%U为单位下三角阵
%flag为指标向量,zhishi='failure'表示计算失败,zhibiao='OK'表示计算成功[n,m]=size(A);
%要求所分解的矩阵是方阵;否则停止结算,并输出出错信息
if n~=m
error('The rows and columns of matrix A must be equal!');
return;
end
L=eye(n);U=zeros(n);zhibiao='OK';
for k=1:n
for j=k:n
z=0;
for q=1:k-1
z=z+L(k,q)*U(q,j);
end
U(k,j)=A(k,j)-z;
end
if abs(U(k,k)) zhibiao='failure'; return; end for i=k+1:n z=0; z=z+L(i,q)*U(q,k); end L(i,k)=(A(i,k)-z)/U(k,k); end end 运算结果: A=[1 2 3;4 5 6;7 8 0] [ L,U,zhibiao] = LU_Decom( A ) OK zhibiao U L =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=1300650 321 12.17 010 001 2、库函数 A=[1 2 3;4 5 6;7 8 0] [L,U,P]=lu(A) 运算结果: ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦ ⎤⎢⎢⎢⎣⎡=010*******.40038571.0008715.05714.0011429.0001P U L