作业帮 > 综合 > 作业

用MATLAB编写矩阵A的LU分解程序.

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 06:53:06
用MATLAB编写矩阵A的LU分解程序.
要求必须用数学软件MATLAB编写程序.
用MATLAB编写矩阵A的LU分解程序.
里面有自带的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);
end
y(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);
end
x(n-i)=y(n-i)-p;
end
%D=myl*myu*x
里面注释部分可以删除