下载一个compecon工具箱。
根据一阶条件写一个m文件:
function [out1,out2,out3] = mfdp07(flag,s,x,e,alpha,beta,gamma);
switch flag
case 'b'; % BOUND FUNCTION
out1 = zeros(size(s)); % xl
out2 = 0.99*s; % xu
case 'f'; % REWARD FUNCTION
out1 = ((s-x).^(1-alpha))/(1-alpha); % f
out2 = -(s-x).^(-alpha); % fx
out3 = -alpha*(s-x).^(-alpha-1); % fxx
case 'g'; % STATE TRANSITION FUNCTION
out1 = gamma*x + e.*x.^beta; % g
out2 = gamma + beta*e.*x.^(beta-1); % gx
out3 = (beta-1)*beta*e.*x.^(beta-2); % gxx
end
命名ss
然后再开一个m文件:
disp('DEMDP07 OPTIMAL GROWTH MODEL')
close all
% ENTER MODEL PARAMETERS
alpha = 0.2; % utility parameter
beta = 0.5; % production elasticity
gamma = 0.9; % capital survival rate
sigma = 0.1; % production shock volatility
delta = 0.9; % discount factor
% COMPUTE SHOCK DISTRIBUTION
m = 3; % number of shocks
[e,w] = qnwlogn(m,-sigma^2/2,sigma^2); % shocks and proabilities
% PACK MODEL STRUCTURE
clear model
model.func = 'ss'; % model functions
model.discount = delta; % discount factor
model.e = e; % shocks
model.w = w; % probabilities
model.params = {alpha beta gamma}; % other parameters
% DEFINE APPROXIMATION SPACE
n = 10; % degree of approximation
smin = 5; % minimum state
smax = 10; % maximum state
fspace = fundefn('cheb',n,smin,smax); % function space
snodes = funnode(fspace); % state collocaton nodes
% COMPUTE CERTAINTY-EQUIVALENT STEADY-STATE
estar = 1; % certainty equivalent shock
xstar = ((1-delta*gamma)/(delta*beta))^(1/(beta-1)); % steady-state action
sstar = gamma*xstar + xstar^beta; % steady-state state
pstar = (sstar-xstar).^(-alpha); % steady state shadow price
% CHECK MODEL DERIVATIVES AT CE STEADY STATE
dpcheck(model,sstar,xstar,estar);
% COMPUTE L-Q APPROXIMATION
[vlq,xlq] = lqapprox(model,snodes,sstar,xstar,pstar);
% SOLVE BELLMAN EQUATION
[c,s,v,x,resid] = dpsolve(model,fspace,snodes,vlq,xlq);
% COMPUTE L-Q APPROXIMATION FOR PLOTTING
[vlq,xlq,plq] = lqapprox(model,s,sstar,xstar,pstar);
% PLOT OPTIMAL POLICY
figure(1);
plot(s,x./s,s,xlq./s,sstar,xstar/sstar,'*k');
title('Optimal Investment Policy');
legend('Chebyshev','L-Q');
xlabel('Wealth');
ylabel('Investment (% of Wealth)');
得到财富与投资的路径及均衡点。
这是最优增长例题的程序,希望对你有帮助。