level 2
相聚人海于席散
楼主

二分法查找一直不能正确输出啊,是用Which语句实现递归的过程错了吗下面是代码::
temp = 10^-6;(*设置一个阈值来判断函数值是否接近零*)
Findzero[f_, start_, final_, temp_] :=
Module[{a = N[start], b = N[final], c}, c = (a + b)/2; fc = f[c];
Which[Abs[a - b] <= temp, Return[c], fc <= temp, Return[c],
f[a]*fc > 0, Findzero[f, c, b, temp], f[b]*fc > 0,
Findzero[f, a, c, temp]]];
f[x_] := Sin [x];
Findzero[f, -1.5, 0.5, temp]