matlab中约束条件非线性,求目标函数最小值 怎么做?

matlab中约束条件非线性,求目标函数最小值 怎么做?
约束条件:100=x(2)y(12+e(-x/y))
目标函数:f(x,y)=xy(3)
x,y均大于零,如何求目标函数的最小值?

function [c,ceq]=xiandaicon(x) %构造约束函数
c=[];
ceq=100-x(1)^3*x(2)*(12-exp(-x(1)/x(2)));

function y=xiandaiobj(x) %构造目标函数,命名为xiandaiobj.m
y=x(1)*x(2)^3

lb=[0 0];
ub=[];
x0=[1 1];
[x,fval]=fmincon(@xiandaiobj,x0,[],[],[],[],lb,ub,@xiandaicon)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-29
function [c,ceq]=xiandaicon(x) %构造约束函数
c=[];
ceq=100-x(1)^3*x(2)*(12-exp(-x(1)/x(2)));

function y=xiandaiobj(x) %构造目标函数,命名为xiandaiobj.m
y=x(1)*x(2)^3

lb=[0 0];
ub=[];
x0=[1 1];
[x,fval]=fmincon(@xiandaiobj,x0,[],[],[],[],lb,ub,@xiandaicon)
相似回答