数学建模程序与方法之非线性规划

来源:互联网 发布:linux schedule 编辑:程序博客网 时间:2024/06/05 20:19

定义

如果目标函数或者约束条件包含非线性函数,那么这种规划问题成为非线性规划问题。我们知道线性规划问题的最优解在可可行域的边界上达到,而非线性规划问题的最优解可以在可行域的任意一点达到。

数学表达

minf(x)  s.t.AxBAeqx=bC(x)0Ceq(x)=0
其中f(x)是标量函数,C(x),Ceq(x)是非线性函数。matlab程序如下:
%%%%%%%%%%%%%非线性约束%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%min f(x)=x1^2+x2^2+x3^2+8%%%%%%%
%%%%%%%%%%%%%约束条件%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%x1^2-x2+x3^2>=0%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%x1+x2^2+x3^2<=20%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%-x1-x2^2+2=0%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%x2+2x3^2=3%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%x1,x2,x3>=0%%%%%%%%%%%%%%%%%%%%%
clc;
f1=@(x) sum(x.^2)+8;
[x,fval]=fmincon(f1,rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')

function[g,h]=fun2(x)
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^2-20];
h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^2-3];

原创粉丝点击