% mamo 2015, 
% term paper, zadani

clear all;   % vymaze promenne z pameti
close all;   % zavre vsechna okna
tic          % stopky (start)

alpha   =  [];     % podil kapitalu
beta    =  [];     % diskontni faktor
delta   =  [];     % mira depreciace
psi     = [];      % parametr pro disutility z prace

% steady statove hodnoty promennych pred reformou

hstar = [];    % odpracovane hodiny
kstar = [];    % kapital
ystar = [];    % vystup
cstar = [];    % spotreba
istar = [];    % investice
wstar = [];    % mzda
rstar = [];    % najemni cena kapitalu
lstar = [];    % volny cas
incstar = [];  % pracovni duchod
ustar = [];    % utitek

% steady statove hodnoty promennych po zavedeni reformy (povinne snizeni
% pracovni doby

hstar2 = [];
kstar2 = [];
ystar2 = [];
cstar2 = [];
istar2 = [];
wstar2 = [];
rstar2 = [];
lstar2 = [];
ustar2 = [];
lambda = [];    % kompenzacni konstanta
 

%% Nalezeni rozhodovaciho pravidla
%  (pouzijte iteraci hodnotove funkce k nalezeni rozhodovaciho pravidla po
%  zavedeni reformy)


gk  = 101;      % pocet bodu (grid) pro ridici a stavovou promenou k
k = linspace(.7*kstar,1.3*kstar,gk)';  % oblast kapitalu kolem steady statove hodnoty


% matice spotreby a matice uzitku (preddefinovani)
c = zeros(gk,gk);
u = zeros(gk,gk);

warning off; % vypnuti  varovani pri logaritmovani nuly (jen to otravuje)


% Vypocitejte matice spotreby (gk x gk) pro vsechny hodnoty k_t, k_t+1 





% Vypocitejte matici uzitku




% Preddefinovani pocatecniho vektoru hodnotove funkce (v) - vektor nul
% (muze byt cokoliv)

v = [];


% nastaveni parametru pro cyklus



% Vypocitej hodnotovou funkci v cyklu




% Najdi, ktery prvek vektoru  k_t+1 dava optimalni hodnotu 


% Najdi rozhodovaci pravidlo pro kapital a spotrebu 
% (prirad prvek vektoru hodnote k_t+1)
k_dr = [];          

% (dopocitej rozhodovaci pravidlo pro spotrebu rezidualne
c_dr = [];

% Vykresli hodnotovou funkci


% Vykresli rozhodovaci pravidlo pro kapital


% Vykresli rozhodovaci pravidlo pro spotrebu



%% Simulace 

% Predpokladame, ze se ekonomika pred reformou nachazi ve steady statu
% tj. pocatecni hodnota kapitalu je rovna hodnote puvodniho steady statu

ksim(1,1) = kstar;

% delka gridu (vzdalenost mezi sousednimi hodnotami k) 
% vyuzimeme pri simulaci 
grid_length = (k(gk)-k(1))/(gk-1);
 
% cyklus pro simulaci      
for i = 1 : 50
    n = (ksim(i,1)-k(1,1))/grid_length+1;  % nalezeni pozice soucasne hodnoty kapitalu v gridu 
    n = round(n);                          % zaokrouhleni (pozice je vzdy cele cislo)
    ksim(i+1,1) = k_dr(n);                 % prirazeni hodnoty kapitalu k_t+1 dle rozhodovaci pravidla
    csim(i,1) = c_dr(n);               % vypocet spotreby dle rozhodovaci pravidla
    ysim(i,1) = [];                    % vypocet ostatnich simulovanych hodntot
    isim(i,1) = [];               
    rsim(i,1) = [];
    wsim(i,1) = [];
    incsim(i,1) = []; 
    usim(i,1) = [];
end

% Vykresleni prechodu pro makroekonomicke promenne 
% (zacatek je v puvodnim steady statu)

t = 0:50;    % vektor casu pro vykresleni
k_t=[ksim];  % vektor kapitalu je o jeden prvek delsi
c_t=[cstar;csim];
y_t=[];
r_t=[];
w_t=[];
i_t=[];
inc_t = [];
u_t=[];

% Vykresleni




    
