jesk 发表于 2008-5-23 01:17

【讨论】求解二元函数最大值

本帖最后由 厚积薄发 于 2010-1-26 21:25 编辑

<P>如有:</P>
<P>Q=-9.85 + 0.0576x + 186.44d - 0.00008148*x*x - 2191.83*d*d - 0.123*x*d</P>
<P>200&lt;=X&lt;=500,0&lt;=d&lt;=0.05</P>
<P>如何求得Q的最大值呢?</P>
<P></P>

xuruikl 发表于 2008-6-17 15:50

<p>在帮助里面搜索下Maximize</p><p>具体我也没用过</p>

kiteseas 发表于 2008-11-7 23:07

我是分别对方程的x,d求偏导,再联立得到的方程,解出Qmax:

In:= D[-9.85 + 0.0576 x + 186.44 d - 0.00008148*x*x - 2191.83*d*d - 0.123*x*d, x]
D[-9.85 + 0.0576 x + 186.44 d - 0.00008148*x*x - 2191.83*d*d - 0.123*x*d, d]

Out= 0.0576- 0.123 d - 0.00016296 x

Out= 186.44- 4383.66 d - 0.123 x

In:= Solve[{%12 == 0, %13 == 0}, {x, d}]

Out= {{x -> 328.313, d -> 0.0333186}}

最后判断x 和d在不在取值范围内,不在的话看得到的偏导方程的单调性,方法比较笨,等高手……

mathcd 发表于 2009-2-5 20:38

3楼的解看来是正确的。我用lingo11解出的跟3楼的差不多。满足约束条件。
鉴于mathematica对优化问题的求解还有待改进,不如将两种软件结合着用,比较好。

gfzhou 发表于 2009-7-25 18:56

输入:Maximize[{-9.85 + 0.0576 x + 186.44 d - 0.00008148*x*x - 2191.83*d*d - 0.123*x*d,  200 <= x <= 500, 0 <= d <= 0.05}, {x, d}]

结果:{2.71136, {x -> 328.313, d -> 0.0333186}}

NPOWER 发表于 2009-7-27 10:54

4楼说的有道理,5楼正解~~

mathcd 发表于 2009-7-27 19:38

本帖最后由 mathcd 于 2009-7-27 19:40 编辑

做数值优化的软件很多.最近完成了一种符号优化的东西.
所以可以给出准确解,而不是数值近似解.
准确解如下:




所以可以近似到任意程度.

minedoc 发表于 2009-8-19 00:03

学习.......

minedoc 发表于 2009-8-19 17:14

用lingo试了下,弹出个错误窗口..

xiang1990 发表于 2012-8-17 17:49

抱歉,对于程序的不熟
页: [1] 2
查看完整版本: 【讨论】求解二元函数最大值