找回密码
 注册
Simdroid-非首页
查看: 1204|回复: 45

[1stOpt] 1stOpt求解非线性隐函数优化问题

[复制链接]
发表于 2007-2-5 21:37:15 | 显示全部楼层 |阅读模式 来自 北京
1stOpt不仅可以求解一般的非线性优化问题,而且对隐函数也能快速求解,尤其是在新版中,除命令有一点不同外,求解速度与一般函数等同。下面是一实例,x1,x2大于0,求y的最小值。

Parameter x1[0,], x2[0,];
Algorithm = DE;
Minimum = y;
Function y=(-x1+y+x2)^2-5*x1-x2;
             x1+x2-6-y<=0;
             3*x1+x2*y-12<=0;
             x1-2*x2/sin(y)-2<=0;

结果:

目标函数值(最小): -1.56247620437011
x1: 0.625015380356367
x2: 0.687468514324986

约束函数
   1: x1+x2-6-y-(0) = -3.125039901
   2: 3*x1+x2*y-12-(0) = -11.19910705
   3: x1-2*x2/sin(y)-2-(0) = 0

评分

1

查看全部评分

发表于 2007-2-5 21:46:10 | 显示全部楼层 来自 新疆乌鲁木齐
Simdroid开发平台
求隐函数的极值确实是1stopt的一个特色,不容易,MATLAB官方工具箱和origin应该都是做不到的
发表于 2007-2-7 16:16:29 | 显示全部楼层 来自 四川绵阳
lingo也是优秀的优化软件,但是也不能做到对隐函数优化。
发表于 2007-2-12 17:42:45 | 显示全部楼层 来自 四川绵阳
楼主这个程序有点问题?我算了几次,都没有下界,也就是根本没有最小值?!
 楼主| 发表于 2007-2-12 18:12:33 | 显示全部楼层 来自 北京
老版本也能算隐函数优化问题,但与新版相比,不论是在求解速度,还是寻优能力,新版都已有了质的飞跃.
发表于 2007-3-2 22:22:37 | 显示全部楼层 来自 四川绵阳
计算不出来啊?!怎么回事?怎么回事??怎么回事???
 楼主| 发表于 2007-3-2 22:53:33 | 显示全部楼层 来自 北京
用的是哪各版本?1.5或“绿色版”都是不行的。
发表于 2007-3-2 22:57:04 | 显示全部楼层 来自 四川绵阳
我用的1.5版本,就是算不出来,也不该是这样的结果?
“迭代数: 201
计算用时: 0:00:13
优化算法: 改进差分进化算法
目标函数值: -571566127213914176.00000000
x1: 2.28506831
x2: 142891531803478560.00000000”
发表于 2007-3-22 17:01:15 | 显示全部楼层 来自 四川绵阳
怎么没人理我?
 楼主| 发表于 2007-3-22 20:49:22 | 显示全部楼层 来自 北京
试过,1.5的绿色版肯定是不行的,连编程模式也无法使用,复杂点的工程模型根本无法做了,“绿色”的过头了

现在用上了最新的测试版,一切OK!
发表于 2009-1-11 14:48:15 | 显示全部楼层 来自 宁夏银川
目标函数值(最小): 0.199497353169136
x1: 0.383205467253685
x2: 0.0501531332830798
Parameter x1[0,], x2[0,];
Minimum = y;
Function y;
         (-x1+y+x2)^2-5*x1-x2-y=0;
         x1+x2-6-y<=0;
         3*x1+x2*y-12<=0;
         x1-2*x2/sin(y)-2<=0;
约束函数
   1: (-x1+y+x2)^2-5*x1-x2-y-(0) = -0.3453053729
   2: x1+x2-6-y-(0) = -4.91513069
   3: 3*x1+x2*y-12-(0) = -10.8830589
   4: x1-2*x2/sin(y)-2-(0) = -1.451378651

====== 计算结束 ======
1.5 版1stopt计算的最好结果
回复 不支持

使用道具 举报

发表于 2009-1-20 11:58:24 | 显示全部楼层 来自 宁夏银川
始终感觉1stopt在隐函数求解方面还是有很多问题,希望以后能有好的算法
回复 不支持

使用道具 举报

 楼主| 发表于 2009-1-20 14:46:38 | 显示全部楼层 来自 北京海淀
试一下最新版的,对隐含数优化有不小改进:

优化算法: 标准简面体爬山法 + 通用全局优化法
函数表达式: y
目标函数值(最小): -3.16654804769811
x1: 0.346790913476818
x2: 2.48666103808149

约束函数:
   1: (-x1+y+x2)^2-5*x1-x2-y-(0) = 0
   2: x1+x2-6-y-(0) = -7.43582973E-10
   3: 3*x1+x2*y-12-(0) = -18.83375891
   4: x1-2*x2/sin(y)-2-(0) = -200.9623564

第一帖看来也仅是个局部最优。
回复 不支持

使用道具 举报

发表于 2009-1-21 11:43:10 | 显示全部楼层 来自 中国

再算一次

代码:
Parameter x1[0,], x2[0,];
Algorithm = DE;
Minimum = y;
Function y=(-x1+y+x2)^2-5*x1-x2;
             x1+x2-6-y<=0;
             3*x1+x2*y-12<=0;
             x1-2*x2/sin(y)-2<=0;
结果:
====== 结果 ======

迭代数: 477
计算用时(时:分:秒:毫秒): 00:00:56:531
计算中止原因: 达到收敛判定标准
优化算法: 改进差分进化算法
函数表达式: y-((-x1+y+x2)^2-5*x1-x2)
目标函数值(最小): -5.76441461200601E17
x1: 162.449894339545
x2: 1.4411036530015E17

约束函数
   1: x1+x2-6-y-(0) = 2.881546088E17
   2: 3*x1+x2*y-12-(0) = -2.075826855E34
   3: x1-2*x2/sin(y)-2-(0) = 4.611158468E17

====== 计算结束 ======
回复 不支持

使用道具 举报

发表于 2009-1-21 17:39:24 | 显示全部楼层 来自 宁夏银川
版主的1stopt是那个版本的啊
回复 不支持

使用道具 举报

 楼主| 发表于 2009-1-21 20:01:36 | 显示全部楼层 来自 北京
用的2.5版。据悉3.0也快了。
回复 不支持

使用道具 举报

发表于 2009-1-23 16:32:20 | 显示全部楼层 来自 宁夏银川
Parameters x[-10,10],y[-10,10];
Maximum = z;
Function x^2-6*x*y+10*y^2-2*y*z-z^2+18=0;
我的1stopt求解不出来,谁可以帮助一下算算啊!
回复 不支持

使用道具 举报

 楼主| 发表于 2009-1-24 09:24:38 | 显示全部楼层 来自 北京海淀
用2.5算的:
优化算法: 标准差分进化算法
函数表达式: x^2-6*x*y+10*y^2-2*y*z-z^2+18-(0)
目标函数值(最大): 52.0235229020362
x: 10
y: -10
回复 不支持

使用道具 举报

发表于 2009-2-1 11:58:06 | 显示全部楼层 来自 宁夏银川
谢谢版主,我在看看啊
回复 不支持

使用道具 举报

发表于 2009-2-4 11:57:12 | 显示全部楼层 来自 湖南长沙

关于隐函数的1stopt优化求解

首先,原来的题目是:

使用mathematica6做预处理,我们可以得到两个显函数:
y1=x1-x2-sqrt(5*x1+x2);
y2=x1-x2+sqrt(5*x1+x2);
并得到两组相对当的约束条件:
对当于y1,约束条件为(1):
x1+x2-6<=x1-x2-sqrt(5*x1+x2);
3*x1+x2*(x1-x2-sqrt(5*x1+x2))-12<=0;
x1-2-(2*x2)/sin(x1-x2-sqrt(5*x1+x2))<=0;
对当于y2,约束条件为(2):
x1+x2-6<=x1-x2+sqrt(5*x1+x2);
3*x1+x2*(x1-x2+sqrt(5*x1+x2))-12<=0;
x1-2-(2*x2)/sin(x1-x2+sqrt(5*x1+x2))<=0;
使用lingo11来解这样两个优化问题:
对于y1,结果为
Global optimal solution found.
  Objective value:                             -3.750000
  Objective bound:                             -3.750000
  Infeasibilities:                              0.000000
  Extended solver steps:                               1
  Total solver iterations:                           135


                       Variable           Value        Reduced Cost
                             X1        0.000000           0.2857143
                             X2        2.250000            0.000000

                            Row    Slack or Surplus      Dual Price
                              1       -3.750000           -1.000000
                              2       0.8372875E-08       0.5714286
                              3        20.43750            0.000000
                              4        9.873171            0.000000

对于y2,结果为:
Global optimal solution found.
  Objective value:                             0.1589724E-06
  Objective bound:                            -0.5592362E-09
  Infeasibilities:                              0.000000
  Extended solver steps:                               4
  Total solver iterations:                           465


                       Variable           Value        Reduced Cost
                             X1       0.1267344           0.5000000E+16
                             X2        1.631924           0.1000000E+16

                            Row    Slack or Surplus      Dual Price
                              1       0.1589724E-06       -1.000000
                              2        4.241342            0.000000
                              3        11.61980            0.000000
                              4       0.2053091E+08        0.000000

从这些结果来看,1stopt对本题中的隐函数的优化解是值得商榷的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-7 11:23 , Processed in 0.078848 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表