当前位置:文档之家› 用二分法求非线性方程实根

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

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

源程序:
#include<stdio.h>
#include<math.h>
#include<conio.h>
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)<e)break;
else continue;
}
else
{
a=x;
if(fabs(b-a)<e)break;
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。

相关主题