-1
我有一個三個方程的系統:通貨膨脹,產出和利息。所有變量在這些方程中高度相互關聯,但是興趣方程是輔助的。MATLAB如何循環雅可比行列式並繪製特徵值?
第一步是確定通貨膨脹和消費的穩態組合(見第一幅圖)並繪製這種關係。下面的代碼應該這樣做,但它給出了有關c_sol的'預分配'的錯誤。
上面的代碼應該給我50個通脹和產出的組合;隨後通貨膨脹除以beta計算利息。
下一步是在這些值的每一個上評估雅可比行列式,確定特徵值並繪製x軸上的通貨膨脹特徵值。爲了穩定性,要求特徵值在單位圓內,或者在複數的情況下,模數。這是我的代碼,但它需要更多的編輯:
幫助非常感謝!
更新:這是我與工作的代碼,但我缺少 '爲' 之後的部分。我需要爲這50個值中的每一個計算一個數字矩陣。 'c2'和'p2'是滯後變量,等於'c'和'p'。
syms c p R c2 p2
outp = (c2*p2)/(((99*R)/100 - 99/100)*(p2/p)^((2*R)/(R - 1))*(c2/c)^(R/(2*(R - 1))) + 99/100);
infl = (((2*c2*p2)/(35*(((99*R)/100 - 99/100)*(p2/p)^((2*R)/(R - 1))*(c2/c)^(R/(2*(R - 1))) + 99/100)) + 2/175)/(((99*R)/100 - 99/100)*(p2/p)^((2*R)/(R - 1))*(c2/c)^(R/(2*(R - 1))) + 99/100) - (99*p2)/100 + (99*p2^2)/100 + (3*((c2*p2)/(((99*R)/100 - 99/100)*(p2/p)^((2*R)/(R - 1))*(c2/c)^(R/(2*(R - 1))) + 99/100) + 1/5)^(20/7))/35 + 1/4)^(1/2) + 1/2;
J = [jacobian(outp, c2), jacobian(outp, p2) ; jacobian(infl, c2), jacobian(infl, p2)];
%%%%%%%%
beta = 0.99 ; v = 21 ; gamma = 350 ; eps = 1 ; g = 0.2 ; sigma = 1; alpha = 0.7;
c_sol = zeros(1,50);
p = linspace(0.8,1.2,50);
for i = 1 : numel(p)
pi_actual = p(i);
fun = @(c) (1 - beta)*pi_actual*(pi_actual-1) - (v/(alpha*gamma))*(c+g).^((1+eps)/alpha) - ((1-v)/gamma)*(c+g)*c.^(-sigma);
c_sol(i) = fzero(fun,0.5);
end
c = c_sol; c2 = c_sol; p2 = p;
R = p/beta; % interest
%%%%%%%
eigVals = zeros(2,numel(p));
for k = 1:numel(p)
eigVals(:,k) = eig(B);
end