c++解线方程组的迭代法.doc_第1页
c++解线方程组的迭代法.doc_第2页
c++解线方程组的迭代法.doc_第3页
c++解线方程组的迭代法.doc_第4页
c++解线方程组的迭代法.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验报告 课题3 解线性方程组的迭代法 课题3 解线性方程组的迭代法一问题提出 对线性方程组=51232346133819-21X1X2X3X4X5X6X7X8X9X10* 4, -1, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0-1, 4, -1 ,0 ,0 ,0 ,0 ,0 ,0 ,00, -1 ,4 ,-1 ,0 ,0 ,0 ,0 ,0 ,00, 0, -1, 4, -1 ,0 ,0 ,0 ,0, 00 ,0 ,0 ,-1 ,4 ,-1 ,0 ,0 ,0 ,00, 0, 0 ,0 ,-1 ,4 ,-1 ,0 ,0 ,00, 0, 0, 0 ,0 ,-1 ,4, -1 ,0 ,00 ,0, 0, 0, 0, 0, -1 ,4, -1 ,00, 0, 0, 0, 0, 0, 0, -1 ,4 ,-10, 0 ,0 ,0 ,0 ,0 ,0 ,0 ,-1 ,4分别采用jacobi迭代法,GS迭代法和SOR迭代法方法求解。二要求分别对不同的精度要求,如e=10-3,10-4,10-5,利用所需的迭代次数体会该迭代法的收敛快慢。使用SOR方法时,选取松弛因子w=0.8, 0.9 1, 1.2 等,试找出你所选用松弛因子的最佳值。编制出各种迭代法的程序并给出计算结果。三C+源代码:jacobi迭代法#include#include#include using namespace std;main()double s=0;double max(double array10); double a1010=4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4;double b10=7,5,-13,2,6,-12,14,-4,5,-5;double c10=0,0,0;double x10=0,0,0,0,0,0,0,0,0,0;double x010=0,0,0,0,0,0,0,0,0,0;int i,k,j;double r,sum=0;cout输入精度:s;for(k=1;k+)for(i=0;i10;i+)for(j=0;j10;j+) sum=aij*x0j+sum; xi=x0i+(bi-sum)/aii); ci=fabs(xi-x0i); sum=0; r=max(c); if(rs) for(i=0;i10;i+)coutxi = xisetprecision(10)endl; cout迭代次数:kendl; return 0; else for(i=0;i10;i+) x0i=xi;double max(double array10)double a=array0;int i;for(i=1;i10;i+) if(aarrayi)a=arrayi;return a;GS迭代法#include#include#include using namespace std;main()double s=0;double max(double array3); double a1010=4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4;double b10=7,5,-13,2,6,-12,14,-4,5,-5; double c10=0,0,0;double x10=0,0,0,0,0,0,0,0,0,0;double x010=0,0,0,0,0,0,0,0,0,0; int i,k,j; double r,sum=0; cout输入精度:s; for(k=1;k+)for(i=0;i10;i+)for(j=0;j10;j+)sum=aij*x0j+sum; xi=x0i+(bi-sum)/aii); ci=xi-x0i;if(ci0)ci=-ci; x0i=xi; sum=0; r=max(c); if(rs) for(i=0;i10;i+)coutxi = xisetprecision(10)endl; cout迭代次数:kendl; return 0; double max(double array10)double a=array0;int i;for(i=1;i10;i+) if(aarrayi)a=arrayi;return a;SOR方法#include#include#include using namespace std;main()double s=0,w=0;double max(double array3); double a1010=4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4,-1,0,0,0,0,0,0,0,0,-1,4;double b10=7,5,-13,2,6,-12,14,-4,5,-5; double c10=0,0,0;double x10=0,0,0,0,0,0,0,0,0,0;double x010=0,0,0,0,0,0,0,0,0,0; int i,k,j; double r,sum=0; cout输入精度:s;cout松弛因子:w; for(k=1;k+)for(i=0;i10;i+)for(j=0;j10;j+)sum=aij*x0j+sum; xi=x0i+(w*(bi-sum)/aii); ci=xi-x0i;if(ci0)ci=-ci; x0i=xi; sum=0; r=max(c); if(rs) for(i=0;i10;i+) coutxi = xisetprecision(10)endl; cout迭代次数:kendl; return 0; double max(double array10)double a=array0;int i;for(i=1;i10;i+) if(aarrayi)a=arrayi;return a;四运行结果如下:jacobi迭代法GS迭代法SOR迭代法五程序运行的结果分析由上可知

温馨提示

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

评论

0/150

提交评论