From 4baff7fdd2b9fdccf5318789290e036b4ad5b3d0 Mon Sep 17 00:00:00 2001 From: michel Date: Mon, 31 Jul 2006 15:46:55 +0000 Subject: [PATCH] v4: changed oo_.y_simul in oo_.endo_simul git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@849 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/dyn2vec.m | 8 ++++---- matlab/global_initialization.m | 2 +- matlab/initvalf_.m | 16 ++++------------ matlab/make_y_.m | 20 ++++++++++---------- matlab/resid.m | 8 ++++---- matlab/rplot.m | 6 +++--- matlab/sim1.m | 10 +++++----- matlab/simk.m | 22 +++++++++++----------- matlab/simul.m | 2 +- matlab/simult.m | 2 +- matlab/steady.m | 7 ++----- 11 files changed, 46 insertions(+), 57 deletions(-) diff --git a/matlab/dyn2vec.m b/matlab/dyn2vec.m index 69c20d0cc..07f50c50b 100644 --- a/matlab/dyn2vec.m +++ b/matlab/dyn2vec.m @@ -5,7 +5,7 @@ function [z,zss]=dyn2vec(s1,s2); global M_ oo_ options_ if options_.smpl == 0 - k = [1:size(oo_.y_simul,2)]; + k = [1:size(oo_.endo_simul,2)]; else k = [M_.maximum_lag+options_.smpl(1):M_.maximum_lag+options_.smpl(2)]; end @@ -16,14 +16,14 @@ function [z,zss]=dyn2vec(s1,s2); ' used without input argument']; error(t); end - for i=1:size(oo_.y_simul,1) - assignin('base',deblank(M_.endo_names(i,:)),oo_.y_simul(i,k)'); + for i=1:size(oo_.endo_simul,1) + assignin('base',deblank(M_.endo_names(i,:)),oo_.endo_simul(i,k)'); end return else j = strmatch(s1,M_.endo_names,'exact'); if ~ isempty(j) - z = oo_.y_simul(j,k)'; + z = oo_.endo_simul(j,k)'; else j = strmatch(s1,M_.exo_names,'exact'); if ~ isempty(j) diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index 3236f7abf..f4b66f9fd 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -15,7 +15,7 @@ function global_initialization() options_.initval_file = 0; oo_.exo_simul = []; - oo_.y_simul = []; + oo_.endo_simul = []; oo_.dr = struct([]); oo_.exo_det_steady_state = []; oo_.exo_det_simul = []; \ No newline at end of file diff --git a/matlab/initvalf_.m b/matlab/initvalf_.m index 1a537138d..f0ffb8cbd 100644 --- a/matlab/initvalf_.m +++ b/matlab/initvalf_.m @@ -50,20 +50,20 @@ function initvalf_(fname,period,varargin) clear y1, p1; options_.initval_file = 1; - oo_.y_simul = []; + oo_.endo_simul = []; oo_.exo_simul = []; for i=1:size(M_.endo_names,1) if series == 1 x = eval([M_.endo_names(i,:) '(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1);']); - oo_.y_simul = [oo_.y_simul; x']; + oo_.endo_simul = [oo_.endo_simul; x']; else k = strmatch(upper(M_.endo_names(i,:)),names_v,'exact'); if isempty(k) error(['INITVALF: ' M_.endo_names(i,:) ' not found']) end x = data(:,k); - oo_.y_simul = [oo_.y_simul; x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)']; + oo_.endo_simul = [oo_.endo_simul; x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)']; end end @@ -81,15 +81,7 @@ function initvalf_(fname,period,varargin) end end -% $$$ if any(isnan(oo_.y_simul(:,1))) | any(isnan(oo_.exo_simul(1,:))) -% $$$ error('INITVALF: missing value in first period') -% $$$ end -% $$$ -% $$$ if any(isnan(oo_.y_simul(:,end))) | any(isnan(oo_.exo_simul(end,:))) -% $$$ error('INITVALF: missing value in last period') -% $$$ end - -% 8/23/01 MJ changed argument 'FILE' to 'MAT' + diff --git a/matlab/make_y_.m b/matlab/make_y_.m index 9e073edb7..cde3999c0 100644 --- a/matlab/make_y_.m +++ b/matlab/make_y_.m @@ -10,25 +10,25 @@ function make_y_ end - if isempty(oo_.y_simul) + if isempty(oo_.endo_simul) if isempty(ys0_) - oo_.y_simul = [oo_.steady_state*ones(1,M_.maximum_lag+options_.periods+M_.maximum_lead)]; + oo_.endo_simul = [oo_.steady_state*ones(1,M_.maximum_lag+options_.periods+M_.maximum_lead)]; else - oo_.y_simul = [ys0_*ones(1,M_.maximum_lag);oo_.steady_state*ones(1,options_.periods+M_.maximum_lead)]; + oo_.endo_simul = [ys0_*ones(1,M_.maximum_lag);oo_.steady_state*ones(1,options_.periods+M_.maximum_lead)]; end - elseif size(oo_.y_simul,1) < length(oo_.steady_state) - k = size(oo_.y_simul,1)+1:length(oo_.steady_state) + elseif size(oo_.endo_simul,1) < length(oo_.steady_state) + k = size(oo_.endo_simul,1)+1:length(oo_.steady_state) if isempty(ys0_) - oo_.y_simul = [oo_.y_simul; oo_.steady_state(k)*ones(1,M_.maximum_lag+size(oo_.y_simul,1)+M_.maximum_lead)]; + oo_.endo_simul = [oo_.endo_simul; oo_.steady_state(k)*ones(1,M_.maximum_lag+size(oo_.endo_simul,1)+M_.maximum_lead)]; else - oo_.y_simul = [oo_.y_simul; [ys0_(k)*ones(1,M_.maximum_lag); oo_.steady_state(k)*ones(1,size(oo_.y_simul,2)-M_.maximum_lag+ ... + oo_.endo_simul = [oo_.endo_simul; [ys0_(k)*ones(1,M_.maximum_lag); oo_.steady_state(k)*ones(1,size(oo_.endo_simul,2)-M_.maximum_lag+ ... M_.maximum_lead)]]; end - elseif size(oo_.y_simul,2) < M_.maximum_lag+M_.maximum_lead+options_.periods + elseif size(oo_.endo_simul,2) < M_.maximum_lag+M_.maximum_lead+options_.periods if isempty(ys0_) - oo_.y_simul = [oo_.y_simul oo_.steady_state*ones(1,M_.maximum_lag+options_.periods+M_.maximum_lead-size(oo_.y_simul,2),1)]; + oo_.endo_simul = [oo_.endo_simul oo_.steady_state*ones(1,M_.maximum_lag+options_.periods+M_.maximum_lead-size(oo_.endo_simul,2),1)]; else - oo_.y_simul = [ys0_*ones(1,M_.maximum_lag) oo_.y_simul oo_.steady_state*ones(1,options_.periods+M_.maximum_lead-size(oo_.y_simul, ... + oo_.endo_simul = [ys0_*ones(1,M_.maximum_lag) oo_.endo_simul oo_.steady_state*ones(1,options_.periods+M_.maximum_lead-size(oo_.endo_simul, ... 2))]; end end diff --git a/matlab/resid.m b/matlab/resid.m index bb1620e31..b664be3ae 100644 --- a/matlab/resid.m +++ b/matlab/resid.m @@ -5,21 +5,21 @@ function resid(period) oo_.exo_simul = ones(M_.maximum_lag+M_.maximum_lead+period,1)*oo_.exo_steady_state'; n = size(M_.lead_lag_incidence,2); -% if ~ options_.initval_file | size(oo_.y_simul,2) ~= period+M_.maximum_lag+M_.maximum_lead +% if ~ options_.initval_file | size(oo_.endo_simul,2) ~= period+M_.maximum_lag+M_.maximum_lead if ~ options_.initval_file if size(oo_.steady_state,1) == 1 & oo_.steady_state == 0 oo_.steady_state = zeros(size(oo_.steady_state,1),1) ; end - oo_.y_simul = oo_.steady_state*ones(1,period+M_.maximum_lag+M_.maximum_lead) ; + oo_.endo_simul = oo_.steady_state*ones(1,period+M_.maximum_lag+M_.maximum_lead) ; if endval_ == 1 - oo_.y_simul(:,1:M_.maximum_lag) = ys0_*ones(1,M_.maximum_lag) ; + oo_.endo_simul(:,1:M_.maximum_lag) = ys0_*ones(1,M_.maximum_lag) ; end end i = M_.lead_lag_incidence'; iyr0 = find(i(:)); - y =oo_.y_simul(:); + y =oo_.endo_simul(:); z = zeros(n,period); fh = str2func([M_.fname '_dynamic']); for it_=M_.maximum_lag+1:period+M_.maximum_lag diff --git a/matlab/rplot.m b/matlab/rplot.m index ede854bb8..aad63043d 100644 --- a/matlab/rplot.m +++ b/matlab/rplot.m @@ -12,7 +12,7 @@ global M_ oo_ options_ rplottype = options_.rplottype; col = ['y','c','r','g','b','w','m'] ; -ix = [1 - M_.maximum_lag:size(oo_.y_simul,2)-M_.maximum_lag]' ; +ix = [1 - M_.maximum_lag:size(oo_.endo_simul,2)-M_.maximum_lag]' ; y = []; for k=1:size(s1,1) @@ -20,11 +20,11 @@ for k=1:size(s1,1) error (['One of the variable specified does not exist']) ; end - y = [y; oo_.y_simul(strmatch(s1(k,:),M_.endo_names,'exact'),:)] ; + y = [y; oo_.endo_simul(strmatch(s1(k,:),M_.endo_names,'exact'),:)] ; end if options_.smpl == 0 - i = [M_.maximum_lag:size(oo_.y_simul,2)]' ; + i = [M_.maximum_lag:size(oo_.endo_simul,2)]' ; else i = [options_.smpl(1)+M_.maximum_lag:options_.smpl(2)+M_.maximum_lag]' ; end diff --git a/matlab/sim1.m b/matlab/sim1.m index 618121254..1022365ac 100644 --- a/matlab/sim1.m +++ b/matlab/sim1.m @@ -7,7 +7,7 @@ global iyp iyf ct_ M_ it_ c lead_lag_incidence = M_.lead_lag_incidence; -ny = size(oo_.y_simul,1) ; +ny = size(oo_.endo_simul,1) ; nyp = nnz(lead_lag_incidence(1,:)) ; nyf = nnz(lead_lag_incidence(3,:)) ; nrs = ny+nyp+nyf+1 ; @@ -38,14 +38,14 @@ for iter = 1:options_.maxit end it_ = it_init ; - z = [oo_.y_simul(iyp,it_-1) ; oo_.y_simul(:,it_) ; oo_.y_simul(iyf,it_+1)] ; + z = [oo_.endo_simul(iyp,it_-1) ; oo_.endo_simul(:,it_) ; oo_.endo_simul(iyf,it_+1)] ; [d1,M_.jacobia] = feval([M_.fname '_dynamic'],z,oo_.exo_simul); M_.jacobia = [M_.jacobia(:,iz) -d1] ; ic = [1:ny] ; icp = iyp ; c (ic,:) = M_.jacobia(:,is)\M_.jacobia(:,isf1) ; for it_ = it_init+1:options_.periods+1 - z = [oo_.y_simul(iyp,it_-1) ; oo_.y_simul(:,it_) ; oo_.y_simul(iyf,it_+1)] ; + z = [oo_.endo_simul(iyp,it_-1) ; oo_.endo_simul(:,it_) ; oo_.endo_simul(iyf,it_+1)] ; [d1,M_.jacobia] = feval([M_.fname '_dynamic'],z,oo_.exo_simul); M_.jacobia = [M_.jacobia(:,iz) -d1] ; M_.jacobia(:,[isf nrs]) = M_.jacobia(:,[isf nrs])-M_.jacobia(:,isp)*c(icp,:) ; @@ -61,11 +61,11 @@ for iter = 1:options_.maxit c(ic,nrc) = s\c(:,nrc) ; c = bksup1(ny,nrc) ; c = reshape(c,ny,options_.periods+1) ; - oo_.y_simul(:,it_init:options_.periods+2) = oo_.y_simul(:,it_init:options_.periods+2)+options_.slowc*c ; + oo_.endo_simul(:,it_init:options_.periods+2) = oo_.endo_simul(:,it_init:options_.periods+2)+options_.slowc*c ; else c = bksup1(ny,nrc) ; c = reshape(c,ny,options_.periods) ; - oo_.y_simul(:,it_init:options_.periods+1) = oo_.y_simul(:,it_init:options_.periods+1)+options_.slowc*c ; + oo_.endo_simul(:,it_init:options_.periods+1) = oo_.endo_simul(:,it_init:options_.periods+1)+options_.slowc*c ; end err = max(max(abs(c./options_.scalv'))); diff --git a/matlab/simk.m b/matlab/simk.m index b785cf054..71d55e888 100644 --- a/matlab/simk.m +++ b/matlab/simk.m @@ -96,7 +96,7 @@ fprintf ('\n') ; for iter = 1:options_.maxit h2 = clock ; - oo_.y_simul = oo_.y_simul(:); + oo_.endo_simul = oo_.endo_simul(:); err_f = 0; fid = fopen('dynare.swp','w+') ; @@ -108,11 +108,11 @@ for iter = 1:options_.maxit while (i>1) & (it_<=options_.periods+M_.maximum_lag) h3 = clock ; if broyden_ & iter > 1 - %d1_ = -feval(fh,oo_.y_simul(iyr)); - d1 = -feval([M_.fname '_dynamic'],oo_.y_simul(iyr),z,oo_.exo_simul); + %d1_ = -feval(fh,oo_.endo_simul(iyr)); + d1 = -feval([M_.fname '_dynamic'],oo_.endo_simul(iyr),z,oo_.exo_simul); else - %jacob(func_name,oo_.y_simul(iyr)) ; - [d1,M_.jacobia] = feval([M_.fname '_dynamic'],oo_.y_simul(iyr),oo_.exo_simul); + %jacob(func_name,oo_.endo_simul(iyr)) ; + [d1,M_.jacobia] = feval([M_.fname '_dynamic'],oo_.endo_simul(iyr),oo_.exo_simul); d1 = -d1 ; end err_f = max(err_f,max(abs(d1))); @@ -201,11 +201,11 @@ for iter = 1:options_.maxit icr0 = (it_-M_.maximum_lag-M_.maximum_lag -1)*ny ; while it_ <= options_.periods+M_.maximum_lag if broyden_ - %d1_ = -feval(fh,oo_.y_simul(iyr)); - d1 = -feval([M_.fname '_dynamic'],oo_.y_simul(iyr),z,oo_.exo_simul); + %d1_ = -feval(fh,oo_.endo_simul(iyr)); + d1 = -feval([M_.fname '_dynamic'],oo_.endo_simul(iyr),z,oo_.exo_simul); else - %jacob(func_name,oo_.y_simul(iyr)) ; - [d1,M_.jacobia] = feval([M_.fname '_dynamic'],oo_.y_simul(iyr),oo_.exo_simul); + %jacob(func_name,oo_.endo_simul(iyr)) ; + [d1,M_.jacobia] = feval([M_.fname '_dynamic'],oo_.endo_simul(iyr),oo_.exo_simul); d1 = -d1 ; end err_f = max(err_f,max(abs(d1))); @@ -270,7 +270,7 @@ for iter = 1:options_.maxit end end - oo_.y_simul = reshape(oo_.y_simul,ny,options_.periods+M_.maximum_lag+M_.maximum_lead) ; + oo_.endo_simul = reshape(oo_.endo_simul,ny,options_.periods+M_.maximum_lag+M_.maximum_lead) ; if ct_ == 1 hbacsup = clock ; c = bksupk(ny,fid,ncc,icc1) ; @@ -282,7 +282,7 @@ for iter = 1:options_.maxit c = bksupk(ny,fid,ncc,icc1) ; hbacsup = etime(clock,hbacsup) ; c = reshape(c,ny,options_.periods)' ; - oo_.y_simul(:,1+M_.maximum_lag:(options_.periods+M_.maximum_lag)) = oo_.y_simul(:,1+M_.maximum_lag:(options_.periods+M_.maximum_lag))+options_.slowc*c' ; + oo_.endo_simul(:,1+M_.maximum_lag:(options_.periods+M_.maximum_lag)) = oo_.endo_simul(:,1+M_.maximum_lag:(options_.periods+M_.maximum_lag))+options_.slowc*c' ; end fclose(fid) ; diff --git a/matlab/simul.m b/matlab/simul.m index 8af24fe50..7d4223661 100644 --- a/matlab/simul.m +++ b/matlab/simul.m @@ -53,7 +53,7 @@ else else set_defaut_option('order',1); end - oo_.y_simul=simult(oo_.steady_state,dr,options_); + oo_.endo_simul=simult(oo_.steady_state,dr,options_); end dyn2vec; diff --git a/matlab/simult.m b/matlab/simult.m index 5662baa2b..3e26466c0 100644 --- a/matlab/simult.m +++ b/matlab/simult.m @@ -34,7 +34,7 @@ for i=1:replic end y_ = simult_(ys,dr,oo_.exo_simul,order); if replic > 1 - fwrite(fh,oo_.y_simul(:,M_.maximum_lag+1:end),'float64'); + fwrite(fh,oo_.endo_simul(:,M_.maximum_lag+1:end),'float64'); end end diff --git a/matlab/steady.m b/matlab/steady.m index 8d59f86b7..5dda11b50 100644 --- a/matlab/steady.m +++ b/matlab/steady.m @@ -22,12 +22,9 @@ function steady(linear) end if isempty(ys0_) - oo_.y_simul(:,1:M_.maximum_lag) = oo_.steady_state * ones(1,M_.maximum_lag); + oo_.endo_simul(:,1:M_.maximum_lag) = oo_.steady_state * ones(1,M_.maximum_lag); else options_ =set_default_option(options_,'periods',1); - oo_.y_simul(:,M_.maximum_lag+1:M_.maximum_lag+options_.periods+M_.maximum_lead) = oo_.steady_state * ones(1,options_.periods+M_.maximum_lead); + oo_.endo_simul(:,M_.maximum_lag+1:M_.maximum_lag+options_.periods+M_.maximum_lead) = oo_.steady_state * ones(1,options_.periods+M_.maximum_lead); end -% 06/24/01 MJ steady print results; steady_ doesn't -% 09/22/01 FC corrected lgy(i,:) -% 05/29/03 MJ sets initial values of oo_.y_simul