李鸿实验二.docVIP

  • 5
  • 0
  • 约4.62千字
  • 约 7页
  • 2018-04-27 发布于江苏
  • 举报
李鸿实验二

数值分析实验报告 实验序号:实验二 题目:高斯消元法 学号:20111104386 姓名:李鸿 任课教师:马季骕 班级:11级非师范计科 实验目的及要求 程序的源代码 实验操作 实验结果及分析 实验目的及要求 对一个三阶矩阵运用列主元素消元法求解。矩阵如下: 12X1-3X2+3X3=15 -18X1+3X2-X3=-15 X1+X2+X3=6 实验目的及要求 用编程的方法实现列主元消元法解线性方程组。主元素消去发是为控制舍入误差而提出来的一种算法,在GAUSS消去发的消元过程中,若出现a[k][k][k]=0,则消元无法进行,及时a[k][k][k]!=0,但是很小,把它作为除数,就会导致其他元素量级的巨大增长和舍入误差的扩散,最后使得计算结果不可靠,列主元消去发和GAUSS消去发的计算过程基本是一样的,只是在每消去一个元素之前要选择列主元,以保证舍入误差不扩散。 2 程序的源代码 #include iostream using namespace std; double jdz(double x) { if(x0) x=-1*x; return x; } int main () { int n,i,j,k,flag,p; double a[100][100],b[100],max,temp,m,x[100],f; cout请输入系数矩阵阶数:n=; while(cinn) { cout请输入方程的增广矩阵:\n; for(i=1;i=n;i++) { for(j=1;j=n+1;j++) { cina[i][j]; } } for(j=1;j=n-1;j++) { max=jdz(a[j][j]); f=a[j][j]; flag=j; for(i=j+1;i=n;i++) { if(jdz(a[i][j])max) { max=jdz(a[i][j]); flag=i; f=jdz(a[i][j]); } } cout从第j行开始,第j列绝对值最大的元素为:f ,所在行:第flag行endl; if(flag!=j) { cout将第j行与第flag行交换,; for(k=1;k=n+1;k++) { temp=a[j][k]; a[j][k]=a[flag][k]; a[flag][k]=temp; } cout得到矩阵:\n; for(i=1;i=n;i++) { for(p=1;p=n+1;p++) { couta[i][p] ; } coutendl; } } else { cout不用进行换行!endl; } for(i=j+1;i=n;i++) { m=a[i][j]/a[j][j]; for(p=j;p=n+1;p++) { a[i][p]-=m*a[j][p];

文档评论(0)

1亿VIP精品文档

相关文档