文档介绍:判断矩阵LU分解的充要条件及其MATLAB程序判断矩阵能否进行LU分解的MATLAB程序functionhl=pdLUfj(A)[nn]=size(A);RA=rank(A);ifRA~=ndisp('请注意:因为A的n阶行列式hl等于零,:'),RA,hl=det(A);returnendifRA==nforp=1:n,h(p)=det(A(1:p,1:p));,endhl=h(1:n);fori=1:nifh(1,i)==0disp('请注意:因为A的r阶主子式等于零,:'),hl;RA,returnendendifh(1,i)~=0disp('请注意:因为A的各阶主子式都不等于零,:')hl;RAendEnd 例判断下列矩阵能否进行LU分解,并求矩阵的秩.(1);(2);(3).解(1)在MATLAB工作窗口输入程序>>A=[123;1127;456];hl=pdLUfj(A)运行后输出结果为请注意:因为A的各阶主子式都不等于零,:RA=3,hl=110-48(2)在MATLAB工作窗口输入程序>>A=[123;127;456];hl=pdLUfj(A)运行后输出结果为请注意:因为A的r阶主子式等于零,:RA=3,hl=1012(3)在MATLAB工作窗口输入程序>>A=[123;123;456];hl=pdLUfj(A)运行后输出结果为请注意:因为A的n阶行列式hl等于零,=2,hl=0直接LU分解法及其MATLAB程序将矩阵进行直接LU分解的MATLAB程序functionhl=zhjLU(A)[nn]=size(A);RA=rank(A);ifRA~=ndisp('请注意:因为A的n阶行列式hl等于零,:'),RA,hl=det(A);returnendifRA==nforp=1:nh(p)=det(A(1:p,1:p));endhl=h(1:n);fori=1:nifh(1,i)==0disp('请注意:因为A的r阶主子式等于零,:'),hl;RAreturnendendifh(1,i)~=0disp('请注意:因为A的各阶主子式都不等于零,:')forj=1:nU(1,j)=A(1,j);endfork=2:nfori=2:nforj=2:nL(1,1)=1;L(i,i)=1;ifi>jL(1,1)=1;L(2,1)=A(2,1)/U(1,1);L(i,1)=A(i,1)/U(1,1);L(i,k)=(A(i,k)-L(i,1:k-1)*U(1:k-1,k))/U(k,k);elseU(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j);endendendendhl;RA,U,Lendend用矩阵进行直接LU分解的MATLAB程序分