Wolfram mathematica Mathematica Maximization,韩元';t最大化a*0.3

Wolfram mathematica Mathematica Maximization,韩元';t最大化a*0.3,wolfram-mathematica,mathematical-optimization,mathematica-8,mathematica-frontend,Wolfram Mathematica,Mathematical Optimization,Mathematica 8,Mathematica Frontend,我在mathematica中最大化这个函数时遇到了一个问题: Maximize[a + 0.3 * b, 0 < b < 10, a] 最大化[a+0.3*b,0

我在mathematica中最大化这个函数时遇到了一个问题:

Maximize[a + 0.3 * b, 0 < b < 10, a]
最大化[a+0.3*b,0
我只是在运行代码时将上面的内容作为输出返回,而不是helpfull

但是,当我最大化等效函数时:

Maximize[a + (3/10) * b, 0 < b < 10, a]
最大化[a+(3/10)*b,0
我有办法了


这是怎么回事?为什么mathematica会这样做?

如果你比较这些结果,你会发现第一个会因为
0.3
Real
,而第二个会因为
3/10
Rational
而切换到使用
n最大化
。这解释了不同的行为

{真实的,理性的}


如果你比较这些结果,你会发现第一个选择使用
NMaximize
,因为
0.3
Real
,而第二个选择尝试使用
最大化
符号解算,因为
3/10
Rational
。这解释了不同的行为

{真实的,理性的}


我无法解释这个问题,但mathematica为什么不自己尝试这样做呢。缺乏调试输出令人担忧,这是为了解释这个问题,但mathematica为什么不自己尝试这样做,这是我无法理解的。缺乏调试输出令人担忧
Map[Head, {0.3, 3/10}]