数学建模路 - 最优化 - 非线性规划

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42686673/article/details/81428994

定义:目标函数或约束条件中包含非线性函数,则称这样的规划问题为非线性规划问题

非线性规划问题:在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,

其中至少有一个非线性函数,这类问题称为非线性规划问题

一般形式:

x为列向量,称为模型(NP)的决策变量,f称为目标函数,gi和hi称为约束函数,gi(x)=0称为等式约束,

hj(x)<=0称为不等式的约束

构建非线性约束问题步骤

1.确定供选方案,用一组变量表示他,即确定决策变量

2.确定目标函数和方向

3.寻求限制条件,用等式或不等式表示

线性规划与非线性规划区别

与线性规划最优解(如果存在)只能在其可行域的边界上达到(特别是顶点)不同,非线性规划如果存在最优解,

则可能在其可行域任一点达到

MATLAB求解非线性规划

1.化为标准形式

2.调用命令

求解非线性规划的基本迭代格式

可通过采用迭代的方法求它的最优解,基本思想:从选定的初始点x0开始,按照某一特定的迭代规则产生一个点列

使得当点列是有穷点列时,其最后一个点为NP最优解,当点列是无穷点列时,它有集贤殿,极限点是最优解

(1)为求解非线性规划问题的基本迭代格式

通常称p^k为第k轮搜索方向,tk为沿p^k方向的步长,关键在于构造每一轮的搜索方向和确定适当的步长

tp有点邻域的感觉。

一个向量p,若既是函数f在点处下降方向,又是该点关于区域K的可行方向,则称之为函数f在点处关于K的

可行下降方向

求解步骤:

凸函数与凸规划

欧氏空间

凸规划的可行域为凸集,其局部最优解即为全局最优解,而且其最优解的集合形成一个凸集。当凸规划的目标函数f(x)

为严格凸函数,其最优解必定唯一

无约束问题

一维搜索方法

用迭代法求函数的极小点时,常用到一维搜索方法,即沿某一方向求目标函数的极小值。

常用方法

1.试探法

2.插值法

3.微积分中的求根法

方法1.在区间[a,b]中任取两个关于[a,b]是对称的t1和t2(不妨设t2<t1),计算两点的函数值,机型比较,总可以获得缩短了的

丹凤区间,重复并充分缩短即可得最优解近似值

Fibonacci法

n个函数值代表能缩短到单位长区间的最大原区间长度

Fibonacci分数代表每一次缩短率

设定一个精度,即可得出搜索次数(一个最小整数n

0.618法(等速对称试探法)

黄金分割数是Fibonacci分数趋于无穷时的值

相当于Fibonacci法的变异,改变了每次的缩短率为定值0.618

二次插值法

算法:搜索区间内用低次多项式近似目标函数,用多项式的最小点逼近极小化问题最优解

无约束极值问题解法

形式:

两种迭代法

1.解析法

2.直接法

解析法

梯度法(最速下降法

沿负梯度方向下降最快,即为最速下降方向,并以此方向做一维搜索

牛顿法

Hesse阵正定

此方法收敛速度快,但不容易改进

维数较高,速度慢

变尺度法

高维问题显著优越

算法:每一步都能确定下次搜索放行,每次迭代,函数值下降,最后收敛到解点处Hesse逆阵

得到若干尺度矩阵,第一个取单位阵

直接法:目标函数不可导或但函数解析式难以表示

Powell法:

算法:基本搜索、加速搜索、调整搜索方向

MATLAB与无约束极值问题

约束极值问题(规划问题

:带有约束条件的极值问题

算法:约束条件化为无约束问题;非线性化为线性规划

二次规划(目标函数为x的二次函数,约束条件都是线性

MATLAB标准形式:

罚函数法(序列无约束最小化技术SUMT

算法:转化为求解一系列无约束极值问题,约束函数的罚函数,得带参增广目标函数

外罚函数法:

MATLAB优化工具箱

展开阅读全文

没有更多推荐了,返回首页