Hi Johannes,
I removed the 1e6 factor both in 4.4 and master.
This was a left over testing feature.
Note that in master, the default algorithm is not solve1 anymore but trust_region (options_.solve_algo=4)
trust_region algorithm is supposed to improve things when Jacobian is near singular (the same case as where 1e6 would kick in). It would be interesting to test whether trust_resion is successful for the models that were affected by 1e6
Best
Michel
Johannes Pfeifer writes:
Dear Michel,
when moving from 4.2 to 4.3
we changed line 122 of solve1 from
p=-(fjac2+sqrt(nn*eps)*max(sum(abs(fjac2)))*eye(nn))(fjac'*fvec);
to
p=-(fjac2+1e6*sqrt(nn*eps)*max(sum(abs(fjac2)))*eye(nn))(fjac'*fvec);
That is, we added a constant of 1e6. Is there a good reason for this? I tried to use the replication code of Eggertsson, Ferrero und Raffo (2014), written for 4.2.5 and it is unable to find the steady state in 4.3 because this constant was added. As this is not the first time people report that 4.2 succeeds in finding steady states that 4.3 did not find, I would suggest moving back.
Best,
Johannes