Mathematica 最大化,不会最大化 * 0.3

Mathematica Maximization, Won't maximize a * 0.3

我在 mathematica 中最大化此函数时遇到问题:

Maximize[a + 0.3 * b, 0 < b < 10, a]

当我 运行 代码时,我只是将上面的内容再次作为输出返回,没有帮助

然而当我最大化等效函数时:

Maximize[a + (3/10) * b, 0 < b < 10, a]

我有解决办法吗?!?

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

如果比较这些结果,您会发现第一个切换为使用 NMaximize,因为 0.3Real,而第二个尝试使用 [=14= 符号求解] 由于 3/10Rational。这解释了不同的行为。

Map[Head, {0.3, 3/10}]

{Real, Rational}