c语言 弦截法求根

Python09

c语言 弦截法求根,第1张

算法没有问题

问题出在精度

float精度不足 导致计算到一定精度时进入浮点陷阱

把所有的float定义改为double 输入输出对应用%lf 就可以得到正确结果了

共同点:

针对求方程根,都是极限的思想

最后的值不断靠近真值

但是方程有整数根,二分法和弦截法求得的值仍然是极限值,得不到整数

弦截法选取的x1和x2必须包含真值

二分法的区间(a,b)也必须包含真值

速度其实差不多

用精度来确定最后的值,不能f(x)==0来确定最后值,

因为不是int型,极限的思想也不能是int型

不同点:

弦截法只针对本方程问题

而二分法的思想却有很多应用

因为它就是把问题一切为2,那边靠近答案往那边走

这样解决问题就很快

比如二分法查找