0001
0002
0003
0004 function result = check
0005 global M_ options_ oo_
0006 global it_
0007
0008 temp_options = options_;
0009 tempex = oo_.exo_simul;
0010 if ~options_.initval_file
0011 oo_.exo_simul = ones(M_.maximum_lead+M_.maximum_lag+1,1)*oo_.exo_steady_state';
0012 end
0013
0014 options_ = set_default_option(options_,'noprint',0);
0015 options_ = set_default_option(options_,'order',1);
0016 options_ = set_default_option(options_,'linear',0);
0017 options_ = set_default_option(options_,'dr_algo',0);
0018
0019 [dr, info] = resol(oo_.steady_state,1);
0020
0021 if info(1) ~= 0 & info(1) ~= 3 & info(1) ~= 4
0022 print_info(info);
0023 end
0024
0025 oo_.exo_simul = tempex;
0026
0027 eigenvalues_ = dr.eigval;
0028 nyf = nnz(dr.kstate(:,2)>M_.maximum_lag+1);
0029 [m_lambda,i]=sort(abs(eigenvalues_));
0030
0031 if options_.noprint == 0
0032 disp(' ')
0033 disp('EIGENVALUES:')
0034 disp(sprintf('%16s %16s %16s\n','Modulus','Real','Imaginary'))
0035 z=[m_lambda real(eigenvalues_(i)) imag(eigenvalues_(i))]';
0036 disp(sprintf('%16.4g %16.4g %16.4g\n',z))
0037 options_ = set_default_option(options_,'qz_criterium',1.000001);
0038 disp(sprintf('\nThere are %d eigenvalue(s) larger than 1 in modulus ', ...
0039 nnz(abs(eigenvalues_) > options_.qz_criterium)));
0040 disp(sprintf('for %d forward-looking variable(s)',nyf));
0041 disp(' ')
0042 if info(1) == 0
0043 if dr.rank == nyf
0044 disp('The rank condition is verified.')
0045 else
0046 disp('The rank conditions ISN''T verified!')
0047 end
0048 disp(' ')
0049 end
0050 end
0051
0052
0053 lambda_ = eigenvalues_;
0054
0055 options_ = temp_options;
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069