第三章 非线性规划
3.1 非线性规划模型
定义:目标函数或者约束条件中包含非线性函数,就是非线性规划问题。
模型展示:
3.1.2 MATLAB中的默认模型
[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
其中:
f
u
n
fun
fun是由MATLAB中的函数文件定义得到的,
x
0
x0
x0是
x
x
x的初始值,
A
,
b
,
A
e
q
,
b
e
q
A,b,Aeq,beq
A,b,Aeq,beq定义了线性约束,
c
(
x
)
,
c
e
q
(
x
)
c(x),ceq(x)
c(x),ceq(x)定义了非线性约束,在函数中是用
n
o
n
l
c
o
n
nonlcon
nonlcon表示以MATLAB中的函数文件定义的非线性向量函数;
o
p
t
i
o
n
s
options
options定义了优化参数,使用时可以具体参考MATLAB自带的帮助文档。
下面的一个例子可以帮助你更好地理解上面的函数使用规范:
//编写.m函数文件定义目标函数
function f=fun1(x)
f=sum(x.^2)+8;
//编写.m函数文件定义对应非线性约束条件
function [g,h]=fun2(x)
g=[-x(1)^2+x(2)-x(3)^2;x(1)+x(2)^2+x(3)^3-20];//非线性不等式约束
h=[-x(1)-x(2)^2+2;x(2)+2*x(3)^2-3];//非线性等式约束
//编写主程序文件如下:
[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2');
相信对 f m i n c o n fmincon fmincon函数有一定认识的你能够,根据上面的代码还原出对应的目标函数和约束条件数学表达式。
参考文献
[1]司守奎,孙玺菁. 数学建模算法与应用. 北京:国防工业出版社,2011.