Home > . > check.m

check

PURPOSE ^

Copyright (C) 2001 Michel Juillard

SYNOPSIS ^

function result = check

DESCRIPTION ^

 Copyright (C) 2001 Michel Juillard

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % Copyright (C) 2001 Michel Juillard
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   % keep lambda_ for backward compatibility
0053   lambda_ = eigenvalues_;
0054 
0055   options_ = temp_options;
0056   
0057   % 2/9/99 MJ: line 15, added test for absence of exogenous variable.
0058   % 8/27/2000 MJ: change JACOB call. Added ...,1 to cumsum()
0059   % 6/24/01 MJ: added count of abs(eigenvalues) > 1
0060   % 2/21/02 MJ: count eigenvalues > 1[+1e-5]
0061   % 01/22/03 MJ: warning(warning_state) needs parentheses for Matlab 6.5
0062   %              name conflicts with parameters
0063   % 05/21/03 MJ: replace computation by dr1.m and add rank check
0064   % 06/05/03 MJ: corrected bug when M_.maximum_lag > 0
0065   
0066 
0067 
0068 
0069

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003