- 4
- 0
- 约8.42千字
- 约 9页
- 2018-11-16 发布于江苏
- 举报
计算具体办法C语言编程
计算方法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)