最大区间的优化问题
本帖最后由 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 手动试吧
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)
http://home.simwe.com/attachment/201010/10/418800_12866964268NNm.jpg
结合图形,用数值计算的方法,求一系列ku值对应的x值并求其最大值,可得:
maxx =1.332352194
corresponding ku =5243084 / 9765625 (0.5368918016)
另:由图上最大值所在位置与求出的最大值位置比较,可知Maple作出隐函数的图形不太准确。
页:
[1]