Dear all, I compared two simulations both computed with simult_ using the same shocks. In one computation I use simult_ to compute the whole series directly, in the other I loop over time, and call simult_ in every period. The results for the two methods are different, but only for order 3 (not order 1 or 2), and I don’t understand why.
%Shocks:
rng(‘default’);
Ex_ = randn(5,1);
% METHOD 1: standard
y0 = oo_.dr.ys;
[Y3] = simult_(M_,options_,y0,oo_.dr,Ex_,3);
% METHOD 2: loop over time
Y3_iter = NaN(5,size(Ex_,1)+1);
Y3_iter(:,1) = oo_.dr.ys;
for it = 1:size(Ex_,1)
[Y3_n] = simult_(M_,options_,Y3_iter(:,it),oo_.dr,Ex_(it),3);
Y3_iter(:,it+1) = Y3_n(:,2);
end
The results of Y3 and Y3_iter are different (but only for order 3).
First: what could theoretically cause this difference? I mean, I assumed simult_ would internally do something similar to METHOD 2.
Second: what is the actual cause in my case? There is a difference in the stochastic variable (third row), after the second period (from third column in Y3), so I assume all differences are related to this. This difference does not occur when I do the same for an order 1 or 2 approximation.
I have included all files to replicate these results. Any help will be greatly appreciated!
test_simult_.zip (2.8 KB)