Min ƒ(x)
函数:f(x)=0.45*e^-0.087*X1+0.45*e^1.875X2+0.1*0.0222X3
约束条件:100<x1<200
15<x2<28
12<X3<15
函数的M文件可以编,但如何加入约束条件?
我在用gatool算最优时没有找到可以加约束的地方。估计得编M文件时加入。
多谢高人指点!
matlab带有多种优化算法函数,请检索一下matlab的优化工具箱,定有一款适合您
skyriver2008
2008-04-11, 10:50
你可以用这个fmincon来做个这优化,在此之前你得看看它的帮助文件,这样对你是有好处的,事实上我也在做一个优化的问题,是关于我的毕业设计的。我相信你看了之后什么有答案的,到时你要是还没有,我会再过来看看贴,
菜单栏help->product help->contents->optimization toolbox,这里有详细的优化函数说明,花些时间看一下就行。
程序嘛,版主说了不给的,呵呵
http://www.labfans.com/showthread.php?t=2259
skyriver2008
2008-04-12, 17:56
%function y=youfun(x);
%y=0.45*exp^-0.087*X(1)+0.45*exp^1.875X(2)+0.1*0.0222X(3)
x0=[0 0 0];
lb=[100 15 12];
ub=[200 28 15];
options = optimset('LargeScale','off');
[x,fval] = ...
fmincon(@objfun,x0,[],[],[],[],lb,ub,@confun,options)
[c, ceq] = confun(x)
先保存一个函数文件,放在默认目录下。然后运行程序。不知道这样的结果对不对。高手指点一下啊
谢谢! 不过不好用。我运算花了好长时间,运算结果不在定义的区间。
我重新查了资料,利用gatool=>constraints=>bounds 在lower 里输入定义的区间[100 17 12] 和 upper [200 28 15],再运算,很快,结果也在我要得区间里。
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.