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

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

ID:58632253

大小:17.00 KB

页数:3页

时间:2020-10-17

克劳特(Crout)(LU)分解法求解线性方程组的matlab实现.doc_第1页
克劳特(Crout)(LU)分解法求解线性方程组的matlab实现.doc_第2页
克劳特(Crout)(LU)分解法求解线性方程组的matlab实现.doc_第3页
资源描述:

《克劳特(Crout)(LU)分解法求解线性方程组的matlab实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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的第一行?fork=2:nfori=k:nL(i,k)=A(i,k)-L(i,1:(k-1))*U(1:(k-1),k);%L的第k列endforj=(k+1):nU(k,j)=(

2、A(k,j)-L(k,1:(k-1))*U(1:(k-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);functionx=SolveUpTriangle(A,b)%求解上三角矩阵Ax=b的解N=size(A);n=N(1);fori=n:-1:1if(i

3、i,1)=(b(i)-s)/A(i,i);endfunctionx=SolveDownTriangle(A,b)%求解下三角矩阵Ax=b的解N=size(A);n=N(1);fori=1:nif(i>n)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-33;-163-1;111];b=[15;-13;6];%x=Ab[x,L,U]=Crout(A,b)解:x=123L=12.000000-16.0000

4、-1.000001.00001.25004.5000U=1.0000-0.25000.250001.0000-3.0000001.0000列主元LU分解function[L,U,x]=lux(A,b)%LU分解法解线性方程组(列主元LU分解)[n,n]=size(A);p=eye(n);%p记录了选择主元时候所进行的行变换fork=1:n-1    [r,m]=max(abs(A(k:n,k))); %选列主元    m=m+k-1;    if(A(m,k)~=0)        if(m~=k)            A([km

5、],:)=A([mk],:);            p([km])=p([mk]);       end       fori=k+1:n                A(i,k)=A(i,k)/A(k,k);            j=k+1:n;            A(i,j)=A(i,j)-A(i,k)*A(k,j);       end   endendL=tril(A,-1)+eye(n,n);U=triu(A);%解下三角矩阵Ly=b newb=p*b; y=zeros(n,1);fork=1:n   j=1:k

6、-1;   y(k)=(newb(k)-L(k,j)*y(j))/L(k,k);end %解上三角方程组 Ux=yx=zeros(n,1);fork=n:-1:1    j=k+1:n;    x(k)=(y(k)-U(k,j)*x(j))/U(k,k);end

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。