matlab实现矩阵LU分解

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%matrix LU Factorize
%authour: j.cai
%mail: jcai@mail.com
%time: 2016-09-29
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [L,U,P]= LU(A)
    disp("LU factorization");
    L=zeros(size(A));
    U=zeros(size(A));
    P=zeros(size(A));
    if size(A,1)~=size(A,2)
        disp("不是方阵");
        return 
    end
    n=size(A,1);
    seqence=linspace(1,n,n);
    A=[A,seqence']; %加上行号 
    for c=1:n %部分主元法 找主元
        [~,pivotnum]=max(abs(A(c:end,c)));
        pivotnum=pivotnum+c-1;
        if pivotnum ~= c %交换行 
            row_temp=A(c,:);
            A(c,:)=A(pivotnum,:);
            A(pivotnum,:)=row_temp;
        end
        for r=(c+1):n %消元 
            if abs(A(c,c))
   
   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值