gpt4 book ai didi

python - 在 Python 的 GEKKO 中实现宏观经济模型

转载 作者:行者123 更新时间:2023-12-04 04:15:19 26 4
gpt4 key购买 nike

这个问题在某种程度上侧重于经济优化,在某种程度上侧重于 python 实现,但也许社区中的一些人能够提供帮助。我正在尝试在 Python 的 GEKKO 平台中实现一个标准的连续时间宏观经济储蓄模型,但一直无法解决。我采用了 GEKKO 的 documentation 中提供的经济示例, 并适应了基本的储蓄决策模型,但事情并不是很顺利。该模型最大化来自消费的效用总和,其中消费+投资=产出。例如。最大积分(U(y-i))。输出 y = k^ALPHA。投资 = dk/dt+delta*k。

谁能告诉我为什么我的代码无法解决?该平台甚至能够解决这样的模型吗?我没有看到很多经济学家使用这个平台来解决模型的例子,但不确定这是因为这个平台不适合还是其他原因。这是一个很棒的平台,如果可能的话,它真的很想让它发挥作用。提前谢谢你。

from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO()
n=501
m.time = np.linspace(0,10,n)
ALPHA,DELTA = 0.333,0.99
i = m.MV(value=0)
i.STATUS = 1
i.DCOST = 0
x = m.Var(value=20,lb=0) # fish population
m.Equation(x.dt() == i-DELTA*x)
J = m.Var(value=0) # objective (profit)
Jf = m.FV() # final objective
Jf.STATUS = 1
m.Connection(Jf,J,pos2='end')
m.Equation(J.dt() == m.log(x**ALPHA-i))
m.Obj(-Jf) # maximize profit
m.options.IMODE = 6 # optimal control
m.options.NODES = 3 # collocation nodes
m.options.SOLVER = 3 # solver (IPOPT)
m.solve(disp=True) # Solve

最佳答案

您将获得 NaN在等式中 dJ/dt = ln(x**ALPHA-i) .当您包含边界时 i>0i<1 ,求解器找到一个解。

Solution

from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO()
n=501
m.time = np.linspace(0,10,n)
ALPHA,DELTA = 0.333,0.99
i = m.MV(value=0,lb=0,ub=1)
i.STATUS = 1
i.DCOST = 0
x = m.Var(value=20,lb=0) # fish population
m.Equation(x.dt() == i-DELTA*x)
J = m.Var(value=0) # objective (profit)
Jf = m.FV() # final objective
Jf.STATUS = 1
m.Connection(Jf,J,pos2='end')
m.Equation(J.dt() == m.log(x**ALPHA-i))
m.Obj(-Jf) # maximize profit
m.options.IMODE = 6 # optimal control
m.options.NODES = 3 # collocation nodes
m.options.SOLVER = 3 # solver (IPOPT)
m.solve(disp=True) # Solve

plt.subplot(2,1,1)
plt.plot(m.time,x.value)
plt.ylabel('x')
plt.subplot(2,1,2)
plt.plot(m.time,i.value)
plt.ylabel('i')
plt.show()

而不是 m.Obj() (最小化)您可以使用更新的函数 m.Minimize()m.Maximize()阐明目标函数的意图。例如,您可以切换到 m.Maximize(Jf)使其更具可读性。

还有一些其他示例可以帮助您解决 integral objectives (see solution 2)economic dynamic optimization .

关于python - 在 Python 的 GEKKO 中实现宏观经济模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60806384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com