三分计算

说明

三分法一般用于计算区间内极值

使用方法

  1. 自己定义f()函数
  2. Ternary_Calculate(l, r);其中l, r为对应区间的左右端点值

Tips

  • 该模版用于求极大值,求极小值请改符号

模版

double f(double theta){
    return blablabla;
}

const double eps=1e-8;
double Ternary_Calculate(double l, double r){
    double mid,midmid,ans;
    while (fabs(r-l)>eps) {
        mid=(l+r)/2;
        midmid=(mid+r)/2;
        if(f(mid)<f(midmid))    //求极大值
            l=mid;
        else
            r=midmid;
    }
    ans=f(l);
    return ans;
}

results matching ""

    No results matching ""