假设我有一个方程- x^2+y^2=100 -显然不止一个解。
我想让Mathematica 8给我解决方案(只涉及自然数),其中x将最大化(即x=10, y=0)
没有丢番图的明确要求:
Maximize[{x , x^2 + y^2 == 100}, {x, y}]
(*
-> {10, {x -> 10, y -> 0}}
*)
编辑
可以看到,结果是一个包含两个元素的列表。第一个元素(10
)是x
(执行最大化的函数)的值。第二个元素是{x -> 10, y -> 0}
,对应最大点处变量的赋值规则。
注意,这里我们是最大化x
,所以值10
在两个元素中都是重复的,但情况并非总是如此,因为我们通常想最大化变量的一般函数,而不是变量本身。
在本例中,我们有两种直接的方法将x
的最大值赋给n
:
使用列表的第一个元素:
n = First@Maximize[{x , x^2 + y^2 == 100}, {x, y}]
或者更一般,使用适当的规则:
n = x /. Last@Maximize[{x, x^2 + y^2 == 100}, {x, y}]