Попробуйте это
NMaximize[{x*y,2x+y==960},{x,y}]
, которая максимизирует область с вашим выражением ограничения и которая мгновенно возвращает x-> 240, y-> 480
Сложность, с которой вы столкнулись при использовании D[A]
, когда Mathematica должна знать, по какой переменной вы дифференцируетесь.
Возможно, что-то в этом поможет вам понять, что происходит с вашей производной.
EDIT
Посмотрите, что будет дано Solve
Clear[x,y,A];
A == x*y;
D[A, x]
, который дает 0. Почему это? Вы берете производную A по x, но A никогда не присваивалось никакого значения, вы только объявили, что A и x * y равны. Таким образом
Clear[x,y,A];
{2 x + y == 960, A == x*y, D[A, x] == 0}
передает
{2*x + y == 960, A == x*y, True}
до Solve
, и это, возможно, менее озадачивает, когда Solve
возвращает что-то с буквой А.
Если какая-то функция в Mathematica не дает ожидаемого результата или имеет смысл, тогда проверка того, что именно дается этой функции в качестве аргументов, всегда является хорошим первым шагом.
В Mathematica всегда есть несколько способов что-либо сделать, и некоторые из них, похоже, вообще не имеют никакого смысла