【摘要】:非线性有约束的多元函数的标准形式为:其中,x,b,beq,lb,ub是向量;A,Aeq为矩阵;C,Ceq是返回向量的函数;f为目标函数。在MATLAB中,它的求解由函数constr实现。例5.16求下面问题在初始值点(0,1)处的最优解。解约束条件的标准形式为先在MATLAB编辑器中建立非线性约束函数文件:然后在命令窗口键入如下命令或建立m文件:结果为:例5.17求最优值。
其中,x,b,beq,lb,ub是向量;A,Aeq为矩阵;C(x),Ceq(x)是返回向量的函数;f(x)为目标函数。f(x),C(x),Ceq(x)可以是非线性函数。
在MATLAB中,它的求解由函数constr实现。
函数fmincon格式:
参数说明:
fun为目标函数,它可用前面的方法定义;
x0为初始值;
A,b满足线性不等式约束A·x≤b,若没有不等式约束,则取A=[ ],b=[ ];
Aeq,beq满足等式约束Aeq·x=beq,若没有等式约束,则取Aeq=[ ],beq=[ ];
lb,ub满足lb≤x≤ub,若没有界,可设lb=[ ],ub=[ ]。
lambda是拉格朗日乘子,它体现哪一个约束有效;
output为输出优化信息;
grad表示目标函数在x处的梯度;(www.daowen.com)
hessen表示目标函数在x处的Hessen值;
nonlcon的作用是通过接受的向量x来计算非线性不等式约束C(x)≤0和等式约束Ceq(x)=0分别在x处的估计C和Ceq,通过指定函数柄来使用,如>>x=fmincon(@myfun,x0,A,b,Aeq,lb,ub,@myfun),先建立非线性约束函数,并保存为
myfun.m:function[C,Ceq]=mycon(x)
C为x处的非线性不等约束C(x)≤0的函数值;
Ceq为x处的非线性等式约束Ceq(x)=0的函数值。
例5.16 求下面问题在初始值点(0,1)处的最优解。
解约束条件的标准形式为
先在MATLAB编辑器中建立非线性约束函数文件:
然后在命令窗口键入如下命令或建立m文件:
结果为:
例5.17 求最优值。
结果为:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关运筹学实验指导及MATLAB程序设计的文章