diff --git a/matlab/getH.m b/matlab/getH.m index fdf84c4e9..5fd7b172e 100644 --- a/matlab/getH.m +++ b/matlab/getH.m @@ -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,:);