Matlab最优化实现方法之一维非线性优化:fminbnd

前言

在实际建模过程中由于诸多因素的影响,其目标函数或约束条件很难用线性关系式表达,针对此类非线性问题的优化称为非线性规划问题,其基本定义为一个n元函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。而其中寻求一元函数在某区间上的极点的优化方法,称为一维优化问题。

一维最优化方法

在将实际的物理问题抽象为数学模型时,一般按以下步骤来分析:

1)确定自变量;

2)确定优化目标;

3)确定约束条件;

4)确定自变量范围;

而非线性规划问题的一般形式可以表示为:

Matlab最优化实现方法之一维非线性优化:fminbnd

其中,

Matlab最优化实现方法之一维非线性优化:fminbnd称为模型的决策变量, Matlab最优化实现方法之一维非线性优化:fminbnd称为目标函数, Matlab最优化实现方法之一维非线性优化:fminbnd Matlab最优化实现方法之一维非线性优化:fminbnd称为约束函数,前者为等式约束,后者为不等式约束。

常见的一维最优化方法主要有黄金分割法、切线法、插值法等,其基本遵循一个思想:

从某一个出水点

Matlab最优化实现方法之一维非线性优化:fminbnd出发,沿某个适当选择的方向 Matlab最优化实现方法之一维非线性优化:fminbnd(通常为目标函数的下降方法)进行搜索,得到目标值较小的点 Matlab最优化实现方法之一维非线性优化:fminbnd;再从 Matlab最优化实现方法之一维非线性优化:fminbnd出发,沿选择的方向 Matlab最优化实现方法之一维非线性优化:fminbnd进行搜索,得到比目标函数更小的点 Matlab最优化实现方法之一维非线性优化:fminbnd

而如何确定目标函数下一次的寻优方向,我们以

Matlab最优化实现方法之一维非线性优化:fminbnd来表示。而针对一维最优化问题,实质上转化成求解步长因子 Matlab最优化实现方法之一维非线性优化:fminbnd的极值问题。

而针对一维搜索问题的基本步骤,常见如下:

1)确定搜索区间;

2)采用逐步缩小区间的方法或函数逼近,确定函数的极值点。

常见的方法主要有进退法、黄金分割法、斐波那契法、牛顿法、割线法等。

进退法

进退法的基本思想是指:

单谷函数

Matlab最优化实现方法之一维非线性优化:fminbnd,其极小值位于搜索区间[a,b]内,对于任意的 Matlab最优化实现方法之一维非线性优化:fminbnd,如果 Matlab最优化实现方法之一维非线性优化:fminbnd,则 Matlab最优化实现方法之一维非线性优化:fminbnd为极小点的搜索区间;如果 Matlab最优化实现方法之一维非线性优化:fminbnd,则 Matlab最优化实现方法之一维非线性优化:fminbnd为极大点的搜索区间。

进退法的代码示例如下,仅供参考:

黄金分割法

黄金分割法的基本思想与进退法基本一致,其对

Matlab最优化实现方法之一维非线性优化:fminbnd的取值做出了如下要求:

Matlab最优化实现方法之一维非线性优化:fminbnd

其中,

Matlab最优化实现方法之一维非线性优化:fminbnd取0.618。

黄金分割法的代码示例如下,仅供参考:

斐波那契法

斐波那契法与黄金分割法基本思想一致,但其针对

Matlab最优化实现方法之一维非线性优化:fminbnd的取值不同:

Matlab最优化实现方法之一维非线性优化:fminbnd,其中 Matlab最优化实现方法之一维非线性优化:fminbnd为第n个斐波那契数。

斐波那契法的代码示例如下,仅供参考:

来源:铁树银花

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月24日
下一篇 2021年10月24日

相关推荐