C语言中二分法求根

Python023

C语言中二分法求根,第1张

if(c*d<0)

{

a=m

c=n

}

else

{

b=m

d=n

}

改为

if(m*d<0)

{

a=m

c=m

}

else

{

b=m

d=m

}

这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。

方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用eps=1e-5作为区间的极限大小,通过迭代的方法求解这个方程的数值解。

所以了解了上述思想,那么else

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

b=c

说明的是

f(a)和f(c)异号,那么使用b=(a+b)/2缩小迭代区间,继续迭代;同理else

a=c说明f(a)和f(c)同号,那么使用a(a+b)/2缩小迭代区间,继续迭代!