网站大量收购独家精品文档,联系QQ:2885784924

消元法实验报告16.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
消元法实验报告16

西京学院数学软件实验任务书 课程名称 数学软件实验 班级 *** 学号 *** 姓名 *** 实验课题 线性方程组直接三角分解法(Doolittle分解,Grout分解),平方根法(Cholesky分解,LDLT分解) 实验目的 熟悉线性方程组直接三角分解法(Doolittle分解,Grout分解),平方根法(Cholesky分解,LDLT分解) 实验要求 运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成 实验内容 线性方程组直接三角分解法(Doolittle分解,Grout分解) 线性方程组平方根法(Cholesky分解,LDLT分解) 成绩 教师 实验报告 实验名称:Doolittle分解,Grout分解,平方根法Cholesky分解,LDLT分解 实验目的:线性方程组直接三角分解法 实验要求:求线性方程组的解 试验流程: 输入所要求解的增广矩阵 用函数调用处理矩阵 输出方程组的解 实验工具:matlab软件 实验原理:用matlab软件先编译SolveDownTriangle和SolveUpTriangle程序其中两个程序都是对矩阵的处理; Doolittle分解,Grout分解,平方根法Cholesky分解,LDLT分解都调用他们两个函数进行增广矩阵的处理 实验步骤: 程序一: %SolveUpTriangle function x=SolveUpTriangle(A,b) N=size(A); n=N(1); for i=n:-1:1 if(1n) s=A(i,(i+1):n)*x((i+1):n,1); eals s=0; end x(i,1)=(b(i)-s)/A(i,i); end 程序二: %SolveDownTriangle function x=SloveDownTriang(A,b) N=size(A); n=N(1); for i=1:n if(i1) s=A(i,1:(i-1))*x(1:(i-1),1); else s=0; end x(i,1)=(b(i)-s)/A(i,i); end 程序三: % Grout分解 function [x,L,U]=Crout(A,b) N=size(A); n=N(1); L=zeros(n,n); U=eye(n,n); L(1:n,1)=A(1:n,1) U(1,1:n)=A(1,1:n)/L(1,1); for k=2:n L(i,k)=A(i,k)-L(i,1:(k-1))*U(1:(k-1),k); end for j=(k+1):n U(k,j)=(A(k,j)-L(k,1:(k-1))*U(1:(k-1),j))/L(k,k); end end y=SolveDownTriangle(L,b); x=SolveUpTriangle(U,y); 程序四: % Doolittle分解 function [x,L,U]=Doolittle(A,b) N=size(A); n=size(A); L=eye(n,n); U=zeros(n,n); U(1,1:n)=A(1,1:n); L(1:n,1)=A(1:n,1)/U(1,1); for k=2:n for i=k:n U(k,i)=A(k,i)-L(k,1:(k-1))*U(1:(k-1),i); end for j=(k+1):n L(j,k)=(A(j,k)-L(j,1:(k-1))*U(1:(k-1),k))/U(k,k); end end y=SolveDownTriangle(L,b); x=SolveUpTriangle(U,y); 程序五: % Cholesky分解一 function [x,L]=SymPosl (A,b) N=size(A); n=N(1); L(1,1)=sqrt(A(1,1)); L(2:n,1)=A(2:n,1)/L(1,1); for k=2:n L(k,k)=sqrt(A(k,k)-L(k,1:(k-1))*transpose(L(k,1:(k-1)))) for i=(k+1):n L(i,k)=(A(i,k)-L(i,i:(k-1))*transpose(L(k,1:(k-1))))/L(k,k); end end y=SolveDownTriangle(L,b); x=SolveUpTriangle(transpose(L

文档评论(0)

haocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档