计算方法C语言编程计算方法C语言编程.docVIP

  • 13
  • 0
  • 约8.4千字
  • 约 9页
  • 2017-04-23 发布于贵州
  • 举报

计算方法C语言编程计算方法C语言编程.doc

计算方法C语言编程 第二章 2已知方程在区间[1,2]内有一根,试问用二分法求根,使其具有5位有效数字至少应二分多少次? 【程序设计】 #includemath.h main() {int n=0; float x1=1.0,x2=2.0,x=1.0,x0; do{ x0=x; x=(x1+x2)/2; n++; if(x*x*x+x-40) x2=x; else x1=x;} while(fabs(x-x0)0.00005); printf(N=%d\n,n); } 〖运行结果〗N=15 4用迭代法求的正根,要求准确到小数点后第5位。 【程序设计】 #includemath.h main() { float x0, x=1.5,y; do{ y=(log(x+0.2))/5; x0=x; x=exp(y);} while(fabs(x-x0)0.000005); printf( X=%f\n,x); }- 〖运行结果〗x=1.044763 9用牛顿法求方程在x0=2附近的根,要求准确到小数点后第3位。 【程序设计】 #includemath.h main() { float x=2.0,x0; do{x0=x; x=x-(x*x*x-3*x-1)/(3*x*x-3); } while(fabs(x-x0)0.0005); printf(X=%f\n,x); } 〖运行结果〗x=1.879385 11.分别用单点和双点弦截法求方程-x-1=0在[1,1.5]内的根。要求|xn+1-xn|=0.000005 【程序设计】 #includemath.h float f(float x) { float f; f=x*x*x-x-1; return f;} float g(float x1,float x2) { float g; g=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return g;} main() { float x1=1.0,x2=1.5,x,x0; x=x1; do{ x0=x; x=g(x1,x2); if(f(x)0) x2=x; else x1=x;} while(fabs(x-x0)0.000005); printf( X=%f\n,x); } 〖运行结果〗x=1.324717 第三章 1.分别用列主元素消去法求解下列方程组.(计算取4位小数). 【程序设计】 #define n 4 main() {floata[n][n]={1.1161,0.1254,0.1397,0.1490,0.1582,1.1675,0.1768,0.1871, 0.1968,0.2071,1.2168,0.2271,0.2368,0.2471,0.2568,1.2671}, b[n]={1.5471,1.6471,1.7471,1.8471},k,x[n+1],y[n+1]; int i,j,t; y[n]=0.0; for(i=0;in;i++) for(j=i+1;jn;j++) { k=(-1)*a[j][i]/a[i][i]; a[j][i]=0; for(t=i+1;tn;t++) a[j][t]=a[i][t]*k+a[j][t]; b[j]=b[i]*k+b[j]; } for(i=n-1;i=0;i--) { for(j=n-2;j=0;j--) { if(a[i][j]!=0) b[i]=b[i]-y[j+1]*a[i][j+1]; else break;} y[i]=b[i]/a[i][j+1]; x[i+1]=y[i]; } for(i=1;i=n;i++) printf(X%d=%f\n,i,x[i]); } 〖运行结果〗x1=1.040584 x2=0.986957 x3=0.935052 x4=0.881297 9设有方程组 取初始向量,分别用雅可比迭代法与赛德尔迭代法求解,要求时迭代终止.

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档