用MATLAB编写矩阵A的LU分解程序.要求必须用数学软件MATLAB编写程序.

发布时间:2021-02-26 01:41:59

用MATLAB编写矩阵A的LU分解程序.要求必须用数学软件MATLAB编写程序.

网友回答

里面有自带的LU分解函数,你可在帮助文档搜索 LU
给你一个我自己写的LU分解函数
function [myl,myu,x]=MYLU(A,b)
%依据《现代电力系统分析》编制的LU分解程序.
%matlab自带的lu函数与书上所讲略有不同,不方便参照课本步骤进行后续计算.
%A为待分解的矩阵,myl为分解后下三角矩阵,myu为分解后的上三角矩阵,未考虑单独的对角阵D
%clc%A=[5,0,0,5,1;2,1,1,0,0;0,1,2,0,10;1,0,5,1,0;1,1,0,3,10] %两组测试用矩阵方程
%b=[1,3,3,4,1]';
%M=[1,2,1,1;2,1,0,0;1,0,1,0;1,0,0,1]
%b=[-1,1,2,0]'
%A=[2,3,1;3,7,-1;5,-4,2]
%b=[12,13,5]'
n=length(A);
myl=speye(n); %可以先不分配内存,由系统自动分配内存
myu=speye(n);
%y=(zeros(1,n))';
x=(zeros(1,n))';
y(1)=b(1)/myl(1,1);%解Ly=b
for i=2:n
p=0;for k=1:i-1
p=p+myl(i,k)*y(k);
endy(i)=(b(i)-p)/myl(i,i);
end%C=(myl*y) %测试Ly=b,如果相等表明结果正确
x(n)=y(n);
for i=1:n-1
p=0;for k=n-i+1:n
p=p+myu(n-i,k)*x(k);
endx(n-i)=y(n-i)-p;
end%D=myl*myu*x
里面注释部分可以删除
以上问题属网友观点,不代表本站立场,仅供参考!