文档详情

计算方法实验代码及实验结果截图详解.doc

发布:2017-05-22约5.92千字共13页下载文档
文本预览下载声明
实验一:迭代法一 #includestdio.h #include MATH.H #define x0 2 #define maxrept 1000; #define G(x) pow(x+1/2.0,1.0/3) void main(){ int i; double x_k=x0,x_k1=x0; printf( k xk\n); for (i=0;i10;i++) { printf( %d %g\n,i,x_k1); x_k1=G(x_k); x_k=x_k1; } printf(迭代10后的结果是:%g\n,x_k); } 实验一:迭代法二 #includestdio.h #include MATH.H #define x0 0 #define maxrept 1000; #define G(x) 2*x*x*x-1 void main(){ int i; double x_k=x0,x_k1=x0; printf( k xk\n); for (i=0;i10;i++) { printf( %d %g\n,i,x_k1); x_k1=G(x_k); x_k=x_k1; } printf(迭代10后的结果是:%g\n,x_k); } 实验一:牛顿法一 #includestdio.h #include MATH.H #define x0 0 #define MAXREPT 1000 #define EPS 0.5E-5 #define G(x) x-(x*x*x-x-1)/(3*x*x-1) void main() { int i; double x_k=x0,x_k1=x0; printf( k xk\n); for (i=0;iMAXREPT;i++) { printf( %d %g\n,i,x_k1); x_k1=G(x_k); if(fabs(x_k1-x_k)EPS) { printf(The root is x=%g,k=%d\n,x_k1,i); return; } x_k=x_k1; } } 实验一:牛顿法二 #includestdio.h #include MATH.H #define x0 1.5 #define MAXREPT 1000 #define EPS 0.5E-5 #define G(x) x-(x*x*x-x-1)/(3*x*x-1) void main() { int i; double x_k=x0,x_k1=x0; printf( k xk\n); for (i=0;iMAXREPT;i++) { printf( %d %g\n,i,x_k1); x_k1=G(x_k); if(fabs(x_k1-x_k)EPS) { printf(The root is x=%g,k=%d\n,x_k1,i); return; } x_k=x_k1; } } 实验二:Gauss消元法 #includestdio.h #includemath.h #define N 4 static double aa[N][N+1]={{1,-1,1,-4,2},{5,-4,3,12,4},{2,1,1,11,3},{2,-1,7,-1,0}}; int gauss(double a[][N+2],double x[]); void putout(double a[][N+2]); void main() { int i,j,det; double a[N+1][N+2],x[N+1]; for(i=1;i=N;i++) for(j=1;j=N+1;j++) a[i][j]=aa[i-1][j-1]; det=gauss(a,x); if (det!=0) for (i=1;i=N;i++)printf( x[%d]=%g,i,x[i]); } int gauss(double a[][N+2],double x[]) {int i,j,k,r; double c; putout(a); for (k=1;k=N-1;k++) {if(fabs(a[k][k])1e-17) {printf(\n pivot element is 0. fail! \n);return(0);} for(i=k+1;i=N;i++) {c=a[i][k]/a[k][k]; for(j=k;j=N+1;j++) {a[i][j]=a[i][j]-c*a[k][j];
显示全部
相似文档