Dynamische Makroökonomik, nichtstochastisches Wachstumsmodell

Dieses Batch-File löst das nicht-stochastische Wachstumsmodell mit endogenem Arbeitsangebot und stellt Wertfunktionen aus den Iterationsschritten sowie die Politikfunktion graphisch dar; Datum: 02-06-10 Autor: Christian Bayer

Contents

Sauberer Arbeitsplatz

clc
clear
close all

Modell:

$u(c,L) = ln(c) + \theta ln(L)$

$y = k^\alpha N^{(1-\alpha)}$

$\gamma k' = (1-\delta) k + (y-c)$

Definiere Modellparameter

beta = 95/100; % Diskontfaktor
alpha = 1/3; % Anteil des Faktors Kapital am Volkseinkommen
delta = 1/10; % Abschreibungsrate
theta = 3.5;% Arbeitsleid: so gewählt, dass der steady state Arbeitseinsatz
            % 0.2*24[Stunden/Tag]*7[Tage/Woche]*52/45[Woche/Arbeitswoche]=39 Stunden pro Arbeitswoche beträgt
gamma = 1.016; % Arbeitsvermehrendes Trendwachstum

Definiere Programmparameter

Nk=200;

Berechne steady state Kapitaleinsatz

Bedingungen erster Ordnung: Intertemporale Optimalität $1/c \gamma = \beta (1+r) 1/c$

somit: $r=(\gamma-\beta)/\beta$

Optimaler Kapitaleinsatz $r + \delta =  \alpha k^{(\alpha-1)} N^{(1-\alpha)}$

Also: $(\alpha / (r + \delta))^{1/(1- \alpha)}N = k$

Optimaler Arbeitseinsatz: $w =  (1-\alpha) k^{\alpha} N^{(-\alpha)}$, $w =  \theta (k^\alpha N^{(1-\alpha)} -(\delta+\gamma-1) k) / (1-N)$

Einsetzen:

$w =  (1-\alpha) (\alpha / (r + \delta))^{\alpha/(1- \alpha)}$,

$N=(((1-\alpha))/(1-\alpha+\theta[1-(\delta+\gamma-1)((\alpha/(r+\delta)))]))$

r = (gamma-beta)/beta; % Zinssatz
Nss = (1-alpha)/(1-alpha+theta*(1-(delta+gamma-1)*(alpha/(r+delta)))); %Steady state Arbeitseinsatz
Kss = (alpha / (r + delta))^(1/(1- alpha))*Nss; % Steady State Kapitaleinsatz
Yss = Kss^alpha* Nss^(1-alpha); % Steady state output

Lege ein Gitter für K fest

Kmax=4*Kss; % Maximaler Kapitalstock steady state +300%
Kmin=0.2*Kss; % Minimaler Kapitalstock steady stae -80%
k_grid=(linspace((Kmin),(Kmax),Nk)); % Äquidistantes Gitter in log Skala

Finde zunächst den optimalen Arbeitseinsatz gegeben k und k'

Bedingungen erster Ordnung für optimalen Arbeitseinsatz:

$w =  (1-\alpha) k^{\alpha} N^{(-\alpha)}$ (Arbeitsnachfrage)

$w =  \theta (k^\alpha N^{(1-\alpha)} +(1-\delta) k + \gamma k') / (1-N)$ (Arbeitsangebot)

empl=NaN(Nk);
sigma=NaN(Nk); %Nutzen bei optimalem Arbeitseinsatz

for i=1:Nk
    max_y=k_grid(i).^alpha+(1-delta).*k_grid(i); %Resourcen bei $N = 1$
    for j=1:Nk
        if max_y>k_grid(j)*gamma % Nur Investitionspläne betrachten die bei vollem Arbeitseinsatz durchführbar sind

            [empl(i,j) sigma(i,j)] = fminbnd(@(n)(util(n,k_grid(i),k_grid(j),theta,alpha,gamma,delta)),0,1);

        else
            empl(i,j)  = 1;
            sigma(i,j) = Inf;
        end
    end
end

sigma=-sigma; % -Zielfunktion wurde minimiert

Code der Unterfunktion util

function u = util(n,k,kprime,theta,alpha,gamma,delta)

Wertfunktionsiteration

Hier wird ausnahmsweise zu Darstellungszwecken die Wertfunktion in jedem Iterationsschritt gespeichert

dist=99;
V=zeros(1,Nk); %Initialisiere die Werfunktion
t=1;
while dist>0.001
    t=t+1;
    [V(t,:) pol]=max(sigma+beta*repmat(V(t-1,:),Nk,1),[],2);
    dist=max(abs(V(t,:)-V(t-1,:)));
end

Graphische Darstellung

figure(1)
ind=[1 10 20 40 80 120];
plot(k_grid,V(ind,:)')
title('Wertfunktion')
xlabel('Kapitalstock')
ylabel('Wert')
for j=1:length(ind)
    ll{j}=['Nach ' num2str(ind(j)) 'Iterationen'];
end
legend(ll)

figure(2)
title('Politikfunktion')
xlabel('Kapitalstock in t')
ylabel('Kapitalstock in t+1')
plot(k_grid,k_grid(pol))
hold on
plot([Kss Kss],[k_grid(1) k_grid(end)],'g:')
plot(k_grid,k_grid,'r')
legend({'nächster Kapitalstock', 'steady state','45° Linie'})