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

杜立特分解法.doc

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

2013-2014(1)专业课程实践论文 题目:杜立特分解法 一、算法理论 阶线性方程组的系数矩阵非奇异且有分解式,其中为单位下三角矩阵,为上三角矩阵,即,当时,;,当时,,矩阵的这种分解方法为Doolittle的分解。 比较等号两边的第行和第列的元素,得。 因为,所以,, 从而当,,时,,从而, 于是就得到了计算LR分解的一般计算公式。 二、算法框图 三、算法程序 #includeiostream #includestdlib.h #define N 3 using namespace std; int main() { double A[N+1][N+1]={{0,0,0,0},{0,2,1,1},{0,1,3,2},{0,1,2,2}}; double L[N+1][N+1]={0}; double U[N+1][N+1]={0}; double b[N+1]={0,4,6,5}; double y[N+1]; double x[N+1]; int i,j,k,p; for(j=1;j=N;j++) U[1][j]=A[1][j]; L[1][1]=1; for(i=2;i=N;i++) {L[i][1]=A[i][1]/U[1][1]; L[i][i]=1; } for(k=2;k=N;k++) { for(j=k;j=N;j++) {double l=0; for(p=1;p=k-1;p++) l+=L[k][p]*U[p][j]; U[k][j]=A[k][j]-l; } for(i=k+1;i=N;i++) {double l=0; for(p=1;p=k-1;p++) l+=L[i][p]*U[p][k]; L[i][k]=(A[i][k]-l)/U[k][k]; } } y[1]=b[1]; for(k=2;k=N;k++) { double l=0; for(j=1;j=k-1;j++) l+=L[k][j]*y[j]; y[k]=b[k]-l; } x[N]=y[N]/U[N][N]; for(k=N-1;k=1;k--) { double l=0; for(j=k+1;j=N;j++) l+=U[k][j]*x[j]; x[k]=(y[k]-l)/U[k][k]; } printf(向量y为:); for(i=1;i=N;i++)printf(%.1lf\t,y[i]);printf(\n); coutL:endl; for(i=1;i=N;i++) {for(j=1;j=N;j++) coutL[i][j]\t; coutendl;} coutendl; coutU:endl; for(i=1;i=N;i++) {for(j=1;j=N;j++) coutU[i][j]\t; coutendl;} coutendl; cout方程组的解:endl; for(i=1;i=N;i++) coutxi=x[i]\t; return 1; } 四、算法实现 例1.用杜立特分解法,求解三元方程组。 解: 例2.用杜立特分解法,求解三元方程组 解: 开始 输入矩阵行数 输入矩阵A第各行元素 分解矩阵A得L 输入矩阵B第各行元素 分解矩阵A得R 求得Y 求得X

文档评论(0)

enxyuio + 关注
内容提供者

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

1亿VIP精品文档

相关文档