首页 > 其他 > 详细

数学一本通 7.3 函数的凹凸性

时间:2019-02-26 22:36:02      阅读:230      评论:0      收藏:0      [点我收藏+]

众所周知,单调函数可以用二分查找值

而有的函数是单峰(谷)的,这时就可以用三分求极值。

所谓三分,就是将函数分为三部分,每次舍去一部分

最后缩小到答案区间。

如图:

技术分享图片

当lmid>rmid时,[rmid,∞)区间内肯定没有答案

反之,lmid<rmid时,(-∞,lmid]区间内肯定没有答案

而两个相等时,极值肯定在中间,任舍一段即可(仅保留中间段也行)

 代码:

double solve(double left,double right)//三分 
{
    if(right-left<eps) return left;
    double mid=(left+right)/2;
    double lans=cal(mid-eps),rans=cal(mid+eps);
    if(lans>rans) return solve(left,mid);
    if(lans<rans) return solve(mid,right);
    return mid;
}

cal()是所求函数。

数学一本通 7.3 函数的凹凸性

原文:https://www.cnblogs.com/ehznehc/p/10440471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!