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的每个组件的迹象,但我没有,为什么有必要清醒的认识。如果问题不清楚,或者这不是最好的问题,我很抱歉。

+0

你能提供你正试图解决更方便读取的方程吗?IE,而不是matlab代码本身,而只是模型,因为它会出现在教科书中。 – Marc 2010-05-20 13:20:36

+0

我刚更新了这个帖子以包含方程,希望能够使它更容易理解。非常感谢您的关注。 – jefflovejapan 2010-05-20 15:24:59

+1

如果您不切换标志,您会得到不同的答案吗? – Anycorn 2010-05-20 22:01:38

我认为关键在于模型是前瞻性的,所以斜率(偏导数)需要被逆转,以便及时倒退。考虑它的一种方法是说,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的线性化系数。

+0

我花了很长时间来围绕这个,但是您对。非常感谢您的帮助。 – jefflovejapan 2010-06-11 06:32:25