From 772e3be8b39c9963bb626ccbc6e5b8003b623a59 Mon Sep 17 00:00:00 2001 From: sebastien Date: Thu, 18 Sep 2008 16:59:20 +0000 Subject: [PATCH] trunk: fixed bugs in homotopy mode 3 git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2084 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/homotopy3.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/matlab/homotopy3.m b/matlab/homotopy3.m index 90966dd57..1ee7dbedd 100644 --- a/matlab/homotopy3.m +++ b/matlab/homotopy3.m @@ -78,7 +78,6 @@ function homotopy3(values, step_nbr) inc = (targetvalues-oldvalues)/2; kplus = []; kminus = []; - old_ss = oo_.steady_state; disp('HOMOTOPY mode 3: launching solver at initial point...') @@ -89,6 +88,7 @@ function homotopy3(values, step_nbr) oo_.exo_steady_state(values(ix,2)) = curvalues(ix); oo_.exo_det_steady_state(values(ixd,2)) = curvalues(ixd); + old_ss = oo_.steady_state; [oo_.steady_state,check] = dynare_solve([M_.fname '_static'],... oo_.steady_state,... options_.jacobian_flag, ... @@ -113,9 +113,9 @@ function homotopy3(values, step_nbr) end curvalues = oldvalues + inc; kplus = find(curvalues(iplus) >= targetvalues(iplus)); - curvalues(kplus) = targetvalues(kplus); + curvalues(iplus(kplus)) = targetvalues(iplus(kplus)); kminus = find(curvalues(iminus) <= targetvalues(iminus)); - curvalues(kminus) = targetvalues(kminus); + curvalues(iminus(kminus)) = targetvalues(iminus(kminus)); if max(abs(inc)) < tol error('HOMOTOPY mode 3: failed, increment has become too small')