黄金分割法与单峰函数求极值
黄金分割法(又称 0.618 法)是求单峰函数极值的一种试探法,所谓单峰函数是指只有一个峰值(局部极小值也是全局极小值,或者说只有唯一的局部极小值)的函数,其严格定义为:
定义:设 f(x)f(x) 是定义在 [a,b][a, b] 上的函数,若:
- (1)存在 x⋆∈[a,b]x^{\star}\in [a, b] 使 minx∈{a,b}f(x)=f(x⋆)\min_{x\in\{a,b\}}f(x)=f(x^\star)
- (2)对任意的 a≤x1<x2≤ba\leq x_1,当 x2≤x⋆x_2\leq x^{\star} 时,f(x1)>f(x2)f(x_1)>f(x_2);当 x1≥x⋆x_1\geq x^\star 时,f(x1)≤f(x2)f(x_1)\leq f(x_2)
则称 f(x)f(x) 为 [a,b][a, b] 上的单峰函数。
搜索区间收缩原则
“去坏留好”原则
含义较为简单,不再赘述。
对称原则
x1−a=b−x2x2=a+b−x1x_1-a=b-x_2\\x_2=a+b-x_1
等比原则
x2=a+w(b−a)x1=a+w2(b−a)x_2=a+w(b-a)\\x_1=a+w^2(b-a)\\
又根据对称原则:x1−a=b−x2x_1-a=b-x_2,最终可得,
w2=1−ww^2=1-w
简单举例,
求 y=x2y=x^2 (显然为单峰函数)在[-1, 1]上的最小值;
def golden_split(f, a, b):x1 = a + 0.332*(b-a)x2 = a + b - x1while abs(x1 - x2) < 1e-5:R, G = f(x1), f(x2)if R > G:b = x2x2 = x1x1 = a + b - x2else:a = x1x1 = x2x2 = a + b - x1return (a + b)/2print(golden_split(lambda x: x^2), -1, 1))
黄金分割法与单峰函数求极值相关推荐
- c语言黄金分割法求最小值,黄金分割法求极值(c编程)
<黄金分割法求极值(c编程)>由会员分享,可在线阅读,更多相关<黄金分割法求极值(c编程)(3页珍藏版)>请在人人文库网上搜索. 1.流程图:b=a+i*h; i+f(a),f ...
- python求最值_用Python实现最速下降法求极值的方法
对于一个多元函数 ,用最速下降法(又称梯度下降法)求其极小值的迭代格式为 其中 为负梯度方向,即最速下降方向,αkαk为搜索步长. 一般情况下,最优步长αkαk的确定要用到线性搜索技术,比如精确线性搜 ...
- hihoCoder #1142 : 三分求极值
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- 用Python实现最速下降法求极值
原文:https://blog.csdn.net/u012705410/article/details/47254437 用Python实现最速下降法求极值 对于一个多元函数f(x)=f(x1,x2, ...
- 算法题目——二次函数三分求极值(HDU-3714)
题目链接:HDU-3714 题目描述: 对于N个二次函数,求每个二次函数的最小值中的最大值 思路: 使用三分法求极值(递归调用) 对于这种在指定区间里只有一个极值点的函数(凸函数凹函数都可以),我们可 ...
- matlab求曲线极值程序,matlab函数求极值matlab函数求极值.ppt
matlab函数求极值matlab函数求极值 * * 函数的极值 1.一元函数的极值 函数命令:fminbnd 调用格式:[x,feval,exitflag,output]=fminbnd(fun,x ...
- matlab 局部极值点,matlab 图像局部求极值
求极值的具体语句: 极值: data是你的数据, find(diff(sign(diff(data)))==-2)+1 找到极大值的位置 find(diff(sign(diff(data)))==2) ...
- 最优化方法:非线性方程的求极值方法
http://blog.csdn.net/pipisorry/article/details/23553263 本文主要讲解 数值分析:非线性方程的求根方法,但是等价于最优化方法:非线性方程的求极值方 ...
- python迭代法求极值_用Python实现最速下降法求极值的方法
对于一个多元函数 ,用最速下降法(又称梯度下降法)求其极小值的迭代格式为 其中 为负梯度方向,即最速下降方向,αkαk为搜索步长. 一般情况下,最优步长αkαk的确定要用到线性搜索技术,比如精确线性搜 ...
最新文章
- GitHub上YOLOv5开源代码的训练数据定义
- System.Timers.Timer的Enable、Start、Stop记录
- 无线网***工具进攻方法及防范技巧
- 关闭系统进程,以及如何调用cmd并执行命令
- Maven--反应堆(Reactor)
- 补习系列(15)-springboot 分布式会话原理
- codeforces379a Alyona and mex
- android SDL系列讲解(十三) 播放音乐库 SDL_mixer教程
- 测试用例-----遥控器
- 浪潮信息m6服务器性能,展现强劲性能,浪潮M6服务器为什么能刷新SPEC多项记录...
- 几本关于用户体验的书籍
- 【猪八戒】- 2017年在线笔试“叠字问题”
- 什么是论坛域名?论坛域名适用在哪些地方?
- 2021-6-7-今日收获
- Word2016 显示批注
- 正大国际期货:做期货主帐户有什么风险?
- oracle 19c dbua升级时ORA-20001报错的分析
- 正大国际琪貨召主涨户:股指期货套期保值交易可分为哪几类
- 2. 高光谱成像技术
- 组播路由协议——PIM基本概念
热门文章
- Hadoop不同版本数据传输distcp问题设置
- spark-dataframe与rdd的区别
- Spark-Serialization序列化的2种方式解释对比使用场景
- 剑指offer面试题58 - I. 翻转单词顺序(双指针)
- debian开机打开浏览器_使自動起動! 我学到了!原来“文件”可以跟“应用程序”一样,都能设置开机自启!!...
- 【Linux】 JDK安装及配置 (linux-tar.gz版)
- sonar扫描android项目配置 mac版
- 小程序-picker之key-value形式
- 验证码 随机生成器 详解
- android BaseAdapter优化