0001
0002
0003 function simul(dr)
0004
0005 global M_ options_ oo_
0006 global ys0_ ct_ endval_
0007
0008 if size(M_.lead_lag_incidence,2)-nnz(M_.lead_lag_incidence(M_.maximum_lag+1,:)) > 0
0009 mess = ['DYNARE: error in model specification : variable ' M_.endo_names(find(M_.lead_lag_incidence(M_.maximum_lag+1,:)==0),:)] ;
0010 mess = [mess ' doesn''t appear as current variable.'] ;
0011 error (mess) ;
0012 end
0013
0014 options_ = set_default_option(options_,'simul_algo',0);
0015 options_ = set_default_option(options_,'dynatol',0.00001);
0016 options_ = set_default_option(options_,'maxit',10);
0017 options_ = set_default_option(options_,'slowc',1);
0018 options_ = set_default_option(options_,'timing',0);
0019 options_ = set_default_option(options_,'gstep',1e-2);
0020 options_ = set_default_option(options_,'scalv',1);
0021 if ~isfield(options_,'periods') & ~isempty(options_.periods)
0022 options_.periods = options_.periods
0023 end
0024 options_ = set_default_option(options_,'periods',0);
0025 if options_.periods == 0
0026 error('SIMUL: number of periods for the simulation isn''t specified')
0027 end
0028 options_.periods = options_.periods;
0029 ct_=0;
0030
0031 if options_.simul_algo == 0
0032 if ~ options_.initval_file
0033 make_y_;
0034 make_ex_;
0035 end
0036
0037 if isempty(options_.scalv) | options_.scalv == 0
0038 options_.scalv = oo_.steady_state ;
0039 end
0040
0041 options_.scalv= 1 ;
0042
0043 if M_.maximum_lag ==1 & M_.maximum_lead <= 1
0044 sim1 ;
0045 else
0046 simk ;
0047 end
0048 else
0049 set_default_option('replic',1);
0050 set_default_option('simul_seed',1);
0051 if isfield(dr,'ghxx')
0052 set_default_option('order',2);
0053 else
0054 set_defaut_option('order',1);
0055 end
0056 oo_.y_simul=simult(oo_.steady_state,dr,options_);
0057 end
0058
0059 dyn2vec;
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073