(2)連接(x1,f(x1))和(x2,f(x2))兩點,此線交x軸於x,x的坐標可以用下式求出:x=(x1*f(x2)-x2*f(x1))/f(x2)-f(x1),
再從x求出f(x);
(3)若f(x)和f(x1)同符號,則根必在(x,x2)內,此時將x作為新的x1;如果f(x)和f(x2)同符號,則表示根在(x1,x),此時將x作為新的x2。
(4)重復步驟(2)和(3),知道|f(x)|<e,e是壹個很小的數,例如10^-6;
程序如下:
#include<stdio.h>
#include<math.h>
float f(float x)
{
float y;
y=((x-5.0)*x+16.0)*x-80.0;
return y;
}
float xpoint(float x1,float x2)
{//求(x1,f(x1)和(x2,f(x2))連線與x軸的交點
float y;
y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return y;
}//xpoint函數
float root(float x1,float x2)
{
float x,y,y1;
y1=f(x1);
do
{