• 三分模版


    三分查找,用来比较不同坐标处值的大小关系(比较的这两点通常是分布在极值点两侧的),来确定区间内的极值。

    三分应用于最优化问题的求解。在解题时没必要给出证明,只要知道问题不满足单调性,就可以尝试用三分搜索极值点,而且三分整数很少见,因为除非能够证明这种策略是正确的(即完全符合凸函数的性质,但是通常极值点不会在整点取得,如果三分整数,那么函数也不是连续的了),否则很可能会错误,而三分应用在小数中是最常见的,比如说三分角度,三分坐标等等。

    一些函数的常用结论:

    1、如果一个函数是若干个开口向上的二次函数的最大值 这个函数只能先减后增

    2、如果一个函数是若干个开口向下的二次函数的最小值 这个函数只能先增后减

    模版:

    凸函数求极大值:

    while (l + eps < r) {
            double lm = l + (r-l) / 3;
            double rm = r - (r-l) / 3;
            if (f(lm) > f(rm))
                r = rm;
            else
                l = lm;
        }
        //凸点:    l
        cout << f(l) << endl;

    凹函数求极小值:

    while (l + eps < r) {
            double m1 = l + (r-l) / 3;
            double m2 = r - (r-l) / 3;
            if (f(m1) > f(m2))
                l = m1;
            else
                r = m2;
        }
        // 凹点:   l
        cout << f(l) << endl;
  • 相关阅读:
    [Bullet3]创建世界(场景)及常见函数
    [erlang]supervisor(监控树)的重启策略
    [game]十字链表的AOI算法实现
    [翻译][erlang]cowboy handler模块的使用
    数据挖掘算法系列目录
    Spark原理分析目录
    Spark实战系列目录
    2019年读书书单
    Hadoop源码解读系列目录
    分布式架构系列目录
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/12318158.html
Copyright © 2020-2023  润新知