三分算法

Description: 三分算法其实是相对于二分的。与二分神似。它的作用主要来求一些凹或凸函数的极值的。当然,如果你高数可以的话求导也是可以解决的。
Code:

double deal()
{
    double l=0,r=PI,mid,mmid;
    while(fabs(r-l)>EPS){
        mid=(r+l)/2;
        mmid=(mid+r)/2;
        cal(mid)<cal(mmid)? r=mmid:l=mid;
        // 这个地方要注意,并不是所有的地方都是这么用的
        // 诀窍就是,如果mid更靠近极值点,那么r=mmid
    }
    return cal(l)*cal(l);
}

你可能感兴趣的:(算法)