三分算法

主要用于求单峰函数的极值点,例如下图:
image
设当前函数为f,若f(midl)<f(midr),那么极值点一定在[midl,r]中取到,令l=midl继续执行。
反之,若f(midl)>f(midr),那么极值点一定在[l,midr]中取到,令r=midr执行。

算法模板

while (r - l > eps)
{
    mid = (l + r) / 2;
    double fl = f(mid - eps), fr = f(mid + eps);
    if (fl < fr)
        l = mid; // 这里不写成mid - eps,防止死循环;可能会错过极值,但在误差范围以内所以没关系
    else
        r = mid;
}
posted @   Xxaj5  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示