实验5解线性方程组的迭代法_第1页
实验5解线性方程组的迭代法_第2页
实验5解线性方程组的迭代法_第3页
实验5解线性方程组的迭代法_第4页
全文预览已结束

下载本文档

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

文档简介

第第#页共5页西华数学与计算机学院上机实践报告课程名称:计算方法A年级:上机实践成绩:指导教师:严常龙姓名:上机实践名称:解线性方程组的迭代法学号:上机实践日期:上机实践编号:1上机实践时间:16:00-17:40一、目的1.通过本实验加深对Jacobi迭代法、Gauss-Seidel迭代法、松弛迭代法的构造过程的理解;2.能对上述三种迭代法提出正确的算法描述编程实现,进一步理解迭代法的改进过程;二、内容与设计思想自选线性方程组,编制一个程序,分别用Jacobi迭代法、Gauss-Seidel和松弛迭代法求解,比较三种迭代法收敛速度的快慢。三、使用环境操作系统:WindowsXP软件环境:MicrosoftVisualC++四、核心代码及调试过程题目要求,求解下面的方程组,分别用Jacobi迭代法、Gauss-Seidel迭代法求解7.2x+2.3x—4.4x+0.5x=15.1TOC\o"1-5"\h\z12341.3x+6.3x一3.5x+2.8x=1.8<12345.6x+0.9x+8.1x一1.3x=16.612341.5x+0.4x+3.7x+5.9x=36.91234Jacobi迭代法#include<stdio.h>#include<math.h>main(){inti,j,n=4,cj=0;floata[5][5],x[5],y[5],g[5],b[5][5],x1[5];floatmax,sum=0.0;a[0][0]=7.2;a[0][1]=2.3;a[0][2]=-4.4;a[0][3]=0.5;a[1][0]=1.3;a[1][1]=6.3;a[1][2]=-3.5;a[1][3]=2.8;a[2][0]=5.6;a[2][1]=0.9;a[2][2]=8.1;a[2][3]=-1.3;a[3][0]=1.5;a[3][1]=0.4;a[3][2]=3.7;a[3][3]=5.9;y[0]=15.1;y[1]=1.8;y[2]=16.6;y[3]=39.6;x[0]=1;x[1]=1;x[2]=1;x[3]=1;printf(“初始矩阵为\n");for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%f\t",a[i][j]);}printf("\n");}for(i=0;i<n;i++){g[i]=y[i]/a[i][i];〃求出常数项除以x[i]的系数;for(j=0;j<n;j++){b[i][j]=-a[i][j]/a[i][i];}b[i][i]=0;}printf("变换后的矩阵为\n");for(i=0;i<n;i++){for(j=0;j<n;j++){printf("%f\t",b[i][j]);}printf("\n");}do{cj++;for(i=0;i<n;i++){x1[i]=x[i];}for(i=0;i<n;i++){sum=g[i];for(j=0;j<n;j++){sum=sum+b[i][j]*xl[j];〃Gauss-Seidel迭代sum=sum+b[i][j]*x[j];就可以了}x[i]=sum;}max=fabs(x[0]-xl[0]);for(i=0;i<n;i++){if(fabs(x[i]-xl[i])>max){max=fabs(x[i]-xl[i]);}}}while(max>pow(l0,-6));printf(“函数的值为\n");for(i=0;i<n;i++){printf("x[%d]=%f\n",i,x[i]);}printf("循环次数为%d\n",cj);}

1.Jacobi迭代法的值I—I1口1yr”l:$十算方法计+算方I—I1口1阴始矩阵为R2000002.阴始矩阵为R2000002.3000001.300000「300000「6000000.9000001.5000000・400000变换后的矩阵为0・000000一0・319444一0・2063490.000000-0.691358一0・111111一0・254237一0・067797函数的值为-4.400000-3・5000008・1000003・7000000.6111110.5555560・000000—0.6271190・5000002・800000一:L.3000005・900000—0.069444—0.4444440・1604940・000000x[01=3.055659x[ll=-2.173018Lc[21=1.048881^[31=5.424551循环吹■数为血PressanykeytocontinueGauss-Seidel迭代法五、总结通过本次上机实验,我掌握了Jacobi迭代法、Gauss-Seidel迭代法和松弛迭代法求解线性方程组。编程序实现这3种解线性方程组的方法,就要先熟悉具体的操作步骤,逻辑思路要清晰。在程序实现过程种,我主要

温馨提示

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

评论

0/150

提交评论