0001 function steady()
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 global M_ oo_ options_ ys0_
0032
0033 test_for_deep_parameters_calibration(M_);
0034
0035 if options_.steadystate_flag && options_.homotopy_mode
0036 error('STEADY: Can''t use homotopy when providing a steady state external file');
0037 end
0038
0039
0040
0041 Sigma_e = M_.Sigma_e;
0042
0043
0044 M_.Sigma_e = zeros(size(Sigma_e));
0045
0046 info = 0;
0047 switch options_.homotopy_mode
0048 case 1
0049 [M_,oo_,info,ip,ix,ixd] = homotopy1(options_.homotopy_values,options_.homotopy_steps,M_,options_,oo_);
0050 case 2
0051 homotopy2(options_.homotopy_values, options_.homotopy_steps);
0052 case 3
0053 [M_,oo_,info,ip,ix,ixd] = homotopy3(options_.homotopy_values,options_.homotopy_steps,M_,options_,oo_);
0054 end
0055
0056 if info(1)
0057 hv = options_.homotopy_values;
0058 disp(' ')
0059 disp('WARNING: homotopy step was not completed')
0060 disp('The last values for which a solution was found are:')
0061 for i=1:length(ip)
0062 disp(sprintf('%12s %12.6f',M_.param_names(hv(ip(i),2),:), ...
0063 M_.params(hv(ip(i)))))
0064 end
0065 for i=1:length(ix)
0066 disp(sprintf('%12s %12.6f',M_.exo_names(hv(ix(i),2),:), ...
0067 oo_.exo_steady_state(hv(ix(i)))))
0068 end
0069 for i=1:length(ixd)
0070 disp(sprintf('%12s %12.6f',M_.exo_det_names(hv(ixd(i),2),:), ...
0071 oo_.exo_det_steady_state(hv(ixd(i)))))
0072 end
0073
0074 if options_.homotopy_force_continue
0075 disp('Option homotopy_continue is set, so I continue ...')
0076 else
0077 error('Homotopy step failed')
0078 end
0079 end
0080
0081 [steady_state,M_.params,info] = steady_(M_,options_,oo_);
0082
0083 if info(1) == 0
0084 oo_.steady_state = steady_state;
0085 if options_.noprint == 0
0086 disp_steady_state(M_,oo_);
0087 end
0088 else
0089 if options_.noprint == 0
0090 resid;
0091 end
0092 print_info(info,options_.noprint);
0093 end
0094
0095 M_.Sigma_e = Sigma_e;