第一范文网 - 专业文章范例文档资料分享平台

Doolittle分解法matlab程序的实现

来源:用户分享 时间:2025/6/15 4:58:26 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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; end

n=N(1,1);%获取A的维数 Y=zeros(n,1); X=zeros(n,1); A1=A;

YY=0;%判断是否顺序主子式不等于0,如果存在任何一个顺序主子式为0,则该值变为1. for i=1:n

if(det(A1(1:i,1:i))==0) YY=1; end end if(YY==1)

disp('您输入的矩阵不能进行Doolittle分解') return; end L=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); end end

for 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); end end %求解过程 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); end nn=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

搜索更多关于: Doolittle分解法matlab程序的实现 的文档
Doolittle分解法matlab程序的实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4xjow57d048n6j587kf5_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top