Возможно, это - больше вопроса о математике, чем MATLAB один, не действительно уверенный. Я использую MATLAB для вычислений экономической модели - модели New Hybrid ISLM - и существует запутывающий шаг, где автор переключает знак решения.
Во-первых, автор объявляет символьные переменные и настраивает систему дифференциальных уравнений. Обратите внимание, что суффиксы "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 (), а затем разделяются. То же самое можно было сделать за два звонка. Первые 5 столбцов выходных данных jacobian () являются частными производными optcon по отношению к входному вектору в момент времени t + 1, а вторые 5 столбцов - по отношению к входному вектору в момент времени t.
Чтобы получить сокращенную форму, вам нужно придумать два уравнения для optcon в момент времени t + 1. Вторая половина coef - это как раз то, что нужно. Но первая половина coef - это уравнение для optcon в момент времени t + 2.Уловка состоит в том, чтобы поменять местами знаки частных производных, чтобы получить линеаризованные коэффициенты, которые переводят входной вектор в t + 1 в выходной optcon в t + 1.