全部版块 我的主页
论坛 经济学论坛 三区 宏观经济学
7049 16
2011-05-29
用firstopt求解方程组的功能求出了稳态初始值,然后用dynare求解模型。结果matlab告诉我:
“SOLVE: maxit has been reached
??? Error using ==> steady_ at 132
STEADY: convergence problems”




求高手帮助,到底是参数选取的原因,还是模型本身存在问题呢?多谢!!多谢!!

高手肯定都不缺论坛币,不过为聊表谢意,帮我解决问题的朋友,我愿奉上300币
——————————————————————————————————————————————————————

dynare代码:


var q qx Cj Ck P Px Mj Mk i ix STj STk Wj Wk Rj Rk Ij Ik Kj Kk MCh MCf Yh Yf yh yhx yf yfx ph phx pf pfx PH PHx PF PFx BFkx U1 U2 U3 U4 U5 U6;
varexo E;
parameters beta rou kai gamma niu you yeta n sigma theta alfa a lambdapai lambday;
beta=0.99;
rou=7;
kai=8.2;
gamma=1;
niu=3;
you=0.1;
yeta=0.1;
n=0.2;
sigma=10;
theta=1.9;
alfa=0.4;
a=0.3;
lambdapai=2;
lambday=2;
model;
q*Cj^(-rou)=beta*P*Cj(+1)^(-rou)/P(+1); //本国欧拉函数
qx*Ck^(-rou)=beta*Px*Ck(+1)^(-rou)/Px(+1); //外国欧拉函数
(Mj/P)^kai=gamma*Cj^rou*((1+i)/i); //本国货币需求函数
(Mk/Px)^kai=gamma*Ck^rou*((1+ix)/ix); //外国货币需求函数
niu/(1-STj)=Wj/(P*Cj^rou); //本国劳动供给函数
niu/(1-STk)=Wk/(Px*Ck^rou); //外国劳动供给函数
Cj^(-rou)=beta*Cj(+1)^(-rou)*(Rj(+1)/P(+1) +1-niu); //本国投资决策
Ck^(-rou)=beta*Ck(+1)^(-rou)*(Rk(+1)/Px(+1) +1-niu); //本国投资决策
Kj=(1-you)*Kj(-1)+Ij; //本国资本积累函数,predetermined
Kk=(1-you)*Kk(-1)+Ik; //外国资本积累函数
yh=yeta*(ph/PH)^(-sigma)*(PH/P)^(-theta)*(n*Cj+n*Ij)/n; //本国产品的本国需求
yf=(1-yeta)*(pf/PF)^(-sigma)*(PF/P)^(-theta)*(n*Cj+n*Ij)/(1-n); //外国产品的本国需求
yhx=yeta*(phx/PHx)^(-sigma)*(PHx/Px)^(-theta)*((1-n)*Ck+(1-n)*Ik)/n; //本国产品的外国需求
yfx=(1-yeta)*(pfx/PFx)^(-sigma)*(PFx/Px)^(-theta)*((1-n)*Ck+(1-n)*Ik)/(1-n); //外国产品的外国需求
Yh=Kj^a*STj^(1-a); //本国企业生产函数
Yf=Kk^a*STk^(1-a); //外国企业生产函数
Yh=yh+yhx; //单个本国企业产品出清
Yf=yf+yfx; //单个外国企业产品出清
Wj=MCh*(1-a)*Yh/STj; //本国劳动需求
Rj=MCh*a*Yh/Kj; //本国资本需求
Wk=MCf*(1-a)*Yf/STk; //外国劳动需求
Rk=MCf*a*Yf/Kk; //外国资本需求
ph=sigma*U1/((sigma-1)*U2); //本国企业国内销售产品定价方程
phx= sigma*U3/((sigma-1)*U4); //本国企业出口产品定价方程
pfx= sigma*U5/((sigma-1)*U6); //外国企业国内销售产品定价方程
pf=E*pfx; //外国商品遵守一价定律
//以下为企业定价方程使用的辅助变量
U1=MCh*yh+q*alfa*U1(+1);
U2=yh+q*alfa*U2(+1);
U3=MCh*yhx+q*alfa*U3(+1);
U4=yhx+q*E*alfa*U4(+1);
U5=MCf*(yf+yfx)+q*alfa*U5(+1);
U6=(yf+yfx)+q*alfa*U6(+1);
//以上为企业定价方程使用的辅助变量
PH=((1/n)*(1-alfa)*ph^(1-sigma)+(1/n)*alfa*PH(-1)^(1-sigma))^(1/(1-sigma)); //本国代理人消费的本国商品篮子的价格水平
PF=((1/(1-n))*(1-alfa)*pf^(1-sigma)+(1/(1-n))*alfa*PF(-1)^(1-sigma))^(1/(1-sigma)); //本国代理人消费的外国商品篮子的价格水平
PHx=((1/n)*(1-alfa)*phx^(1-sigma)+(1/n)*alfa*PHx(-1)^(1-sigma))^(1/(1-sigma)); //外国代理人消费的本国商品篮子的价格水平
PFx=((1/(1-n))*(1-alfa)*pfx^(1-sigma)+(1/(1-n))*alfa*PFx(-1)^(1-sigma))^(1/(1-sigma)); //外国代理人消费的外国商品篮子的价格水平
P=(yeta*PH^(1-theta)+(1-yeta)*PF^(1-theta))^(1/(1-theta)); //本国价格水平
Px=(yeta*PHx^(1-theta)+(1-yeta)*PFx^(1-theta))^(1/(1-theta)); //本国价格水平
q=1/(1+i); //本国债券价格
qx=1/(1+ix); //外国债券价格
(1+i)=E(+1)*(1+ix)/E; //无抛补利率平价
yh*(alfa*ph(-1)+(1-alfa)*ph)+ yhx*(alfa*phx(-1)+(1-alfa)*phx)=P*Cj+P*Ij-(1-n)*BFkx*qx*E/n+(1-n)*BFkx(-1)*E/n; //本国预算约束
yf*(alfa*pf(-1)+(1-alfa)*pf)+ yfx*(alfa*pfx(-1)+(1-alfa)*pfx)=P*Ck+P*Ik+BFkx*qx-BFkx(-1); //外国预算约束
end;
initval;
q=0.99;
qx=0.99;
Cj= 1.16962579875372;
Ck= 1.35020003417081;
P= 1.18085409192841;
Px= 1.10511367531447;
Mj= 2.36694152196589;
Mk= 2.50394540751895;
i=1/0.99-1;
ix=1/0.99-1;
STj= 537479.56487623;
STk= 461071.147563386;
Wj= 0.892566981126886;
Wk= 0.238223208660332;
Rj= 3.55450731417564;
Rk= 3.32650467709209;
Ij= 0.0105799541371812;
Ik= 0.0121477615741064;
Kj= 0.105861590183981;
Kk= 0.121480220853815;
MCh= 2.48873623455363;
MCf= 0.967786073900144;
Yh= 0.503985110533864;
Yf= 1.39185209770944;
yh= 0.192701861646722;
yhx= 0.311282624700545;
yf= 0.357404298656538;
yfx= 1.03444762359949;
ph= 2.76526347668879;
phx=  2.76526871145581;
pf= 1.10009157022826;
pfx= 1.07532909566605;
PH= 2.16625643261309;
PHx= 2.16625896878566;
PF= 1.12238426199566;
PFx= 1.04627102927767;
U1=0.79401342;
U2=0.319042817;
U3=1.282616469;
U4=0.515368584;
U5=2.230157131;
U6=2.3043906;
BFkx=0;
E=1;
end;

steady;
solve algo = 0;
check;
shocks;
var E = sigma^2;
end;
stoch_simul(periods=2100);







————————————————————————————————————————————

firstopt 代码
Title "3";
parameter Cj[0,100],Ck[0,100],P[0,100],Px[0,100],Mj[0,100],Mk[0,100],STj[0,100],STk[0,100],Wj[0,100],Wk[0,100],Rj[0,100],Rk[0,100],Inj[0,100],Ink[0,100],Kj[0,100],Kk[0,100],MCh[0,100],MCf[0,100],YTh[0,100],YTf[0,100],yh[0,100],yhx[0,100],yf[0,100],yfx[0,100],ph[0,100],phx[0,100],pf[0,100],pfx[0,100],PTH[0,100],PTHx[0,100],PTF[0,100],PTFx[0,100];
constant
beta=0.99, rou=7, kai=8.2, gamma=1, niu=3, you=0.1, yeta=0.1, n=0.2, sigma=10, theta=1.9, alfa=0.1, a=0.3, lambdapai=2, lambday=2, E=1,q=0.99,qx=0.99,i=1/0.99-1,ix=1/0.99-1;
Function
(Mj/P)^kai-gamma*Cj^rou*((1+i)/i)=0;
(Mk/Px)^kai-gamma*Ck^rou*((1+ix)/ix)=0;
niu/(1-STj)-Wj/(P*Cj^rou)=0;
niu/(1-STk)-Wk/(Px*Ck^rou)=0;
1-beta*(Rj/P+1-niu)=0;
1-beta*(Rk/Px+1-niu)=0;
Inj-you*Kj=0;
Ink-you*Kk=0;
yh-yeta*(ph/PTH)^(-sigma)*(PTH/P)^(-theta)*(n*Cj+n*Inj)/n=0;
yf-(1-yeta)*(pf/PTF)^(-sigma)*(PTF/P)^(-theta)*(n*Cj+n*Inj)/(1-n)=0;
yhx-yeta*(phx/PTHx)^(-sigma)*(PTHx/Px)^(-theta)*((1-n)*Ck+(1-n)*Ink)/n=0;
yfx-(1-yeta)*(pfx/PTFx)^(-sigma)*(PTFx/Px)^(-theta)*((1-n)*Ck+(1-n)*Ink)/(1-n)=0;
YTh-yh-yhx=0;
YTf-yf-yfx=0;
Wj-MCh*(1-a)*YTh/STj=0;
Rj-MCh*a*YTh/Kj=0;
Wk-MCf*(1-a)*YTf/STk=0;
Rk-MCf*a*YTf/Kk=0;
ph-sigma*MCh/(sigma-1)=0;
phx-sigma*MCh/((sigma-1)*E)=0;
pfx-sigma*MCf/(sigma-1)=0;
pf-E*pfx=0;
MCh-(Rj/a)^a*((1-a)/Wj)^(a-1)=0;
MCf-(Rk/a)^a*((1-a)/Wk)^(a-1)=0;
PTH-((1-alfa)/(n-alfa))^(1/(1-sigma))*ph=0;
PTF-((1-alfa)/(1-n-alfa))^(1/(1-sigma))*pf=0;
PTHx-((1-alfa)/(n-alfa))^(1/(1-sigma))*phx=0;
PTFx-((1-alfa)/(1-n-alfa))^(1/(1-sigma))*pfx=0;
P-(yeta*PTH^(1-theta)+(1-yeta)*PTF^(1-theta))^(1/(1-theta))=0;
Px-(yeta*PTHx^(1-theta)+(1-yeta)*PTFx^(1-theta))^(1/(1-theta))=0;
yh*ph+yhx*phx-P*Cj-P*Inj=0;
yf*pf+yfx*pfx-Px*Ck-Px*Ink=0;
U1= MCh*yh/(1- q*alfa);
U2=yh/(1- q*alfa);
U3= MCh*yhx/(1- q*alfa);
U4= yhx/(1- q*E*alfa);
U5= MCf*(yf+yfx)/ (1- q*alfa);
U6= (yf+yfx)/ (1- q*alfa);
二维码

扫码加我 拉你入群

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

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

全部回复
2011-5-29 08:04:53
dynare在两国模型不太好用,网上也没几个例子,以前也尝试练习了一个新开放经济模型,也老出错,最后还是用Ulhig的程序做出的。楼主变量个数和方程个数相同吗?在2国经济中一般由于瓦尔拉斯定律,会多出一个方程的。
二维码

扫码加我 拉你入群

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

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

2011-5-29 09:25:09
??? Error: File: C:\MATLAB7\work\Untitled2011.m Line: 19 Column: 12
The expression to the left of the equals sign is not a valid target for an assignment.
二维码

扫码加我 拉你入群

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

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

2011-5-29 09:30:13
??? Error: File: C:\MATLAB7\work\Untitled2011.m Line: 19 Column: 12
The expression to the left of the equals sign is not a valid target for an assignment.
以上我运行时的错误提示,想了很多办法还是无法解决,我用的是matlab7
二维码

扫码加我 拉你入群

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

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

2011-5-29 21:00:56
我觉得lz还是log linearize了然后化简一下比较容易看。。。
二维码

扫码加我 拉你入群

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

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

2011-5-29 21:51:47
he a eqr大二 请问饿
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群