假设我有一个方程 - x^2+y^2=100 - 显然有不止一个解决方案。
我
想让 Mathematica 8 为我提供解决方案(仅涉及自然数),其中 x 将被最大化(即 x=10,y=0)
.
问问题
1481 次
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 回答