共轭梯度法C语言(西安交大)_第1页
共轭梯度法C语言(西安交大)_第2页
共轭梯度法C语言(西安交大)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include#include#define n 10 /*定义矩阵阶数*/void main()int i,j,m,ann,bn;double xn,akvn,dkan,rkn,dkn,pk,pkk,ak,bk;for(i=0;in;i+) /*输入系数矩阵a*/for(j=0;jn;j+)if(i=j)aij=-2;else if(abs(i-j)=1) aij=1;else aij=0; for(i=0;in;i+) /*输入矩阵b*/ if(i=0|i=n-1) bi=-1; else bi=0; printf(n); /*输出系数矩阵a*/ printf(the maxtr a i

2、sn); for(i=0;in;i+) printf(n); for(j=0;jn;j+) printf(%3d,aij); printf(n); /*输出矩阵b*/printf(the maxtr b isn);for(i=0;in;i+) printf(%3d,bi);printf(n); printf(input the maxtr xn); /*给x0输入一个初始向量*/ for(i=0;in;i+) xi=0; printf(x chushi:n); for(i=0;in;i+) /*显示给定的初始向量x0*/ printf(%3.0f,xi); /*开始计算*/ for(i=0;i

3、n;i+) /*计算rk*/ pk=0.0; for(j=0;jn;j+) pk+=aij*xj; akvi=pk; for(i=0;in;i+) rki=bi-akvi; for(i=0;in;i+) /*给ro赋值*/ dki=rki; for(m=0;mn;m+) /*开始迭代循环*/ for(i=0;in;i+) /*计算ak*/ pk=0.0; for(j=0;jn;j+) pk+=aij*dkj; dkai=pk; pk=0.0;pkk=0.0; for(i=0;in;i+) pk+=dkai*dki; pkk+=rki*rki;if(pkk=0) /*如果残差pkk=0,计算结束*/ break; ak=pkk/pk; for(i=0;in;i+) /*计算x(k+1)*/ xi=xi+ak*dki; for(i=0;in;i+) /*计算r(k+1)*/ pk=0.0; for(j=0;jn;j+) pk+=aij*xj; akvi=pk; for(i=0;in;i+) rki=bi-akvi; pk=0.0; for(i=0;in;i+) /*计算bk*/ pk+=rki*rki; bk=pk/pkk; for(i=0;in;i+) /*计算d(k+1)*/ dki=rki+bk*dki; printf(n); printf(x cacu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论