analytic derivation: use <fname>_static_params_deriv where needed
parent
911d2c3d33
commit
e446aaddb1
|
@ -130,25 +130,25 @@ else
|
|||
dyssdtheta=zeros(length(oo_.dr.ys),M_.param_nbr);
|
||||
d2yssdtheta=zeros(length(oo_.dr.ys),M_.param_nbr,M_.param_nbr);
|
||||
[residual, gg1] = feval([M_.fname,'_static'],oo_.dr.ys, oo_.exo_steady_state', M_.params);
|
||||
df = feval([M_.fname,'_params_derivs'],yy0, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1]), ...
|
||||
M_.params, oo_.dr.ys, 1, dyssdtheta, d2yssdtheta);
|
||||
df = feval([M_.fname,'_static_params_derivs'],oo_.dr.ys, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1]), ...
|
||||
M_.params);
|
||||
dyssdtheta = -gg1\df;
|
||||
if nargout>5,
|
||||
[residual, gg1, gg2] = feval([M_.fname,'_static'],oo_.dr.ys, oo_.exo_steady_state', M_.params);
|
||||
[residual, g1, g2, g3] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', ...
|
||||
M_.params, oo_.dr.ys, 1);
|
||||
[nr, nc]=size(g2);
|
||||
[nr, nc]=size(gg2);
|
||||
|
||||
[df, gp, d2f] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', ...
|
||||
M_.params, oo_.dr.ys, 1, dyssdtheta*0, d2yssdtheta);
|
||||
[df, gpx, d2f] = feval([M_.fname,'_static_params_derivs'],oo_.dr.ys, oo_.exo_steady_state', ...
|
||||
M_.params);%, oo_.dr.ys, 1, dyssdtheta*0, d2yssdtheta);
|
||||
d2f = get_all_resid_2nd_derivs(d2f,length(oo_.dr.ys),M_.param_nbr);
|
||||
gpx = zeros(nr,nr,M_.param_nbr);
|
||||
for j=1:nr,
|
||||
for i=1:nr,
|
||||
inx = I == i;
|
||||
gpx(j,i,:)=sum(gp(j,inx,:),2);
|
||||
end
|
||||
end
|
||||
% $$$ gpx = zeros(nr,nr,M_.param_nbr);
|
||||
% $$$ for j=1:nr,
|
||||
% $$$ for i=1:nr,
|
||||
% $$$ inx = I == i;
|
||||
% $$$ gpx(j,i,:)=sum(gp(j,inx,:),2);
|
||||
% $$$ end
|
||||
% $$$ end
|
||||
% d2f = d2f(:,indx,indx);
|
||||
if isempty(find(gg2)),
|
||||
for j=1:M_.param_nbr,
|
||||
|
@ -196,9 +196,9 @@ else
|
|||
M_.params, oo_.dr.ys, 1, dyssdtheta,d2yssdtheta);
|
||||
[residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1,1]), ...
|
||||
M_.params, oo_.dr.ys, 1);
|
||||
[nr, nc]=size(g2);
|
||||
end
|
||||
|
||||
[nr, nc]=size(g2);
|
||||
nc = sqrt(nc);
|
||||
Hss = dyssdtheta(oo_.dr.order_var,indx);
|
||||
dyssdtheta = dyssdtheta(I,:);
|
||||
|
|
Loading…
Reference in New Issue