列主元lu分解

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)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值