华北电力大学科技学院数值计算方法上机报告.docxVIP

  • 23
  • 0
  • 约5.84千字
  • 约 26页
  • 2018-11-02 发布于河北
  • 举报

华北电力大学科技学院数值计算方法上机报告.docx

华北电力大学科技学院数值计算方法上机报告

华北电力大学科技学院 农电12K1 GP 华北电力大学科技学院 数值计算方法上机报告 姓名:GP 班级:农电12K1 学号: 2014年11月28日 实验程序为 实验一 #includestdio.h #includemath.h #define N 30 void main() { int i; float x[N],c; scanf( %f,c); scanf( %f,x[0]);//初值 printf( ****倒数表****\n); for(i=0;iN;i++)//牛顿迭代法 { x[i+1]=x[i]*x[i]*c/(2*c*x[i]-1); printf(k=%d\tx(%d)=%.5f\n,i,i,x[i]); if(fabs(x[i+1]-x[i])=0.0005) break; else continue; printf(k=%d\tx(%d)=%.5f\n,i+1,i+1,x[i]); printf(\n 计算结果:\n1/%f=%.3f\n\n,c,x[i+1]); } } 实验二#includestdio.h #includemath.h #define N 10 void main() {int i,j,k,l,n; float b[N],a[N][N],t,d,det=1.0; //***数据输入*/ printf(输入n\n ); scanf(%d,n); printf(输入Ai\n ); for(i=0;in;i++) for(j=0;jn;j++) scanf( %f,a[i][j]); printf(输入bi\n ); for(i=0;in;i++) scanf(%f,b[i]); //***数据输入*/ //*** ************************高斯消去*/ //***************** *******消元*/ //****************************列选主元函数*/ for(k=0;kn-1;k++)//从第一次消元到第N-1 次消元 { d=a[k][k];l=k; for(i=k+1;in;i++)//找出绝对值最大的a[i][k]和i 行 { if(fabs(a[i][k])fabs(d)) {d=a[i][k];i=l;} } if(i==n)//判断是否奇异,不奇异进行行交换 { if(d==0) printf( 奇异);//如果所有行的首列都为0,为奇异 else { if(l!=k)//如果第k 行的首列并不是最大 { det=det*(-1); for(j=k;j=n;j++)//交换系数矩阵中的两行 {t=a[l][j];a[l][j]=a[k][j];a[k][j]=t;} t=b[l];b[l]=b[k];b[k]=t;//交换右端常向量中的两行 } } } //********** **列选主元函数*/ for(i=k+1;in;i++)//第(k+1)次消元要得到N-(k+1)个乘数 { a[i][k]=a[i][k]/a[k][k]; for(j=k+1;jn;j++)//第(i+1)行各列向量对应该行与第(k+1)行各列向量的减法 { a[i][j]=a[i][j]-a[i][k]*a[k][j]; } b[i]=b[i]-a[i][k]*b[k];//右端常向量 } } //***** ************消元*/ //*回代*/ b[n-1]=b[n-1]/a[n-1][n-1];//计算x(N)的解 for(i=n-2;i=0;i--)//从倒数第二项开始依次回代N-1 次 { t=0; for(j=i+1;jn;j++) {t=t+a[i][j]*b[j];} b[i]=(b[i]-t)/a[i][i]; } //******** *****高斯消去*/ //********** *********数据输出*/ for(i=0;in;i++)//输出方程组的解 printf(x(%d)=%.4f\n,i+1,b[i]); for(i=0;in;i++) det=det*a[i][i]; printf(detA=%.4f\n,det);//输出系数矩阵行列式的值 //*********** ***********数据输出*/ } 实验三//例3-10 #includeiostream #includecmath #define N 30 void main() { int i,j,r,k,n; float a[N][N]={0},s; //***数据输入*/ printf(输入n\n); sc

文档评论(0)

1亿VIP精品文档

相关文档