MATLAB克劳特算法,克劳特(Crout)(LU)分解法求解线性方程组的matlab实现

《克劳特(Crout)(LU)分解法求解线性方程组的matlab实现》由会员分享,可在线阅读,更多相关《克劳特(Crout)(LU)分解法求解线性方程组的matlab实现(3页珍藏版)》请在人人文库网上搜索。

1、1、克劳特(Crout)(LU)分解法求解线性方程组function x,L,U=Crout(A,b)%Crout分解法求解线性方程组%系数矩阵:AN=size(A);n=N(1);L=zeros(n,n); %下三角矩阵U=eye(n,n); %上三角矩阵L(1:n,1)=A(1:n,1); %L的第一列U(1,1:n)=A(1,1:n)/L(1,1); %U的第一行?for k=2:nfor i=k:nL(i,k)=A(i,k)-L(i,1:(k-1)*U(1:(k-1),k);%L的第k列endfor j=(k+1):nU(k,j)=(A(k,j)-L(k,1:(k-1)*U(1:(k-。

2、1),j)/(L(k,k);%U的第k行endend%y=inv(L)*b;%x=inv(U)*y;y=SolveDownTriangle(L,b);x=SolveUpTriangle(U,y); %求解线性方程组的解x%x=U(Lb);function x=SolveUpTriangle(A,b)%求解上三角矩阵Ax=b的解N=size(A);n=N(1);for i=n:-1:1if(in)s=A(i,1:(i-1)*x(1:(i-1),1);elses=0;endx(i,1)=(b(i)-s)/A(i,i);end%求解线性方程组的解clcclearA=12 -3 3;-16 3 -1;。

3、1 1 1;b=15;-13;6;%x=Abx,L,U=Crout(A,b)解:x =123L =12.0000 0 0-16.0000 -1.0000 01.0000 1.2500 4.5000U =1.0000 -0.2500 0.25000 1.0000 -3.00000 0 1.0000列主元LU分解function L,U,x=lux(A,b)%LU 分解法解线性方程组(列主元LU分解)n,n=size(A);p=eye(n);%p记录了选择主元时候所进行的行变换for k=1:n-1r,m=max(abs(A(k:n,k); %选列主元m=m+k-1;if(A(m,k)=0)if(。

4、m=k)A(k m,:)=A(m k,:);p(k m)=p(m k);endfor i=k+1:nA(i,k)=A(i,k)/A(k,k);j=k+1:n;A(i,j)=A(i,j)-A(i,k)*A(k,j);endendendL=tril(A,-1)+eye(n,n);U=triu(A);%解下三角矩阵 Ly=bnewb=p*b;y=zeros(n,1);for k=1:nj=1:k-1;y(k)=(newb(k)-L(k,j)*y(j)/L(k,k);end%解上三角方程组 Ux=yx=zeros(n,1);for k=n:-1:1j=k+1:n;x(k)=(y(k)-U(k,j)*x(j)/U(k,k);end。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值