用二分法求非线性方程实根

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A-1 用二分法求非线性方程实根

本实验用二分法求方程f (x) = x3 −2x −5 =0 在区间[2,3]内的根。

源程序:

#include

#include

#include

float f(float x)

{

float a;

a=x*x*x-2*x-5;

return a;

} /*求函数值,如果求其它函数,只需改成其它函数即可*/

main()

{

float a,b,,e,x; /* a,b 分别表示有根区间的左、右端点, e 是精度要求,x 区间中点值*/ clrscr();

printf(" \n please input data a =");

scanf("%f",&a);

printf(" \n please input data b=");

scanf("%f",&b);

printf("\n please input data eps=");

scanf("%f",&e);

if(f(a)*f(b)<0)

{

while(f(x)!=0)

{

x=(a+b)/2;

if(f(x)*f(a)<0)

{

b=x;

if(fabs(b-a)

else continue;

}

else

{

a=x;

if(fabs(b-a)

else continue;

}

}

printf("\n");

x=(b+a)/2;

printf("the root of f(x)=0 is x=%f\n",x);

}

else

printf("\ not root! afresh input\n"); /*表示[a,b] 区间无根,重新选择有根区间*/ getch();

teturn(x);

}

计算结果:

please input data a = 2

please input data b = 3

please input data eps= 0.00001

the root of f(x)=0 is x= 2.094555

相关文档
最新文档