资源描述:
《c++解线性方程组的迭代法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告课题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,
2、0,0,0,-1,4分别采用jacobi迭代法,GS迭代法和SOR迭代法方法求解。二.要求分别对不同的精度要求,如e=10^-3,10^-4,10^-5,利用所需的迭代次数体会该迭代法的收敛快慢。使用SOR方法时,选取松弛因子w=0.8,0.91,1.2等,试找出你所选用松弛因子的最佳值。编制出各种迭代法的程序并给出计算结果。三.C++源代码:jacobi迭代法#include#include#includeusingnamespacestd;main(){doubles=0;doublemax(do
3、ublearray[10]);doublea[10][10]={{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}};doubleb[1
4、0]={7,5,-13,2,6,-12,14,-4,5,-5};doublec[10]={0,0,0};doublex[10]={0,0,0,0,0,0,0,0,0,0};doublex0[10]={0,0,0,0,0,0,0,0,0,0};inti,k,j;doubler,sum=0;cout<<"输入精度:"<>s;for(k=1;;k++){for(i=0;i<10;i++){for(j=0;j<10;j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+((b[i]-sum)/a[i][i]);c[i]
5、=fabs(x[i]-x0[i]);sum=0;}r=max(c);if(r
6、#include#include#includeusingnamespacestd;main(){doubles=0;doublemax(doublearray[3]);doublea[10][10]={{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
7、,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}};doubleb[10]={7,5,-13,2,6,-12,14,-4,5,-5};doublec[10]={0,0,0};doublex[10]={0,0,0,0,0,0,0,0,0,0};doublex0[10]={0,0,0,0,0,0,0,0,0,0};inti,k,j;doubler,sum=0;cout<<"输入精度:"<>s;for(k=1;;k++
8、){for(i=0;i<10;i++){for(j=0;j<10;j++){su