数学建模-非线性规划模型

  • 目标函数或约束条件中包含非线性函数

  • 如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。

例:某企业有n 个项目可供选择投资,并且至少要对其中一个项目投资。已知该企业拥有总资金A元,投资于第i(i = 1,..,n)个项目需花资金a_{i}元,并预计可收益b_{i}元。试选择最佳投资方案。
解:设投资决策变量为

x_{i}= \left\{\begin{matrix} 1\\ 0\\ \end{matrix}\right. i=1,...,n

其中x_{i}=1表示投资第i个项目,x_{i}=0表示不投资第i个项目


则投资总额为\sum_{i=1}^{n}a_{i}x_{i},投资总收益为\sum_{i=1}^{n}b_{i}x_{i}。因为该公司至少要对一个项目投资,并且总的投资金额不能超过总资金A,故有限制条件
0< \sum_{i=1}^{n}a_{i}x_{i}\leqslant A
另外,由于x (i=1,...,n) i = L 只取值 0 或1,所以还有
x_{i}(1-x_{i})=0, i=1,...n
最佳投资方案应是投资额最小而总收益最大的方案,所以这个最佳投资决策问题归结为总资金以及决策变量(取0 或1)的限制条件下,极大化总收益和总投资之比。因此,其数学模型为:

上面例题是在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中至少有一个非线性函数,这类问题称之为非线性规划问题。可概括为一般形式

其中{x=[x{1},...,x_{n}]}_^{T} 称为模型的决策变量,f 称为目标函数,g_{i}(i = 1,..., p)和 h_{j} (1,...,q) 称为约束函数。另外,g_{i}(x) = 0 , (i = 1,..., p) 称为等式约束,h_{j}(x) ≤ 0,( j = 1,...,q)称为不等式的约束。
对于一个实际问题,在把它归结成非线性规划问题时,一般要注意如下几点:
(i)确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是问题的可供选择的方案,并用一组变量来表示它们。
(ii)提出追求目标:经过资料分析,根据实际需要和可能,提出要追求极小化或极大化的目标。并且,运用各种科学和技术原理,把它表示成数学关系式。
(iii)给出价值标准:在提出要追求的目标之后,要确立所考虑目标的“好”或“坏”的价值标准,并用某种数量形式来描述它。
(iv)寻求限制条件:由于所追求的目标一般都要在一定的条件下取得极小化或极大化效果,因此还需要寻找出问题的所有限制条件,这些条件通常用变量之间的一些不等式或等式来表示。

非线性规划的Matlab 解法

Matlab 中非线性规划的数学模型写成以下形式

其中 f (x)是标量函数,A, B, Aeq, Beq是相应维数的矩阵和向量,C(x),Ceq(x)是非线性向量函数。
Matlab 中的命令是

X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)


它的返回值是向量x,其中 FUN 是用M 文件定义的函数 f (x);X0是x的初始值;A,B,Aeq,Beq 定义了线性约束 A* X ≤ B, Aeq * X = Beq ,如果没有线性约束,则A=[],B=[],Aeq=[],Beq=[];LB 和UB 是变量x 的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果x 无下界,则LB 的各分量都为-inf,如果x 无上界,则UB的各分量都为 inf;NONLCON 是用M 文件定义的非线性向量函数C(x),Ceq(x);OPTIONS定义了优化参数,可以使用Matlab 缺省的参数设置。

猜你喜欢

转载自blog.csdn.net/weixin_37079656/article/details/86534978