如果目标函数或者约束函数中包含非线性函数,就称这种规划问题为非线性规划问题。非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。
非线性规划问题的数学模型如下:
其中,f(x)是标量函数,A、B、Aeq、Beq是相应维数的矩阵和向量,C(x)、Ceq(x)是非线性向量函数。在Matlab中求解非线性函数最优解的命令是:X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS),返回值是向量X,其中FUM是定义的函数f(x),X0是x的初始值。A、B、Aeq、Beq定义线性约束条件Ax<=B,Aeq*X=Beq,如果没有线性约束条件,那么A、B、Aeq、Beq均为[]。LB和UB分别是x的下界和上界,如果没有约束条件那么其值为[]。如果X没有下界,则LB=-inf,如果X没有上界则UB=inf。NONLCON是定义的非线性向量函数C(x)、Ceq(x)。Optinons定义了优化参数。
案例:
在.M文件中编写fun1.m和fun2.m,其中函数定义分别为:
Matlab求解: