全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1698 2
2011-04-08
mod文件如下periods 20100;

var c, K, H, q, p;

varexo epsilon;

parameters rho, alpha, gamma, delta, theta, beta;

alpha = 0.36;
gamma = 0.02;
rho   = 0.8;
delta = 0.025;
theta = 2.95;
beta  = 0.99;

model;
c^(-1) = beta*c(+1)^(-1)*(1-delta+alpha*K^(alpha-1)*H(+1)^(1-alpha-gamma)*q^(gamma));

theta = c^(-1)*(1-alpha-gamma)*K^alpha*H^(-alpha-gamma)*q^(gamma);

K = K(-1)^alpha*H^(1-alpha-gamma)*q^(gamma)+(1-delta)*K(-1)-c(-1);

q*(gamma-1)=(gamma*K(-1)^alpha*H^(1-alpha-gamma)*p^(-1));

p = rho*p(-1)*exp(epsilon);

end;

initval;
c       = 1.01245;
K       = 4.2453245;
H       = 0.24352;
q       = 0.5;
p       = 1.2;
epsilon = 0;
end;

shocks;
var epsilon = 0.25^2;
end;

stoch_simul;




然后保存为mod文件后,运行dynare
结果显示如下
??? Error using ==> project
Too many output arguments.

Error in ==> dynare at 132
evalin('base',fname) ;





是怎么回事呢????
二维码

扫码加我 拉你入群

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

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

全部回复
2011-4-8 22:07:42
什么东西 啊?看不懂啊,咱们英语太差了
二维码

扫码加我 拉你入群

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

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

2016-8-14 18:10:39
书上的代码如下:
function [s, phis, ds, dphi, S] = qmin (phi, a, b, delta, epsilon)
s0 = 1; maxj = 20; maxk = 30; big = 1e6; err = 1; k = 1;
S(k) = s0; cond = 0; h = 1; ds = 0.00001;
if (abs (s0) > 1e4),  h = abs(s0) * (1e-4); end
while (k < maxk && err > epsilon && cond ~= 5)
    f1 = (feval (phi, s0 + ds) - feval(phi, s0 - ds)) / (2 * ds)
    if(f1 > 0), h = -abs(h); end
    s1 = s0 + h; s2 = s0 + 2 * h; bars = s0;
    phi0 = feval(phi, s0); phi1 = feval (phi, s1);
    phi2 = feval(phi, s2); barphi = phi0; cond = 0;
    j = 0;
    while (j < maxj && abs (h) > delta && cond == 0)
        if (phi0 <= phi1),
            s2 = s1; phi2 = phi1; h = 0.5 * h;
            s1 = s0 + h; phi1 = feval (phi, s1);
        else if (phi2 < phi1),
                s1 = s2; phi1 = phi2; h = 2 * h;
                s2 = s0 + 2 * h; phi2 = feval (phi, 2);
            else
                 cond = -1;
            end
        end
        j = j + 1;
        
        if (abs (h) > big || abs (s0) > big), cond = 5; end
    end
    if (cond == 5),
        bars = s1; barphi = feval (phi, s1);
    else
        d = 2 * (2 * phi1 - phi0 - phi2);
        if (d < 0),
            barh = h * (4 * phi1 - 3 * phi0 - phi2)/d;
        else
            barh = h / 3; cond = 4;
        end
         bars = s0 + barh; barphi = feval (phi, bars);
         h = abs (h); h0 = abs (barh);
         h1 = abs (barh - h); h2 = abs (barh - 2 * h);
         
         if (h0 < h), h = h0; end
         if (h1 < h), h = h1; end
         if (h2 < h), h = h2; end
         if(h == 0), h = barh; end
         if (h < delta), cond = 1; end
         if (abs (h) > big || abs (bars) > big), cond = 5; end
         err = abs (phi1 - barphi);
         s0 = bars; k = k+1; S(k) = s0;
    end
    if (cond == 2 && h < delta), cond = 3; end
end
s = s0; phis = feval (phi,  s);
ds = h; dphi = err;
end
            
在Matlab中新建一个M文件,名称为qmin
编译时出现如下错误提示:
大意是输出参数太多
仔细检查一下代码,发现命令语句的输出参数中多了一个k参数
将命令语句中的K参数删除,再次运行便可成功输出结果了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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