function [x,tol]=LU_3503(A,b)
g=1000;
j=A;
A=[A,b];%产生增广矩阵
for k=1:g-1
T=A(k:g,k:g+1);
[~,n]=max(abs(T));%比较每一列的元素大小
if n(1)==1
if A(k,k)~= 0
A(k+1:g,k)=A(k+1:g,k)/A(k,k);%存储L
A(k+1:g,k+1:g+1)=A(k+1:g,k+1:g+1)-A(k+1:g,k)*A(k,k+1:g+1);%存储U同时更新b
end
else
h=T(n(1),:);
T(n(1),:)=T(1,:);
T(1,:)=h;
A(k:g,k:g+1)=T;%选择最大的列主元并且跟新A
if A(k,k)~= 0
A(k+1:g,k)=A(k+1:g,k)/A(k,k);
A(k+1:g,k+1:g+1)=A(k+1:g,k+1:g+1)-A(k+1:g,k)*A(k,k+1:g+1);
end
end
end
U=triu(A(:,1:g));%提前矩阵U
y=A(:,g+1);%A的最后一列b跟新成y
x=U\y;
tol=norm(b-j*x)%判断误差
bar(x)
列主元lu分解
最新推荐文章于 2024-04-21 11:37:15 发布
9146

被折叠的 条评论
为什么被折叠?



