matlab 怎么动态模拟,怎样用MATLAB模拟动态经济学中Ramsey模型的最优路径

下载一个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)');

得到财富与投资的路径及均衡点。

这是最优增长例题的程序,希望对你有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值