разностные уравнения в MATLAB - зачем нужно менять знаки? - PullRequest
1 голос
/ 20 мая 2010

Возможно, это скорее математический вопрос, чем вопрос MATLAB, не совсем уверен. Я использую MATLAB для вычисления экономической модели - модели New Hybrid 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, но у меня нет ясного понимания, почему это необходимо. Приношу свои извинения, если вопрос неясен или это не лучшее место, чтобы задать.

1 Ответ

2 голосов
/ 21 мая 2010

Я думаю, что ключ в том, что модель ориентирована на будущее, поэтому наклоны (частные производные) необходимо повернуть вспять, чтобы вернуться назад во времени. Один из способов думать об этом - сказать, что функция 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 (), а затем разделяются. То же самое можно было сделать за два звонка. Первые 5 столбцов выходных данных jacobian () являются частными производными optcon по отношению к входному вектору в момент времени t + 1, а вторые 5 столбцов по отношению к входному вектору в момент времени t.

Чтобы получить уменьшенную форму, вам нужно придумать два уравнения для optcon в момент времени t + 1. Вторая половина мяса - это то, что нужно. Но первая половина коэффициента - это уравнение для optcon в момент времени t + 2. Хитрость заключается в том, чтобы обратить знаки частных производных, чтобы получить линеаризованные коэффициенты, которые переводят входной вектор в момент времени t + 1 в выходной optcon в момент времени t + 1.

...