Doolittle分解法matlab程序的实现.doc

上传人:scccc 文档编号:11309238 上传时间:2021-07-22 格式:DOC 页数:2 大小:20KB
返回 下载 相关 举报
Doolittle分解法matlab程序的实现.doc_第1页
第1页 / 共2页
Doolittle分解法matlab程序的实现.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《Doolittle分解法matlab程序的实现.doc》由会员分享,可在线阅读,更多相关《Doolittle分解法matlab程序的实现.doc(2页珍藏版)》请在三一文库上搜索。

1、function L,U,Y,X=qw2014210705(A,b)%切记!先将该文件重命名为doolittle.m, 然后存入到 bin文件中。% %A为输入方阵%然后在写入函数L,U=doolittle(A)即可获得B矩阵的Doolittle分解。N=size(A);%获取A的行数和列数if(N(1,1)=N(1,2)%判断是否为方阵 disp(您输入的矩阵不是方阵,请重新输入); return;endn=N(1,1);%获取A的维数Y=zeros(n,1);X=zeros(n,1);A1=A;YY=0;%判断是否顺序主子式不等于0,如果存在任何一个顺序主子式为0,则该值变为1.for i

2、=1:n if(det(A1(1:i,1:i)=0) YY=1; endendif(YY=1) disp(您输入的矩阵不能进行Doolittle分解) return;endL=eye(n);U=zeros(n);for i=1:n%求解L的第一列,U的第一行 U(1,i)=A1(1,i); if(i=2) L(i,1)=A1(i,1)/U(1,1); endendfor k=2:n%以一行一列的方式,计算U和L阵中的其他元素 for j=k:n s=0; for r=1:k-1 s=s+L(k,r)*U(r,j); end U(k,j)=A1(k,j)-s; end for m=k+1:n s=0; for r=1:k-1 s=s+L(m,r)*U(r,k); end L(m,k)=(A1(m,k)-s)/U(k,k); endend%求解过程for i=1:n s=0; for j=1:n s=s+Y(j,1)*L(i,j); end Y(i,1)=(b(i,1)-s)/L(i,i);endnn=n;for i=1:n s=0; for j=1:n s=s+X(j,1)*U(nn,j); end X(nn,1)=(Y(nn,1)-s)/U(nn,nn); nn=nn-1;end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1