MATLAB中的差分方程-为什么需要切换符号?
也许这不是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 ) 据我了解,这是系统的解决方案。它是将时间t + 1和t + 2变量转换为t和t + 1变量的矩阵(这是一个前瞻性模型)。我的问题本质上是为什么必须反转B中所有偏导数的符号才能得到该解?我正在谈论此步骤:
B = [ -coef(:,1:5) ] ; 在这里反转符号显然会反转A的每个分量的符号,但是我对为什么它是必需的没有清楚的了解。如果问题不清楚或不是最佳问题,我深表歉意。
回答:
我认为关键在于模型是前瞻性的,因此需要反转斜率(偏导数)才能及时向后移动。一种思考的方式是说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的前半部分是时间t + 2处optcon的方程式。技巧是反转偏导数的符号以获得线性系数,该系数将t + 1处的输入矢量带到t + 1处的输出optcon。
更多&回答...