中易网

求一C++风格程序,用二分法求f(x)=0的根

答案:1  悬赏:80  
解决时间 2021-01-12 05:31
  • 提问者网友:暗中人
  • 2021-01-11 07:47
求一C++风格程序,用二分法求f(x)=0的根
最佳答案
  • 二级知识专家网友:冷風如刀
  • 2021-01-11 09:19
#include 
#include 

typedef double (*F)(double);


double solve(F f, double a, double b, double e = 1e-6)
{
    if (fabs(f(a)) < e) return a;
    if (fabs(f(b)) < e) return b;
    if (f(a) > 0) std::swap(a, b);
    while (1) {
        double c = (a + b) / 2;
        if (fabs(f(c)) < e || c == a || c == b) return c;
        if (f(c) < 0) a = c;
        else b = c;
    }
}

#include 

int main()
{
    std::cout << solve(sin, 1.5, 6); //输出3.14159
    return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息