4

假设我有一个方程 - x^2+y^2=100 - 显然有不止一个解决方案。 我
想让 Mathematica 8 为我提供解决方案(仅涉及自然数),其中 x 将被最大化(即 x=10,y=0)
.

4

1 回答 1

4

没有丢番图的明确要求:

Maximize[{x , x^2 + y^2 == 100}, {x, y}]
(*
-> {10, {x -> 10, y -> 0}}
*)

编辑

如您所见,结果是一个包含两个元素的列表。第一个元素 ( 10) 是x(执行最大化的函数)的值。第二个元素是{x -> 10, y -> 0},对应最大点处变量的赋值规则。

请注意,这里我们正在最大化x,因此值10在两个元素中重复,但情况并非总是如此,因为我们通常希望最大化变量的一般函数,而不是 vars 本身。

x在这种特殊情况下,我们有两种直接的方法来分配to的最大值n

使用列表的第一个元素:

n = First@Maximize[{x , x^2 + y^2 == 100}, {x, y}]  

或更一般地说,使用适当的规则:

n = x /. Last@Maximize[{x, x^2 + y^2 == 100}, {x, y}]
于 2011-07-20T21:05:18.643 回答