三分法——凸函数求极值问题

</pre><pre name="code" class="cpp">double Calc(Type a)
{
    /* 根据题目的意思计算 */
}
void Solve(void)
{
    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_area = Calc(mid);
        midmid_area = Calc(midmid);
        // 假设求解最大极值.
        if (mid_area >= midmid_area) Right = midmid;
        else Left = mid;
    }
}

首先,模板转自,   http://www.cnblogs.com/newpanderking/archive/2011/08/25/2153777.html  ,需要的请参考这个大神的,%%%%

第一次听三分法感觉很神奇,回来百度一下模板,主要解决二分法无法解决的凸函数找极值的问题,水几个简单题再来填坑。

 

posted @ 2016-03-17 16:33  zhangxianlong  阅读(219)  评论(0编辑  收藏  举报