首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何优化经济学中的简单多元函数

如何优化经济学中的简单多元函数
EN

Stack Overflow用户
提问于 2022-09-26 04:19:58
回答 3查看 47关注 0票数 0

如果这很简单的话,我很抱歉,但我已经找了一个多小时了,但什么也没成功。当L (劳动)和产出(利润)的目标函数5(12*L*K - 0.1*L^2*K) - 5*L - 5*K固定在10时,我尝试使用python来寻找最优水平。

我尝试使用以下代码从其他类似问题的答案(使用'-‘以最大化)。

代码语言:javascript
运行
复制
def micro(L):
   return 5(12*L*10 - 0.1*L**2*10) - 5*L - 5*10
results = minimize(-micro, 0)

我对python还不熟悉,所以我可能完全失去了基础。谢谢你的帮助!

EN

回答 3

Stack Overflow用户

发布于 2022-09-26 04:34:51

scipy.optimize.fmin可以这样做:

代码语言:javascript
运行
复制
>>> 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]
>>> 
票数 1
EN

Stack Overflow用户

发布于 2022-09-26 04:29:48

通过使用np.arange,我们创建了一个从0到100的NumPy数组,每次增加0.1,然后我们将它插入利润方程,然后使用np.argmax返回最大利润的指数,这将使我们得到你要为它做多少劳动。

代码语言:javascript
运行
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2022-09-26 04:33:33

这是另一种选择:

代码语言:javascript
运行
复制
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)

您可以在这里更改范围:

代码语言:javascript
运行
复制
L = np.linspace(-100, 100, 1000)
micro(L)
17651.232263294325 # Output

如果您想最小化,只需更改return

代码语言:javascript
运行
复制
return np.amin(my_results) # -109550.0 Output
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73849601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档