MATLAB中的差分方程 - 为什么需要切换符号?
也许这是一个比MATLAB更重要的数学问题,不是很确定。我正在使用MATLAB来计算经济模型 - 新的混合ISLM模型 - 并且在作者切换解决方案的符号时出现了一个令人困惑的步骤。MATLAB中的差分方程 - 为什么需要切换符号?
首先,作者声明了符号变量并建立了一个差分方程组。另外,后缀 “a” 和 “2吨” 既表示 “时间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的每个组件的迹象,但我没有,为什么有必要清醒的认识。如果问题不清楚,或者这不是最好的问题,我很抱歉。
我认为关键在于模型是前瞻性的,所以斜率(偏导数)需要被逆转,以便及时倒退。考虑它的一种方法是说,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列是在时间t + 1时optcon相对于输入矢量的偏导数,后5列是相对于时刻t处的输入矢量。
为了得到简化形式,您需要在时间t + 1时为optcon提出两个方程。 coef的后半部分正是需要的。但是系数的前半部分是在时间t + 2时optcon的等式。诀窍是反转偏导数的符号以获得将t + 1处的输入矢量到t + 1处的输出optcon的线性化系数。
我花了很长时间来围绕这个,但是您对。非常感谢您的帮助。 – jefflovejapan 2010-06-11 06:32:25
你能提供你正试图解决更方便读取的方程吗?IE,而不是matlab代码本身,而只是模型,因为它会出现在教科书中。 – Marc 2010-05-20 13:20:36
我刚更新了这个帖子以包含方程,希望能够使它更容易理解。非常感谢您的关注。 – jefflovejapan 2010-05-20 15:24:59
如果您不切换标志,您会得到不同的答案吗? – Anycorn 2010-05-20 22:01:38