楼主: wudizhao
5784 7

[问答] 怎样用MATLAB模拟动态经济学中Ramsey模型的最优路径 [推广有奖]

已卖:1份资源

教授

1%

还不是VIP/贵宾

-

威望
0
论坛币
33 个
通用积分
19.4165
学术水平
8 点
热心指数
5 点
信用等级
0 点
经验
2109 点
帖子
516
精华
0
在线时间
1493 小时
注册时间
2009-7-31
最后登录
2026-2-1

楼主
wudizhao 在职认证  发表于 2014-12-6 17:06:20 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问各位大牛,怎样用MATLAB模拟动态经济学中Ramsey模型消费和投资积累的最优路径?谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB Ramsey atlab matla 动态经济学 经济学 动态 模型

沙发
恶即斩 在职认证  发表于 2014-12-6 18:10:22
下载一个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)');
得到财富与投资的路径及均衡点。
这是最优增长例题的程序,希望对你有帮助。

藤椅
wudizhao 在职认证  发表于 2014-12-7 12:29:43 来自手机
恶即斩 发表于 2014-12-6 18:10
下载一个compecon工具箱。
根据一阶条件写一个m文件:
function [out1,out2,out3] = mfdp07(flag,s,x,e,a ...
好的,我试试,十分感谢!

板凳
bdxujian 发表于 2015-8-16 21:00:41
% COMPUTE SHOCK DISTRIBUTION
  m = 3;                                                                                                                      % number of shocks
请问m=3代表什么意思啊?这个是怎么确定的啊?

报纸
李双建 发表于 2015-10-15 11:38:23
厉害牛

地板
Casey_ 发表于 2017-5-2 23:26:47
恶即斩 发表于 2014-12-6 18:10
下载一个compecon工具箱。
根据一阶条件写一个m文件:
function [out1,out2,out3] = mfdp07(flag,s,x,e,a ...
可以麻烦把结果截屏一下么?感激不尽感激不尽!!谢谢你!!

7
zhaoqingxia 学生认证  发表于 2017-5-3 22:19:01
厉害,赞一个!!!

8
xcwhss 发表于 2017-5-17 11:14:47
请问 qnwlogn函数是什么?有qnwlogn.m文件吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-3 04:04