Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-04-10, 16:35   #1
Rfans
初级会员
 
注册日期: 2008-03-21
年龄: 49
帖子: 9
声望力: 0
Rfans 正向着好的方向发展
默认 [求助]如和编写M文件

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文件时加入。

多谢高人指点!
Rfans 当前离线   回复时引用此帖
旧 2008-04-10, 17:47   #2
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

matlab带有多种优化算法函数,请检索一下matlab的优化工具箱,定有一款适合您
watcher 当前离线   回复时引用此帖
旧 2008-04-11, 10:31   #3
Rfans
初级会员
 
注册日期: 2008-03-21
年龄: 49
帖子: 9
声望力: 0
Rfans 正向着好的方向发展
默认

请回答的详细点,能否直接给出程序!
Rfans 当前离线   回复时引用此帖
旧 2008-04-11, 10:50   #4
skyriver2008
初级会员
 
注册日期: 2008-01-06
年龄: 40
帖子: 6
声望力: 0
skyriver2008 正向着好的方向发展
默认

你可以用这个fmincon来做个这优化,在此之前你得看看它的帮助文件,这样对你是有好处的,事实上我也在做一个优化的问题,是关于我的毕业设计的。我相信你看了之后什么有答案的,到时你要是还没有,我会再过来看看贴,
skyriver2008 当前离线   回复时引用此帖
旧 2008-04-11, 10:50   #5
watcher
高级会员
 
注册日期: 2008-04-02
年龄: 47
帖子: 175
声望力: 21
watcher 正向着好的方向发展
默认

菜单栏help->product help->contents->optimization toolbox,这里有详细的优化函数说明,花些时间看一下就行。

程序嘛,版主说了不给的,呵呵
http://www.labfans.com/showthread.php?t=2259
watcher 当前离线   回复时引用此帖
旧 2008-04-12, 16:13   #6
yinjiaji
初级会员
 
注册日期: 2008-02-20
年龄: 39
帖子: 3
声望力: 0
yinjiaji 正向着好的方向发展
默认

直接用系统提供的优化函数就行
yinjiaji 当前离线   回复时引用此帖
旧 2008-04-12, 17:56   #7
skyriver2008
初级会员
 
注册日期: 2008-01-06
年龄: 40
帖子: 6
声望力: 0
skyriver2008 正向着好的方向发展
默认

%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)
先保存一个函数文件,放在默认目录下。然后运行程序。不知道这样的结果对不对。高手指点一下啊
skyriver2008 当前离线   回复时引用此帖
旧 2008-04-14, 12:50   #8
Rfans
初级会员
 
注册日期: 2008-03-21
年龄: 49
帖子: 9
声望力: 0
Rfans 正向着好的方向发展
默认

谢谢! 不过不好用。我运算花了好长时间,运算结果不在定义的区间。

我重新查了资料,利用gatool=>constraints=>bounds 在lower 里输入定义的区间[100 17 12] 和 upper [200 28 15],再运算,很快,结果也在我要得区间里。
Rfans 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]通过指令实现一点时间宽度的脉冲,如何实现 绿水无忧 MATLAB论坛 0 2008-04-19 20:42
[求助]如何对符号变量画图? daiweisc MATLAB论坛 1 2008-04-02 14:36
[求助]请教用sovle函数求解带参数的非线性方程问题 sohot MATLAB论坛 0 2008-04-01 23:17
【求助】加速踏板模拟输入信号模型 lalagogogo MATLAB论坛 0 2008-04-01 10:09
[求助]C#与matlab求助 sway_81 MATLAB论坛 0 2007-07-01 08:49


所有时间均为北京时间。现在的时间是 16:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.