- 积分
- 32
- 注册时间
- 2009-7-29
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2010-12-26 17:24:26
|
显示全部楼层
来自 湖南湘潭
本帖最后由 lin2009 于 2010-12-26 17:34 编辑
7# shamohu
解答很简洁,两组解是对称的,可以用k1<=k2 得出唯一的一组解。
但是编程模式比较复杂,最好能直接用快捷模式。
也就是在1stopt快捷模式中,能否直接设置2个优化变量R1和R2,
并规定这两个变量的取值范围,R1,R2∈[ 0.50,0.53,...]
(不是常见的连续型数据,而是离散型的数据)来进行优化:
如:
Parameter R1,R2 ∈[ 0.50,0.53,0.56,0.60,0.67,0.71,0.75,0.80,0.85,0.90,0.95,1.00,
1.06,1.12,1.18,1.25,1.30,1.40,1.50,1.56,1.60,1.70,1.80,1.90,
2.00,2.12,2.24,2.36,2.50 ]; // R1,R2 是所选线规的线径(直径)。
constant n = floor(2.61/(pi*0.50^2/4)); //n为只用最小线规时的并绕根数。显然k1+k2<=n;
IntParameter k1,k2; // k1,k2为两种线规的根数,属于整数类型的优化变量。
Minfunction abs(k1* pi * R1^2/4 + k2* pi * R2^2/4 - 2.61);
k1 + k2 <= n
5#20wangz 所说的,
R1,R2∈[ 0.50,0.53,0.56,0.60,0.67,0.71,0.75,0.80,0.85,0.90,0.95,1.00,
1.06,1.12,1.18,1.25,1.30,1.40,1.50,1.56,1.60,1.70,1.80,1.90,
2.00,2.12,2.24,2.36,2.50 ];
这个如何在1stOpt中便捷地表现出来?
也应该是表达这个意思。
用parameter 关键词好像不行,不知道还有没有其它途径? |
|