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

[4.优化] 最大区间的优化问题

[复制链接]
发表于 2010-9-29 09:43:22 | 显示全部楼层 |阅读模式 来自 湖南湘潭
本帖最后由 lin2009 于 2010-9-30 16:33 编辑

最大区间的优化问题:

已知误差函数,求满足约束条件的最大区间[0,x],并求对应的ku值,约束条件err<=0.001;
误差函数err:= abs((1/120)*x^2*(-20+20*ku+40*ku^2+x^2-13*x^2*ku+16*x^2*ku^2)/(1+ku)^2)

根据图形(下图)的特点,不能简单地用下面的语句来求最大的区间。
显然这个问题是求满足条件的最大区间[0,x](即求边界值x),而不是求最大值。
> with(Optimization)
> Maximize(x, {abs((1/120)*x^2*(-20+20*ku+40*ku^2+x^2-13*x^2*ku+16*x^2*ku^2)/(1+ku)^2) <= 0.1e-2});
大家看看有什么好的方法?


附:原方案误归类为最大值的问题,相近但不相同,呵呵。
>with(Optimization)
> Maximize(x, {abs((1/120)*x^2*(-20+20*ku+40*ku^2+x^2-13*x^2*ku+16*x^2*ku^2)/(1+ku)^2) <= 0.1e-2});

Warning, limiting number of major iterations has been reached
    [13.7697232009298336, [ku = HFloat(0.7186362048104109),
      x = HFloat(13.769723200929834)]]
      
将上述ku值代入误差函数,画出  x Vs.误差函数 的关系图,可以很直观地看出解答不正确。--[0,13.7697232009298336]区间不满足误差约束条件!

plot(subs(ku = .718636204810411, abs((1/120)*x^2*(-20+20*ku+40*ku^2+x^2-13*x^2*ku+16*x^2*ku^2)/(1+ku)^2)), x = -15 .. 15)
发表于 2010-10-4 15:01:34 | 显示全部楼层 来自 吉林长春
Simdroid开发平台
手动试吧

  1. plots[implicitplot](abs((1/120)*x^2*(-20+20*ku+40*ku^2+x^2-13*x^2*ku+16*x^2*ku^2)/(1+ku)^2) = 0.1e-2, x = 0 .. 10, ku = 0 .. .9, gridrefine = 7)
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2010-10-10 15:43:13 | 显示全部楼层 来自 湖南湘潭

结合图形,用数值计算的方法,求一系列ku值对应的x值并求其最大值,可得:
                   max  x =  1.332352194
    corresponding ku =  5243084 / 9765625 (0.5368918016)

另:由图上最大值所在位置与求出的最大值位置比较,可知Maple作出隐函数的图形不太准确。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 22:57 , Processed in 0.031792 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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