题目:
以下C程序是应用二分法求方程f(x)=x*x*x-x-1=0在区间(1,2)上的解,精确到小数点后第6位。
- #include "stdio.h"
- #include "math.h"
- #define f(x) ((x*x-1)*x-1)
- #define e 0.0000001
- void main()
- {
- float x,a=1,b=2,y=f(a);
- int k=0;
- char flag;
- if(y*f(b)>=0){
- printf("\nThe range is error!");
- return;
- }
- else
- printf("k ak bk xk f(x) bk-ak\n");
- do{
- x=(a+b)/2;
- if(f(x)<0)
- flag='-';
- else flag='+';
- printf("%2d %8.7f %8.7f %8.7f %c %8.7f \n",k,a,b,x,flag,b-a);
- if(f(x)==0)
- break;
- if(f(x)>0)
- b=x;
- else
- a=x;
- k++;
- }while((b-a)/2>e);
- printf("\nx=%8.6f",x);.
- }
阅读(1047) | 评论(0) | 转发(0) |