Math 求一个具有几个变量的方程的最大值

Math 求一个具有几个变量的方程的最大值,math,max,equation,screeps,Math,Max,Equation,Screeps,我在玩一个叫“尖叫”的游戏,你可以用javascript编写一个殖民地。游戏的核心是称为爬行的小脚本单元,可以从不同的部分动态构建,赋予它们不同的属性 我已经写了一个方程组,通过观察一个爬行的部分组成来确定它在完成一个给定的工作时有多有效 例如,升级殖民地中心的作业的简化方程式为: e=10yx/((x+y)*(15x+2y)) x是蠕变过程中承载部件的数量 y是蠕变上的工作零件数量 e是工作分配的总有效性 这些方程式对于确定哪些爬虫应该被分配哪些工作非常有用。然而,我想知道是否有一种方法可以解

我在玩一个叫“尖叫”的游戏,你可以用javascript编写一个殖民地。游戏的核心是称为爬行的小脚本单元,可以从不同的部分动态构建,赋予它们不同的属性

我已经写了一个方程组,通过观察一个爬行的部分组成来确定它在完成一个给定的工作时有多有效

例如,升级殖民地中心的作业的简化方程式为:

e=10yx/((x+y)*(15x+2y))

x是蠕变过程中承载部件的数量

y是蠕变上的工作零件数量

e是工作分配的总有效性

这些方程式对于确定哪些爬虫应该被分配哪些工作非常有用。然而,我想知道是否有一种方法可以解决e的最大值的每个方程?这将给我一个最有效的零件比例,为高需求的工作建立一个蠕变

如果这是可能的,因为我正在考虑用另一个变量来扩展方程,比如z表示运动部件的数量,这仍然是可能的吗

编辑:对上述等式使用试错法

f(1, 1); // returns 0.294
f(1, 2); // returns 0.350
f(1, 3); // returns 0.357 --- Highest value, therefore best ratio
f(1, 4); // returns 0.347
f(1, 5); // returns 0.333

不经过反复试验就能解决这个问题吗?如果方程有三个输入而不是两个输入,类似的方法会起作用吗?

要找到最大值,我们可以先计算微分,然后看看它在哪里为零

等式的最大值为
x=(sqrt(30)-2)/13
,或
x=0.26748,y=0.73252

下面是一些计算它的Python代码:

从Symphy导入evalf,求解
从sympy.abc导入x,y
f=10*y*x/((x+y)*(15*x+2*y))
f=f.subs(y,1-x)#我们知道x+y=1
df=f.diff(x)
sol=求解([df],x)
打印(f'找到的解决方案:{sol}')
对于sol中的s:
x0=s[0].evalf()

如果x0>=0且x0从数学上讲,
e
的最大值出现在
DIF(e,x)=0
DIF(e,y)=0
时,其中
DIF()
是导数。只有在以下情况下才会发生这种情况:

2*y^2 = 15*x^2

e

e = (170 - 20*sqrt(30))/169 = 0.3577247

什么是
z
?在数学中,它没有显示出
z
。最大化
e
只是将
x
y
设置为可能的最高值,即不完整性。在你的情况下,我怀疑你的意思是真的需要。你能更详细地描述一下“最大化
e
”的意思吗?它是否使用指定的点分配,例如,
Maximize(e)鉴于x+ySorry,我第一次写z时的意思是e。现在已经编辑好了。好的,我再试一次。我的问题是如何确定x:y之间的比率,当输入到方程中时,将导致e的最大可能值。比率是最重要的,因为f(1,1)和f(2,2)将返回相同的数字。这是因为e,工作分配的总有效性是以每滴答的产出来衡量的⋅ 零件单元。目前,我一直在使用不同x和y比率的试错法,并选择返回最大e值的一个。但一定有更好的方法。请为
f
编写显式函数。现在看起来您想要的最大值是
10yx/(x+y)*(15x+2y)
其中
x=1
。不存在最大值。您可能需要额外的要求,例如x和y为正,求和为1。谢谢!回答你之前的问题,z不是e——那是个错误。我用f表示生成e的函数。对不起,我不清楚。z是后续问题的一部分,这里有一个类似的方程,有三个自变量(x,y和z),而不是两个,这里你再次求出e的最大值。然而,在我的例子中,引入z将上限函数添加到方程中,这使问题变得复杂。既然这个问题已经足够不同了,而且我把这个问题搞得一团糟,我想最好还是把它作为一个新问题来问。
e = (170 - 20*sqrt(30))/169 = 0.3577247