假设我有一个等式 - x ^ 2 + y ^ 2 = 100 - 显然有多个解决方案。
我想让Mathematica 8给我解决方案(其中只涉及自然数)x将最大化(即x = 10,y = 0)
我对Mathematica很新 - 并且对于最近发生的事情感到很困惑......
答案 0 :(得分:4)
没有丢番图明确的要求:
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}]