三分模板

来源:互联网 发布:ubuntu怎么安装jdk1.8 编辑:程序博客网 时间:2024/05/17 01:08
double solve(double MIN,double MAX){    double Left, Right;    double mid, midmid;    double mid_value, midmid_value;    Left = MIN;    Right = MAX;    while (Left +eps < Right)    {        mid = (Left + Right) / 2;        midmid = (mid + Right) / 2;        mid_value = Calc(mid);        midmid_value = Calc(midmid);        ///求最大值改成>= 最小值改成<=        if (mid_value >= midmid_value) Right = midmid;        else Left = mid;    }    return Left;}
三分法可以求解有在区间内有单峰极值的函数,Calc是要进行三分法的函数,MIN和MAX是区间的左界和右界,也就是范围了。