lin2009 发表于 2010-9-29 09:43:22

最大区间的优化问题

本帖最后由 lin2009 于 2010-9-30 16:33 编辑

最大区间的优化问题:

已知误差函数,求满足约束条件的最大区间,并求对应的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)

根据图形(下图)的特点,不能简单地用下面的语句来求最大的区间。
显然这个问题是求满足条件的最大区间(即求边界值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.误差函数 的关系图,可以很直观地看出解答不正确。--区间不满足误差约束条件!

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)
http://home.simwe.com/attachment/201009/29/418800_1285725875e343.jpg

feiyuzhen 发表于 2010-10-4 15:01:34

手动试吧

plots(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)

lin2009 发表于 2010-10-10 15:43:13

http://home.simwe.com/attachment/201010/10/418800_12866964268NNm.jpg
结合图形,用数值计算的方法,求一系列ku值对应的x值并求其最大值,可得:
                   maxx =1.332352194
    corresponding ku =5243084 / 9765625 (0.5368918016)

另:由图上最大值所在位置与求出的最大值位置比较,可知Maple作出隐函数的图形不太准确。
页: [1]
查看完整版本: 最大区间的优化问题