如果这很简单的话,我很抱歉,但我已经找了一个多小时了,但什么也没成功。当L
(劳动)和产出(利润)的目标函数5(12*L*K - 0.1*L^2*K) - 5*L - 5*K
固定在10时,我尝试使用python来寻找最优水平。
我尝试使用以下代码从其他类似问题的答案(使用'-‘以最大化)。
def micro(L):
return 5(12*L*10 - 0.1*L**2*10) - 5*L - 5*10
results = minimize(-micro, 0)
我对python还不熟悉,所以我可能完全失去了基础。谢谢你的帮助!
发布于 2022-09-26 04:34:51
scipy.optimize.fmin
可以这样做:
>>> from scipy.optimize import fmin
>>> def fn(x):
... return -(-5*x*x+595*x-10)
...
>>> fmin(fn,0)
Optimization terminated successfully.
Current function value: -17651.250000
Iterations: 37
Function evaluations: 74
[59.5]
>>>
发布于 2022-09-26 04:29:48
通过使用np.arange
,我们创建了一个从0到100的NumPy数组,每次增加0.1,然后我们将它插入利润方程,然后使用np.argmax
返回最大利润的指数,这将使我们得到你要为它做多少劳动。
import numpy as np
def find_optimal_L():
L = np.arange(0, 100, 0.1)
profit = 5*(12*L*10 - 0.1*L**2*10) - 5*L - 5*10
return L[np.argmax(profit)], np.max(profit)
L,profit = find_optimal_L()
print(L,profit)
发布于 2022-09-26 04:33:33
这是另一种选择:
my_results = []
def micro(L):
result = 5*(12*L*10 - 0.1*L**2*10) - 5*L - 5*10
my_results.append(result)
return np.amax(my_results)
您可以在这里更改范围:
L = np.linspace(-100, 100, 1000)
micro(L)
17651.232263294325 # Output
如果您想最小化,只需更改return
return np.amin(my_results) # -109550.0 Output
https://stackoverflow.com/questions/73849601
复制相似问题