实验名称:线性方程组的直接和迭代解法实验时间:.05.31实验目的和规定:1.理解Gauss消元法、LU分解法、追赶法等线性方程组直接求解的基本办法、基本原理;2.能够按照工程实际规定,选择适宜的算法;3.通过编写程序,进行算法设计和数值求解;4.理解雅可比迭代法、高斯-赛德尔迭代法等线性方程组迭代求解的基本办法、基本原理;5.能够按照工程实际规定,选择适宜的算法;6.通过编写程序,进行算法设计和数值求解。实验内容和原理:1.合理运用主元素消元法、LU分解法、追赶法求解下列方程组:①②③2.使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。重要仪器设备:计算机,vcx86。上机调试修改源程序:1.列主元素消元法#include"stdafx.h"#includevoidshuchu(doublea[3][4]){for(inti=0;i<3;i++){for(intj=0;j<4;j++){printf("%lf",a[i][j]);printf("");}printf("\n");}printf("\n");}int_tmain(intargc,_TCHAR*argv[]){doublea[3][4],b[4],x[3],c;for(inti=0;i<3;i++)for(intj=0;j<4;j++)scanf("%lf",&a[i][j]);if(a[1][0]>a[0][0]&&a[1][0]>a[2][0])for(inti=0;i<4;i++){b[i]=a[0][i];a[0][i]=a[1][i];a[1][i]=b[i];}if(a[2][0]>a[0][0]&&a[2][0]>a[1][0])for(inti=0;i<4;i++){b[i]=a[0][i];a[0][i]=a[2][i];a[2][i]=b[i];}shuchu(a);c=a[1][0]/a[0][0];for(inti=0;i<4;i++)a[1][i]=a[1][i]-c*a[0][i];c=a[2][0]/a[0][0];for(inti=0;i<4;i++)a[2][i]=a[2][i]-c*a[0][i];shuchu(a);c=a[2][1]/a[1][1];for(inti=0;i<4;i++)a[2][i]=a[2][i]-c*a[1][i];shuchu(a);x[2]=a[2][3]/a[2][2];x[1]=(a[1][3]-a[1][2]*x[2])/a[1][1];x[0]=(a[0][3]-x[2]*a[0][2]-x[1]*a[0][1])/a[0][0];printf("x1=%lf",x[0]);printf("\nx2=%lf",x[1]);printf("\nx3=%lf",x[2]);printf("\n");system("pause");return0;}2.完全组元素消元法#include"stdafx.h"#include#includevoidshuchu(doublea[5][5]){for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(abs(a[i][j])<1e-8)a[i][j]=0;printf("%lf",a[i][j]);printf("");}printf("\n");}printf("\n");}voidasd(intm,doublea[5][5],doubleb){intc,d;doublee[5],n=b;for(inti=m;i<4;i++)for(intj=m;j<4;j++){if(abs(a[i][j])>abs(b)){b=a[i][j];c=i;d=j;}}if(b!=n){for(inti=0;i<5;i++){e[i]=a[m][i];a[m][i]=a[c][i];a[c][i]=e[i];}for(inti=0;i<5;i++){e[i]=a[i][m];a[i][m]=a[i][d];a[i][d]=e[i];}}}int_tmain(intargc,_TCHAR*argv[]){doublea[5][5],b,x[4];for(inti=0;i<5;i++)for(intj=0;j<5;j++)scanf("%lf",&a[i][j]);asd(0,a,a[0][0]);shuchu(a);b=a[1][0]/a[0][0];for(inti=0;i<5;i++)a[1][i]=a[1][i]-b*a[0][i];b=a[2][0]/a[0][0];for(inti=0;i<5;i++)a[2][i]=a[2][i]-b*a[0][i];b=a[3][0]/a[0][0];for(inti=0;i<5;i++)a[3][i]=a[3][i]-b*a[0][i];shuchu(a);asd(1,a,a[1][1]);shuchu(a);b=a[2][1]/a[1][1];for(inti=0;i<5;i++)a[2][i]=a[2][i]-b*a[1][i];b=a[3][1]/a[1][1];for(inti=0;i<5;i++)a[3][i]=a[3][i]-b*a[1][i];shuchu(a);asd(2,a,a[2][2]);shuchu(a);b=a[3][2]/a[2][2];for(inti=0;i<5;i++)a[3][i]=a[3][i]-b*a[2][i];shuchu(a);x[int(a[4][3])]=a[3][4]/a[3][3];x[int(a[4][2])]=(a[2][4]-a[2][3]*x[int(a[4][3])])/a[2][2];x[int(a[4][1])]=(a[1][4]-x[int(a[4][3])]*a[1][3]-x[int(a[4][2])]*a[1][2])/a[1][1];x[int(a[4][0])]=(a[0][4]-x[int(a[4][3])]*a[0][3]-x[int(a[4][2])]*a[0][2]-x[int(a[4][1])]*a[0][1])/a[0][0];for(inti=0;i<4;i++)if(a[4][i]==1)printf("x%d=%lf",int(a[4][i]),x[int(a[4][i])]);for(inti=0;i<4;i++)if(a[4][i]==2)printf("x%d=%lf",int(a[4][i]),x[int(a[4][i])]);for(inti=0;i<4;i++)if(a[4][i]==3)printf("x%d=%lf",int(a[4][i]),x[int(a[4][i])]);for(inti=0;i<4;i++)if(a[4][i]==4)printf("x%d=%lf",int(a[4][i]),x[int(a[4][i])]);printf("\n");system("pause");return0;}3.LU分解法#include"stdafx.h"#includevoidshuchu(doublea[4][5]){for(inti...