SimWe仿真论坛's Archiver

COMSOL 2008年会

shamohu 发表于 2007-1-30 23:54

1stOpt求解最大最小优化问题

附件是一篇论文《约束极小极大问题的光滑化牛顿方法》,有兴趣的可下载先看一下。下面是用1stOpt求解上述论文三道实例的代码及结果,大家也可用其它软件来计算对比一下。
例1:
Algorithm = DE;
ConstStr f1=-2*x1+2*x2^2, f2=x1, f3=x2^2;
MinMax f(1:3);
            x1+x2^2>=0;
结果:x1=0, x2=0, MinMax=0,与论文相同

例2:
Algorithm = DE;
ConstStr f1=x2-x1^2, f2=-f1, f3=1-x1, f4=-f3;
MinMax f(1:4);
           -100*x1^2-x2+101>=0;
           -80*x1^2-x2+79>=0;
结果:
x1: 0.987654320987654
x2: 0.963115378753246
极大极小值(MinMax): 0.0123456790123457
原文给出的精确解为:x1=1, x2=1,代入第二个约束为-2,明显不满足约束条件,仔细检查,估计是把”-80*x1^2+x2+79“写成了”-80*x1^2-x2+79“,国内学报上这种低级错误不少,大家参考时当心。
将第二个约束改正后,可得结果:x1=1, x2=2, MinMax = 0

例3:
Algorithm = DE;
ConstStr f1=x1^2+x2^2+x3^2+x4^2-5*x1-5*x2-21*x3+7*x4;
ConstStr f2=11*x1^2+11*x2^2+12*x3^2+11*x4^2+5*x1-15*x2-11*x3-3*x4-80;
ConstStr f3=11*x1^2+31*x2^2+12*x3^2+21*x4^2+15*x1-5*x2-21*x3-3*x4-100;
ConstStr f4=11*x1^2+11*x2^2+12*x3^2+x4^2+15*x1-15*x2-21*x3-3*x4-50;
MinMax f(1:4);
          -x1^2-x2^2-x3^2-x4^2-x1+x2-x3-x4+8>=0;
          -x1^2-2*x2^2-x3^2-2*x4^2-x1+x4+10>=0;
          -x1^2-x2^2-x3^2-2*x1+x4+5>=0;
原文说该例没有精确解,只得到近似解:x1=0.0125,x2=1.0266,x3=2.0772,x4=-1.1344, MinMax-50.10181299,但将该结果代入检验,约束条件2和3均小于0,不满足条件。
1stOpt可得唯一解:
x1: -0.355643265762256
x2: 0.73197296641911
x3: 2.13925205103103
x4: -0.725584902597681
极大极小值(MinMax): -46.1198965483511

希望对大家有借鉴作用。

woodballhead 发表于 2007-2-12 17:47

可是1.5的版本没有minmax函数?是否需要2.0版本?

shamohu 发表于 2007-2-12 18:13

需要2.0以上的.

页: [1]
 

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