1). 对于一个曲线方程,任意的取2个点,A(a,f(a)). B(b,f(b)) 如果f(a)*f(b)<0 就可以继续。
2).求出连接A和B的直线方程,并可求出它与x轴的交点,x= a-f(a)*(b-a)/(f(b)-f(a))
如果f(x)与f(a)同号则使 A点成为(x,f(x));
如果f(x)与f(b)同号则使B点成为 (x,f(x)).
3). 然后再次对A点B点使用弦截法,重复步骤2,然后再对AB弦截。。。。。直到误差在可接受的范围为止。
4). 误差的值即为f(x)与0的差;误差可接受后x即为最后所求的解。
采用C编程时,如果用
x= a-f(a)*(b-a)/(f(b)-f(a)) 求X的值,会得不出想要的结果,但是把等式化为x=(a*f(b)-b*f(a))/(f(b)-f(a)) 就可以了,笔者暂时还不知道其中的原因是什么,等待一个答案中。。