diff --git a/matlab/mr_hessian.m b/matlab/mr_hessian.m index 9fe04ddad9e2f51b540a4f074a51bd49086bb242..a428a3c92369e62f5d00b2ccf685100cd64f32b5 100644 --- a/matlab/mr_hessian.m +++ b/matlab/mr_hessian.m @@ -101,6 +101,7 @@ while i<n h1(i)=2.1*h1(i); end h1(i) = min(h1(i),0.5*hmax(i)); + h1(i) = max(h1(i),1.e-10); xh1(i)=x(i)+h1(i); try [fx, ffx]=feval(func,xh1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults); diff --git a/matlab/newrat.m b/matlab/newrat.m index 5b2c7e7d9ecc51cc7c4a4d71ac8ef4395ed13c2f..1df015776643ad76b136b0bc98861c57b9b4d979 100644 --- a/matlab/newrat.m +++ b/matlab/newrat.m @@ -122,7 +122,7 @@ while norm(gg)>gtol && check==0 && jit<nit fval=fval1; x0=x01; end - if icount==1 || (icount>1 && (fval0(icount-1)-fval0(icount))>1) || ((fval0(icount)-fval)<1.e-2*(gg'*(H*gg))/2 && igibbs), +% if icount==1 || (icount>1 && (fval0(icount-1)-fval0(icount))>1) || ((fval0(icount)-fval)<1.e-2*(gg'*(H*gg))/2 && igibbs), if length(find(ig))<nx ggx=ggx*0; ggx(find(ig))=gg(find(ig)); @@ -139,7 +139,7 @@ while norm(gg)>gtol && check==0 && jit<nit nig=[nig ig]; disp('Sequence of univariate steps!!') fval=fvala; - end +% end if (fval0(icount)-fval)<ftol && flagit==0 disp('Try diagonal Hessian') ihh=diag(1./(diag(hhg)));