基本信息
源码名称:列主lu分解法(PLU.m)
源码大小:1.14KB
文件格式:.m
开发语言:MATLAB
更新时间:2021-04-08
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

function x=PLU(A,b,eps)
if (length(A)~=length(b))
    disp('输入方程有误!')
    return;
end
disp('原方程为AX=b:')
A
b
 disp('------------')
 n=length(A);
 A=[A b];
 for r=1:n
     if r==1
         for i=1:n
             [c d]=max(abs(A(:,1)));
             if c<=eps
                 break;
             else
             end
             d=d 1-1;
             p=A(1,:);
             A(1,:)=A(d,:);
             A(d,:)=p;
             A(1,i)=A(1,i);
         end
         A(1,2:n)= A(1,2:n);
        
         A(2:n,1)=A(2:n,1)/A(1,1);
     else
         u(r,r)=A(r,r)-A(r,1:r-1)*A(1:r-1,r);
         if abs(u(r,r))<=eps
             p=A(r,:);
             A(r,:)=A(r 1,:);
             A(r 1,:)=p;
         else
         end
         for i=r:n
             A(i,r)=(A(i,r)-A(i,1:r-1)*A(1:r-1,r))/A(r,r);
         end
     end
 end
 y(1)=A(1,n 1);
 for i=2:n
     h=0
     for k=1:i-1
         h=h A(i,k)*y(k);
     end
     y(i)=A(i,n 1)-h;
 end
 x(n)=y(n)/A(n,n);
 for i=n-1:-1:1
     h=0;
     for k=i 1:n
         h=h A(i,k)*x(k);
     end
     x(i)=(y(i)-h)/A(i,i);
 end
 A
 disp('AX=b的解x是')
 x=x';