会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面|手机浏览|联系方式|购物车
非线性规划 - 数学建模
2024-12-30IP属地 湖北0

非线性规划 - 数学建模

规划问题的数学模型一般由三个因素构成 决策变量 目标函数 约束条件
在描述目标函数或者约束条件的数学表达式中,至少有一个是非线性函数,这样的优化问题称为非线性规划。一般来说,解决非线性规划问题要比解决线性规划问题困难得多。
对于非线性规划问题,目前还没有一种适用于一般情况的求解方法,各种方法都有各自特定的应用范围。

1、基于求解器求解

在MatLab工具箱中,用于求解无约束极小值问题的函数有 fminunc 和 fminsearch (局部最优化算法
fminunc(采用拟牛顿法(QN),是一种使用导数的算法

 

输入参数
fun 为要计算最小值的函数
x0 为初始点
options 为优化选项。
输出参数
x 为解,fval 为解处的目标函数值
exitflag 为fminunc 停止的原因,output 为有关优化过程的信息,grad 为解处的梯度,hessian 为逼近 Hessian 矩阵。

fminsearch(采用Nelder-Mead单纯形法,是一种直接搜索法

 

输入参数
fun 为要计算最小值的函数
x0 为初始点
options 为优化选项。
输出参数
x 为解,fval 为解处的目标函数值
exitflag 为fminunc 停止的原因,output 为有关优化过程的信息。
除此之外 fminsearch 还可以
监视优化过程并绘制目标函数图:设置选项,以监视 fminsearch 尝试定位最小值的过程
设置选项,以在每次迭代时绘制目标函数图。
具有额外参数时求最小值:有时您的目标函数具有额外参数。这些参数不是要优化的变量,它们是优化过程中的固定值,您可以通过创建匿名函数将该参数包含在您的目标函数中,创建目标函数并将其额外形参作为额外实参。

2、基于问题求解

类似于线性规划和整数规划,首先需要用变量和表达式构造优化问题,然后用solve函数求解,详见例题。

3、例题

 

(2)基于问题求解

 

求得的极小值点为 (1,0),极小值为 -5;极大值点为 (-3,2),极大值为 31。

有约束极值问题就是一般的非线性规划问题

1、基于求解器求解

 

其中
输入参数
fun 为要计算最小值的函数
x0 为初始点,指定为实数向量或实数数组。求解器使用 x0 的大小以及其中的元素数量确定 fun 接受的变量数量和大小。
A 为线性不等式约束矩阵,A 表示约束中的线性系数
b 为线性不等式约束向量,b 表示约束中的常向量
Aeq 为线性等式约束矩阵,beq 为线性等式约束向量
lb 为下界,ub 为上界
nonlcon 为非线性约束
options 为 intlinprog 的选项,problem 为封装输入和选项的结构体,lambda 为解处的拉格朗日乘数,grad 为解处的梯度,hessian 为逼近 Hessian 矩阵
输出参数
x 为解,fval 为目标函数最优值
exitflag 为算法停止条件,output 为求解过程摘要。

2、基于问题求解

类似于线性规划和整数规划,首先需要用变量和表达式构造优化问题,然后用solve函数求解,详见例题。

3、例题

 

(2)基于问题求解