也许这更像是一个数学问题,而不是MATLAB问题,不太确定。我正在使用MATLAB来计算一个经济模型 - 新的混合ISLM模型 - 这是一个令人困惑的步骤,作者切换了解决方案的标志。
首先,作者声明符号变量并建立差分方程组。注意,后缀“a”和“2t”都表示“时间t + 1”,“2a”表示“时间t + 2”,“t”表示“时间t”:
%% --------------------------[2] MODEL proc-----------------------------%%
% Define endogenous vars ('a' denotes t+1 values)
syms y2a pi2a ya pia va y2t pi2t yt pit vt ;
% Monetary policy rule
ia = q1*ya+q2*pia;
% ia = q1*(ya-yt)+q2*pia; %%option speed limit policy
% Model equations
IS = rho*y2a+(1-rho)*yt-sigma*(ia-pi2a)-ya;
AS = beta*pi2a+(1-beta)*pit+alpha*ya-pia+va;
dum1 = ya-y2t;
dum2 = pia-pi2t;
MPs = phi*vt-va;
optcon = [IS ; AS ; dum1 ; dum2; MPs];
编辑:进入矩阵的方程式,就像它们出现在教科书中一样如下(花括号表示时间段值,希腊字母是参数):
第一个等式:
y{t+1} = rho*y{t+2} + (1-rho)*y{t} - sigma*(i{t+1}-pi{t+2})
第二个等式:
pi{t+1} = beta*pi{t+2} + (1-beta)*pi{t} + alpha*y{t+1} + v{t+1}
第三和第四是假人:
y{t+1} = y{t+1}
pi{t+1} = pi{t+1}
第五个很简单:
v{t+1} = phi*v{t}
继续,作者计算矩阵A:
%% ------------------ [3] Linearization proc ------------------------%%
% Differentiation
xx = [y2a pi2a ya pia va y2t pi2t yt pit vt] ; % define vars
jopt = jacobian(optcon,xx);
% Define Linear Coefficients
coef = eval(jopt);
B = [ -coef(:,1:5) ] ;
C = [ coef(:,6:10) ] ;
% B[c(t+1) l(t+1) k(t+1) z(t+1)] = C[c(t) l(t) k(t) z(t)]
A = inv(C)*B ; %(Linearized reduced form )
据我了解,这个A是系统的解决方案。它是将时间t + 1和t + 2变量转换为t和t + 1变量的矩阵(它是一个前瞻性模型)。我的问题基本上是为什么有必要扭转B中所有偏导数的符号才能得到这个解?我正在谈论这一步:
B = [ -coef(:,1:5) ] ;
这里反转符号显然会反转A的每个组成部分的符号,但我不清楚为什么有必要这样做。如果问题不清楚或者这不是最好的问题,我很抱歉。
答案 0 :(得分:2)
我认为关键是该模型具有前瞻性,因此斜率(偏导数)需要反转以便及时反转。考虑它的一种方法是说jacobian()函数总是计算前向时间方向的导数。
你有一个名为optcon = [IS; AS; dum1; dum2; MPs]的状态输出向量,以及两个输入状态向量[y2 pi2 y pi v]。在时间t + 1的输入矢量是[y2a pi2a ya pia va],并且在时间t的输入矢量是[y2t pi2t yt pit vt]。这两个被连接成一个向量,用于调用jacobian(),然后分开。同样的事情可以在两个电话中完成。 jacobian()输出的前5列是optcon相对于时间t + 1处输入向量的偏导数,而后5列是相对于时间t处输入向量的。
为了得到简化形式,你需要在时间t + 1提出两个optcon方程。 coef的后半部分就是所需要的。但是coef的前半部分是时间t + 2的optcon等式。诀窍是反转偏导数的符号,得到线性化系数,将t + 1处的输入向量输入t + 1处的输出optcon。