您好,欢迎进入某某沙盘有限公司官网!

咨询热线:

020-88888888

(二)动态优化--汉密尔顿函数(最优控制)和HJB方程(动态规划)

发布时间:2024-03-12 12:00人气:

动态优化解决的问题是传统的拉格朗日函数方法(静态等式约束问题)以及Kuhn-tucker方法(静态不等式约束问题)无法解决的动态问题,在宏观经济学中主要是涉及离散和连续的涉及时间的变化的问题,我们主要关注后者,如产出 Y_{t} 与时间密切相关,其中主要的方法是变分法,最优控制和动态规划三种方法。

变分法相比另外两种方法,比较少用与解决宏观经济学模型中,一是因为其本身较为复杂,更多的是用于证明最优控制以及动态规划的所需要的必要条件,而非应用到动态的宏观经济学中;二是因为绝大多数变分法能解决的问题,用最优控制的方法也可以完美的解决,同时有些问题变分法不能解决,但是最优控制方法还是可以解决。而动态规划由Richard Bellman提出的,一个主要的思想是最优性原理:全局最优必定是局部最优,如果此全局最优解可以取到的话。

建立此专栏的目的只是普及高宏,因此在最优控制以及动态规划的必要条件的充分性、必要性的证明在此文章中不再涉及,我们直接上结论,告诉你们在宏观模型中,如何应用,如何求解。如果读者有兴趣的话,我可以在我想写的东西写完后,再增加一篇文章,把此文章中用到的结论全都证明一遍。

在高宏中,大多数模型都是连续无限时间的,因此在求解模型时,用传统的方法解决的话,计算过程是十分庞大的,而且也让经济学的含义消失了转而成了纯数学计算的过程,这样的方法是没有意义的。而最优控制方法在解决无穷自治问题时有着天然的优势,不仅计算过程十分漂亮,而且引入的参数是有着丰富的经济学含义的,例如在汉密尔顿函数中引入的参数 \\lambda(t) 代表状态变量在时刻t的边际价值。所以这篇文章的知识是学习后续比索洛模型更复杂的模型必备的知识储备,以后在求解复杂模型时,可以常回来翻看翻看。



1.1.1有限时间基本模型

在最优控制中,变量分为两类,一类是状态变量:即有微分方程约束的变量,意如其字,状态变量的变化一定是连续的变化,本期的值会影响到下一期的值,在时间上呈现连续的变化。另一类是控制变量,即没有微分方程约束的变量,可以连续变化,也可以跳跃变化。

面对诸如以下问题时,可以用最优控制理论的方法解决:

max \\int_{t_{0}}^{t_{1}}f\\left( t,x\\left( t \\right),u\\left( t \\right) \\right)dt\\\\s.t:x^{'}\\left( t \\right)=u\\left( t \\right),x\\left( t_{0}\\right)=x_{0},x\\left( t_{1}\\right)=x_{1}

其中 t_{0} 代表初始时刻, t_{1} 代表终点时刻; x_{0} 代表状态变量在初始时刻的值, x\\left( t_{1}\\right)=x_{1} 代表状态变量在终点时刻的值。在这里, x\\left( t \\right) 是状态变量, u\\left( t \\right) 是控制变量。

解法:

建立汉密尔顿函数H=f\\left( t,x\\left( t \\right),u\\left( t \\right) \\right)+\\lambda\\left( t \\right) g\\left( t,x\\left( t \\right),u\\left( t \\right) \\right)

最优条件方程\\frac{\\partial H}{\\partial u}=0:f_{u}+\\lambda g_{u}=0

乘子方程\\frac{\\partial H}{\\partial x}=-\\lambda^{'}:f_{x}+\\lambda g_{x}=-\\lambda^{'};\\lambda\\left( t_{1}\\right)=0

状态方程\\frac{\\partial H}{\\partial \\lambda}=x^{'}:g=x^{'}

在高宏中涉及的问题类型都是自由终点问题,即 x\\left( t_{1}\\right) 的值自由,这样的话横截性条件就是: \\lambda\\left( t_{1}\\right)=0 ,再结合关于状态变量的值的已知条件即可求解这个问题。其中引入的参数 \\lambda\\left( t \\right) 有着丰富的经济学含义:状态变量在时刻t的边际价值


1.1.2例子

min \\int_{0}^{T}[c_{1}u(t)^{2}+c_{2}x\\left( t \\right)]dt\\\\s.t:x^{'}(t)=u(t),x(0)=0,x(T)=B\\\\Bis.free.and.Tis.fixed

解:定义汉密尔顿函数 H=c_{1}u(t)^{2}+c_{2}x\\left( t \\right)+\\lambda(t)g(t,x,u)

必要条件:

最优条件方程 \\frac{\\partial H}{\\partial u}=0:2c_{1}u+\\lambda=0

乘子方程 \\frac{\\partial H}{\\partial x}=-\\lambda ^{'}:c_{2}=-\\lambda ^{'};\\lambda(T=0)自由终点的横截性条件

状态方程 \\frac{\\partial H}{\\partial \\lambda}=x^{'}:x^{'}=u;x(0)=0

由乘子方程可得 \\lambda\\left( t \\right) 的通解: \\lambda(t)=-c_{2}t+k_{0} ,再结合横截性条件,有 \\lambda(t)=-c_{2}t+c_{2}T

把此结果带入最优条件方程中得: u(t)=\\frac{c_{2}}{2c_{1}}(t-T)

再把此结果带入状态方程中得:x(t)=\\frac{c_{2}}{4c_{1}}t^{2}-\\frac{c_{2}T}{2c_{1}}t+k_{1} ,由初始条件 x(0)=0k_{1}=0 ,所以

x^{\\ast}(t)=\\frac{c_{2}}{4c_{1}}t^{2}-\\frac{c_{2}T}{2c_{1}}t,t\\in[0,T] ,同时 B=-\\frac{c_{2}T^{2}}{4c_{1}}



1.2.1无穷时间基本模型

如果面对的问题是无穷时间时,即 t_{1}=\\infty 时,此时有另一种与此差不多的方法,但是专门是为了结局此类问题的,此类基本的问题如下:

max \\int_{0}^{\\infty}e^{-rt}f\\left( t,x,u\\right)dt\\\\s.t:x^{'}\\left( t \\right)=u\\left( t \\right),x\\left( 0 \\right)=x_{0}

解法:

建立当期值汉密尔顿函数\\psi\\equiv e^{rt}H=f\\left( t,x,u \\right)+m(t)g(t,x,u) ,其中 m(t)\\equiv e^{rt}\\lambda(t) 称为当期值汉密尔顿乘子

最优条件方程\\frac{\\partial \\psi}{\\partial u}=0:f_{u}+mg_{u}=0

当期乘子方程\\frac{\\partial \\psi}{\\partial x}=rm-m':f_{x}+mg_{x}=rm-m'

状态方程\\frac{\\partial \\psi}{\\partial m}=u:g=u

在高级宏观中,横截性条件状态变量的值趋近于稳态(均衡解),当时间t趋于无穷时,即:

\\lim_{t \\rightarrow \\infty}{x\\left( t \\right)}=x^{\\ast}

再结合关于状态变量的已知条件,即可解此模型。


1.2.2例子

max \\int_{0}^{\\infty}e^{-rt}[ax(t)-\\frac{1}{2}x^{2}(t)-cu^{2}(t)]dt\\\\s.t:x^{'}(t)=u(t)-bx(t),x(0)=x_{0}>0,u(t)\\geq 0

解:

建立当期值汉密尔顿函数\\psi=ax(t)-\\frac{1}{2}x^{2}(t)-cu^{2}(t)+m(t)[u(t)-bx(t)]

其中 m(t)当期值汉密尔顿乘子,且 t\\in[0,\\infty) ,必要条件为:

最优条件方程\\frac{ \\partial \\psi}{\\partial u}=0: -2cu(t)+m(t)=0 (1)

当期乘子方程\\frac{\\partial \\psi}{\\partial x}=rm-m^{'}:a-x(t)-bm(t)=rm(t)-m^{'}(t) (2)

状态方程\\frac{\\partial \\psi}{\\partial m}=x^{'}(t):u(t)-bx(t)=x^{'}(t);x(0)=x_{0}>0 (3)

以及横截性条件\\lim_{t \\rightarrow\\infty}{x(t)}=x^{*}

对(1)(3)都求导可得: m^{'}(t)=2cu^{'}(t)\\\\x^{''}(t)=u^{'}(t)-bx^{'}(t)

再结合(1)(2)(3)式消去u和m得关于x的二阶非齐次微分方程

x^{''}(t)-rx^{'}(t)-[\\frac{1}{2c}+(r+b)b]x(t)=-\\frac{1}{2c}

它的特征方程为:

\\lambda ^{2}-r\\lambda-[\\frac{1}{2c}+(r+b)b]=0

由求根公式可得此二次方程得

\\lambda _{1}=\\frac{r+\\sqrt{r^{2}+4[\\frac{1}{2c}+(r+b)b]}}{2}>0\\\\\\lambda _{2}=\\frac{r-\\sqrt{r^{2}+4[\\frac{1}{2c}+(r+b)b]}}{2}<0


x(t)=k (常数)带入上述微分方程中,解得方程的特解\\frac{a}{1+2bc(r+b)} ,所以微分方程的通解为:

x(t)=c_{1}e^{\\lambda_{1}t}+c_{2}e^{\\lambda_{2}t}+\\frac{a}{1+2bc(r+b)} ,

根据横截性条件 \\lim_{t \\rightarrow\\infty}{x(t)}=x^{*}要想保证极限存在那么 c_{1} 必须等于0(因为当 t\\rightarrow\\infty 时,由于 \\lambda_{2}<0 所以 e^{\\lambda_{2}t}=0 ,这个时候只有满足 c_{1}e^{\\lambda_{1}t}=0 才能保证极限存在,由于 e^{\\lambda_{1}t}\
e0 所以必须有 c_{1}=0 ),那么进一步可知稳态 x^{*}=\\frac{a}{1+2bc(r+b)}

再由初始条件 x(0)=x_{0} ,解得 c_{2}=x_{0}-\\frac{a}{1+2bc(r+b)} ,所以,
x(t)=[x_{0}-\\frac{a}{1+2bc(r+b)}]e^{\\lambda_{2}t}+\\frac{a}{1+2bc(r+b)} , t\\in[0,\\infty)

所以对x(t)求导,可得:

u(t)=(B+\\lambda_{2})[x_{0}-\\frac{a}{1+2bc(r+b)}]e^{\\lambda_{2}t}+\\frac{ab}{1+2bc(r+b)}t\\in[0,\\infty)


2.1基本模型

动态规划的方法是动态优化中第三个方法,最早由Richard Bellman提出的,此方法的一个中心思想就是最优性原理:全局最优必定是局部最优,如果此全局最优解可以取到的话。

基本问题模型为:

max \\int_{0}^{T}f\\left( t,x\\left( t \\right),u\\left( t \\right) \\right)dt\\\\s.t:x^{'}\\left( t \\right)=g(t,x,u),x(t_{0})=x_{0}

定义一个新的函数,称为最优值函数: J(t,x)\\equiv max \\int_{0}^{T}f\\left( t,x\\left( t \\right),u\\left( t \\right) \\right)dt (注意此时已经取到最优,所以J与u无关,只与t,x相关)

根据前人Hamilton-Jacobi-Bellman提出的结论有:(称为HJB方程)

-J_{t}(t,x)=max_{u}[f(t,x,u)+J_{x}(t,x)g(t,x,u)]

此方程是关于控制变量u的函数,因此等式两侧关于u求导,得:

0=f_{u}(t,x,u)+J_{x}g_{u}(t,x,u)

解此方程得出u的表达式再将其带入HJB方程中,消除掉max符号。之后根据具体的题目J(t,x) 的解的结构(猜解是一件技巧性极其强的事情,并且十分困难),猜出解后再解HJB方程求出 x(t)u(t) 的表达式。


T=\\infty ,且函数 f(x,u)和g(x,u) 不直接和t相关,(前面的函数形式是 f(t,x,u)和g(t,x,u) 是直接与t相关的),即当面对的问题变为:

max \\int_{0}^{\\infty}e^{-rt}f\\left( x\\left( t \\right),u\\left( t \\right) \\right)dt\\\\s.t:x^{'}\\left( t \\right)=g(x,u),x(t_{0})=x_{0}

有一个特殊形式的HJB方程,专门解决此类无穷自治问题。当然上述一般形式的HJB方程也可以解决此问题,但是计算过程比较繁琐。

同样的,最优值函数 V(x)\\equiv max \\int_{0}^{\\infty}e^{-rt}f\\left( x\\left( t \\right),u\\left( t \\right) \\right)dt (只直接和x相关,不直接和t相关)

解时,列出特殊形式的HJB方程:

rV(x)=max_{u}[f(x,u)+V^{'}(x)g(x,u)]

之后求解步骤与上述的步骤一样。


2.2例子

max \\int_{0}^{\\infty}e^{-rt}(ax^{2}+bu^{2})dt\\\\s.t:x^{'}=u,x(t_{0})=x_{0}>0;a>0,b>0

此问题是无穷自治问题,按照上述基本模型中的方法,有两种解法,一般形式的HJB以及特殊形式的HJB。

(一)一般形式的HJB方程来解

列出HJB方程:

-J_{t}=min_{u}[e^{-rt}(ax^{2}+bu^{2})+J_{x}u]

等式两侧关于u一阶求导

2e^{-rt}bu+J_{x}=0\\Rightarrow u=-\\frac{J_{x}e^{rt}}{2b}

再将其带入HJB方程中消除掉min符号

-J_{t}=e^{-rt}(ax^{2}+\\frac{J^{2}_{x}e^{2rt}}{4b})-\\frac{J^{2}_{x}e^{rt}}{2b}

化简得:

ax^{2}-\\frac{J^{2}_{x}e^{2rt}}{4b}+e^{rt}J_{t}=0

根据目标问题中函数得结构来猜J的结构
J(t,x)=e^{-rt}Ax^{2}

所以, J_{t}=-re^{-2rt}A^{2}x^{2},J_{x}=2e^{-rt}Ax ,带入上式中,得:

\\frac{A^{2}}{b}+rA-a=0 ,

解得A的正根:

A=[-r+(r^{2}+\\frac{4a}{b})^{\\frac{1}{2}}]b

所以,

u(t)=-\\frac{Ax}{b} (反馈形式)

那么可进一步解出来:

x(t)=x_{0}e^{\\frac{-At}{b}}

二)特殊形式的HJB方程来解

列出特殊形式的HJB方程:

rV(x)=min_{u}[ax^{2}+bu^{2}+V^{'}(x)u]

两侧关于u一阶求导:

2bu+V^{'}=0\\Rightarrow u=-\\frac{V^{'}}{2b}

将此结果带入HJB中消除掉min符号:

rV=ax^{2}+\\frac{V^{'2}}{4b}-\\frac{V^{'2}}{2b}

化简得:

ax^{2}-\\frac{V^{'2}}{4b}-rV=0

猜V(x)的结构V(x)=Ax^{2} 那么 V^{'}=2Ax ,代入上式中,得:

\\frac{A^{2}}{b}+rA-a=0 ,

解得A的正根:

A=[-r+(r^{2}+\\frac{4a}{b})^{\\frac{1}{2}}]b

所以,

u(t)=-\\frac{Ax}{b} (反馈形式)

那么可进一步解出来:

x(t)=x_{0}e^{\\frac{-At}{b}}


总结,从(一)(二)两种解法可以比较出,在面对不同问题时选择合适的方法可以减少计算的过程,更完美的解出结果。


注:实际中动态优化的内容非常多,而且非常复杂,这篇文章只是小小的写了我认为对高宏比较有用的部分而已。教材推荐《动态优化》南茜 人大出版社。欢迎讨论指正。


020-88888888

平台注册入口