Mathematica Maximization, не будет максимизировать * 0,3

У меня проблема с максимизацией этой функции в mathematica:

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

Я просто возвращаю вышеупомянутое снова как вывод, когда я запускаю код, Не полезно

Однако, когда я максимизирую эквивалентную функцию:

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

Я получаю решение?!?

Что здесь происходит? Почему Mathematica делает это?

1 ответ

Решение

Если вы сравните эти результаты, вы увидите, что первый переключается на использование NMaximize из-за 0.3 являющийся Realв то время как второй пытается решить символически с помощью Maximise из-за 3/10 являющийся Rational, Это объясняет различное поведение.

введите описание изображения здесь

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

{Реальный, Рациональный}