Mathematica не находит глобального максимума, просто распечатывает мою функцию - PullRequest
0 голосов
/ 08 ноября 2019

Я - ноутбук mathmatica, чтобы найти аналитическое решение следующей ограниченной задачи оптимизации: Max y ^ (1-b) (x ^ b (1-a (x / (x + 1)))) st M =Px + qy x, y Я пробовал следующий код:

Maximize[{y^(1-b)(x^b(1-a(x/(x+1)))), M==Px+qy}, {x,y}]

и возвращает ту же функцию, что и вывод. В функции a, b, M, P и q все параметры. Я также попытался присвоить параметрам произвольные значения, чтобы проверить, не знает ли mathmatica, как обращаться с параметрами. Я использовал следующий код:

Maximize[{y^(1-0.5)(x^0.5(1-0.75(x/(x+1)))), 1000=5x+5y},{x,y}]

, и он возвращает ту же функцию. Однако, если я уберу ограничение, это решит проблему оптимизации.

Maximize[{y^(1-0.5)(x^0.5(1-0.75(x/(x+1))))},{x,y}]
{7.2912*^59,{x->2.89727*^60,y->2.93582*^60}}

Я не уверен, что делать. После прочтения о проблеме ограниченной оптимизации синтаксис выглядит правильным. Извините, если этот вопрос является действительно базовым, я очень плохо знаком с mathmatica, также, поскольку я использую ноутбук, я не смог пройти мимо вывода из первых двух строк.

1 Ответ

0 голосов
/ 08 ноября 2019

Ограничение указано неверно, оно должно быть 1000 == 5 x + 5 y. Maximize лучше работает с точными числами.

Maximize[{Rationalize[y^(1 - 0.5) (x^0.5 (1 - 0.75 (x/(x + 1))))], 
   1000 == 5 x + 5 y}, {x, y}] // N

(* {25.7537, {x -> 96.97, y -> 103.03}} *)
...