SimWe仿真论坛's Archiver

20wangz 发表于 2008-5-16 01:48

应该很简单的问题,可新手我不会

[table=98%][tr][td][size=14px]maximum f(x1,x2,x3)
           s.t. g(x1,x2)=0

现在需得出x1―fmax(注:fmax是与每一个x1对应的上述函数的最大值)曲线。
[/size]
[size=14px]在我这个问题中,估出初始值有一定的难度。我想用1stOpt软件解决这个问题,不知哪位师兄可以给我一些指点,最好是能给出一个示例程序。写程序时,上面的函数随便编两个就行了。

谢谢谢谢了!急等。或者发到我的信箱里也行,我的信箱是[email=wjh027@gmail.com]wjh027@gmail.com[/email]。

[/size]
[size=14px]问题的关键是:[/size]
[size=14px]一、每一次的优化结果如果需要在后面的程序中使用,应该如何引用?[/size]


[size=14px]二、我始终不懂1stOpt中参数(Parameter)和变量(Variable)之间有什么区别。[/size]


[size=14px]三、我编的甚至是拷的别人的程序,在我的1stOpt怎么都运行不出来结果?我用的版本是1.5Pro版,网上下载的,显示是“注册版”。
[/size][/td][/tr][/table]

[[i] 本帖最后由 20wangz 于 2008-5-16 01:49 编辑 [/i]]

shamohu 发表于 2008-5-16 13:40

1:每一次的优化结果如果需要在后面的程序中使用,应该如何引用?
用一个关键字:LoopConstant,例:
LoopConstant b=[1,x];
Parameter x[0,pi];
MinFunction x*sin(x)+x;

两次循环计算,第一次b取1,第二次取第一次求得的x值,即0

2:我始终不懂1stOpt中参数(Parameter)和变量(Variable)之间有什么区别。
Variable指变量,数据已知,主要用于拟和等;Parameter是待求的参数。

3:我编的甚至是拷的别人的程序,在我的1stOpt怎么都运行不出来结果?我用的版本是1.5Pro版,网上下载的,显示是“注册版”。
那个版本已经丢失了很多功能,也老了点。

20wangz 发表于 2008-5-18 22:36

回复 2# 的帖子

经单位领导批准,我已经联系了七维高科公司,马上就要购置一套单机企业版1stOpt2.5软件。

非常感谢shamohu(沙漠虎?我就是来自沙漠里的一个单位哦,呵呵……)及时、细致的回答。

但我脑袋有点不够用,还不能完全理解shamohu对第一个问题的回答,能再详细些好吗?最好是通过一个例子。

比如:
max y=a*sin(x1)+(a-1)cos(x2)+3
s.t. x1^2-2*x1*x2-3*x1*x2=0

现在a取一个序列,比如2:0.1:5。每当a取一个值时,就会得到一个ymax,最终ymax也是一个相应的序列。我想得到这两个序列(或者说是一维矢量)在平面坐标系中的对应曲线。

您提抽点时间写出一个例程吗?感激之至!当然,这个程序很可能得不出什么结果,因为几个函数我都是随便一写的,可能不存在什么极值。但我相信如果您如果能提供例程,我差不多应该是能看懂的。

再次感谢!

shamohu 发表于 2008-5-19 16:52

LoopConstant a=[2:0.1:5];
PlotLoopData a, ObjFunction;
MaxFunction a*sin(x1)+(a-1)*cos(x2)+3;
                    x1^2-2*x1*x2-3*x1*x2=0;

20wangz 发表于 2008-5-19 19:51

回复 4# 的帖子

再次感谢shamohu的回答!

等软件一到,我一定试一试。有什么结果,到时候再给师兄通报。

谢谢!

20wangz 发表于 2008-5-23 00:21

回复 4# 的帖子

师兄:

我已经买到了2.5企业版。

试着运行了一下师兄的代码,怎么画出来的是循环次数分别与a和最佳值关系的两条曲线啊?我要的是平面坐标上以a为横坐标,以每次得到的相应的最佳值为纵坐标的a-ymax曲线啊。

请师兄再次指点。请给出代码。

20wangz 发表于 2008-5-23 00:26

再有,在以前我用的1.5绿色版中还有输出关键字前面几个字母然后按ctrl+K来加速输入关键字的功能,怎么在2.5企业版中反而没有了,取而代之的是列出所有的关键字,然后让你从头到尾去自己找,好麻烦啊。是不是现在换快捷键了?

另外,1stOpt怎么没有语法提示也没有个象样的手册啊?本来可能很简单的问题自己都很难解决。唉!

shamohu 发表于 2008-5-23 09:03

两种方法:
1:
LoopConstant a=[2:0.1:5];
PlotLoopData a[x], ObjFunction;
MaxFunction a*sin(x1)+(a-1)*cos(x2)+3;
                    x1^2-2*x1*x2-3*x1*x2=0;
上面的a[x],意即令a为横坐标。另外类似的命令:a[y1]:a为左边纵轴;a[y2]:a为右边纵轴;

2:计算完成后,在结果文本点击右键,从弹出菜单中选“获得数据”,可以在电子表格中得到整理好的数据,然后可根据自己的需要画图。

快捷健很好用啊!比如要选MinFunction关键字,在代码本中按“Ctrl + k”,再按字母“m”,再按字母“i”,即可选中MinFunction(不用从头到尾去找)。

messenger 发表于 2008-5-23 13:21

:L


[quote]原帖由 [i]20wangz[/i] 于 2008-5-23 00:26 发表 [url=http://www.simwe.com/forum/redirect.php?goto=findpost&pid=1339945&ptid=832346][img]http://www.simwe.com/forum/images/common/back.gif[/img][/url]
另外,1stOpt怎么没有语法提示也没有个象样的手册啊?本来可能很简单的问题自己都很难解决。唉![/quote]

20wangz 发表于 2008-5-23 13:40

谢谢谢谢!终于解决了。

再请教一下,版主是怎么知道这些命令的?让我们也学习一下?

[[i] 本帖最后由 20wangz 于 2008-5-23 13:45 编辑 [/i]]

页: [1]
 

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.