%%  一橋大学「金融経済論I」2010年度、担当：塩路悦朗
%%  ソロー。スワンモデル %% 
%%  ファイル名：solowswan3.m
%%  作成：塩路悦朗
%%  バージョン1、2010年10月26日午前1時30分

%%  目的：「インパルス応答関数」の求め方の例として、
%%  最適化不要・ジャンプ変数なしの、ソロー・スワンモデルを使う。
%%  「本物」のソロー・スワンモデルを対数線形近似したものを用いる。
%%  lnAがAR1過程に従うケース
%%  つまり、lnAはショックによって一旦は定常値から上昇するが、
%%  次第に元の値に戻ってくる。

clear all;

%% ------------------- [1] Parameter proc  ------------------------

% 以下のパラメーター値を適宜設定。
s=0.2 ; %貯蓄率
d=0.05 ; %減耗率
A=0.25 ; %全要素生産性＝TFPの定常値
alpha=0.3 ; %資本のシェア(資本分配率)
rho=0.9 ; %new! AR1係数

%% --------------------- [2] Steady State proc >> -----------------------
% 定常状態の値を計算する。
Kstar=(s*A/d)^(1/(1-alpha)) ; %定常状態における資本ストック
    
%% ------------------ [3]  MODEL proc  ----------------- %%    
% モデルの係数行列をここで入力する
% 内生変数ベクトルの第1要素がk、第2要素がaであると仮定
% なお、k=lnK-lnK*、a=lnA-lnA*

AA=[1-d+alpha*d d ; 0 rho] ;

%つまり、k(t+1)=(1-d+alpha*d)*k(t)+d*a(t)
%かつ、　a(t+1)=rho*a(t)+e(t)
%ただしe(t)はショック項であり、このファイル上では、
%初期に1の値を取って後はゼロ。

%% ------------------ [4]  SIMULATION proc  ----------------- %%    
    
% TIME&INITIAL VALUES 

     t = 200;			% 何期後の反応まで求めたいか
     k1=0 ;             % 初期において経済はもともとの定常状態にあったとする。
     a1=1 ;             % そこで突然lnAの値が1増加した。
     S1=[k1 ; a1 ]  ;   % 初期におけるk,aそれぞれの値を入れておく
 
% SIMULATION 
      S = zeros(t,2) ;  %以下でkとaの反応を求める
      S(1,:)=S1;          %ショックがあった期のK
      Ss = S1;
        for i = 2:t ;
          q = AA*Ss  ;
   	      S(i,:) = q';
          Ss = S(i,:)';
     	end
      
% DRAWING FIGURES
   set(0,'DefaultLineLineWidth',1.5) ; %図の線の太さを変える
   figure(1) 
       subplot(2,1,1) ;
       plot(1:t,S(:,2)) ;
       ylabel('変数')
       xlabel('期間');
       title('ln(A)のインパルス応答関数(定常値からの乖離)','FontSize',14) ;
       subplot(2,1,2) ;
       plot(1:t,S(:,1)) ;
       ylabel('変数')
       xlabel('期間');
       title('ln(K)のインパルス応答関数(定常値からの乖離)','FontSize',14) ;
