三分法(Ternary Search)求解凸(凹)函数的极值问题<方法篇>
2012-08-03 10:51
253 查看
二分法作为分治中最常见的方法,在各种比赛中经常出现(如:POJ 1434),但只适用于单调函数,若遇到凸(凹)函数求解极值,可采取三分的方法求解。凸(凹)函数在高数中的定义是:若函数的二阶导数在区间上恒大于0,则该函数在区间为凸函数;反之,小于0为凹函数。在比赛中面对一个问题而推出的求解函数f,求解其二阶导数不是那么容易。为了提高出题效率,可以根据题目所求做出大胆的假设:即若求最大值,则可假设函数为凸的;若求最小值,则可假设函数为凹的(当然求最短路等图论问题除外),具体的三分方法如图:
凸函数:
凹函数:
核心程序段(求解凸函数)如下:
求解极小值则只需要换成if(f(midmid)-f(mid)>esp)即可
比较不错的题目有:
PKU3301 HDU2438
ZJU3203 Ural1874
LightOJ1146、1240 CodeForces185B
转载请注明出处:/article/9101563.html
凸函数:
凹函数:
核心程序段(求解凸函数)如下:
while(r-l>esp){ double mid=(l+r)/2.0; double midmid=(mid+r)/2.0; if(f(mid)-f(midmid)>esp)r=midmid; else l=mid; }
求解极小值则只需要换成if(f(midmid)-f(mid)>esp)即可
比较不错的题目有:
PKU3301 HDU2438
ZJU3203 Ural1874
LightOJ1146、1240 CodeForces185B
转载请注明出处:/article/9101563.html
相关文章推荐
- 三分法(Ternary Search)求解凸(凹)函数的极值问题<方法篇>
- 三分法(Ternary Search)求解凸(凹)函数的极值问题<题目篇>
- 关于html中charset与<title>位置不同页面空白的问题及解决方法
- 三分法——求解凸性函数的极值问题
- #import </usr/include/objc/objc-class.h> not such file or directory问题的解决方法
- 三分法——求解凸性函数的极值问题
- VM8.0下安装遇到了问题“windows cannot read the<product key> setting from the unattend answer file”解决方法
- 三分法——求解凸性函数的极值问题——czyuan原创
- 三分法——求解凸性函数的极值问题
- 转载 - 三分法——求解凸性函数的极值问题
- 三分法——求解凸性函数的极值问题——czyuan原创
- 三分法——求解凸性函数的极值问题——czyuan原创
- 三分法——求解凸性函数的极值问题——czyuan原创
- 1&amp;gt;s.cpp(465) : error C2448: “main”: 函数样式初始值设定项类似函数定义 问题的解决方法
- iOS 网络请求 时 出现 <null> 与 (null) 的 问题的处理方法
- asp.net中,在客户端,加入<%=....%>代码时出现的问题解决方法
- 使用<a>标签提交action会执行两次后台方法的原因(反射机制小实例问题的解决)
- 【转】三分法——求解凸性函数的极值问题——czyuan原创
- 关于八数码问题中的状态判重的三种解决方法(编码、hash、<set>)
- <笔记><算法导论> 假设求解问题的算法需要f(n)毫秒,对下表中的每个函数f(n)和时间t,确定可以在时间t内求解的问题的最大规模n。