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
--
Johannes Pfeifer
Friesenwall 104
50672 Köln
Tel.: +49-221-29873852
Mobil.: +49-170-6936820
Germany
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
Hi Michel, thanks. I was aware of the change and advocated it due to a usually better performance. But due to a too low maxit, solve_algo=4 also failed for the mentioned mod-file. But with a higher one, it works.
But the user wanted to replicate the 4.2 branch behavior by specifying solve_algo=2 and was not able to this due to the 1e 6.
Am 30.09.2014 um 08:19 schrieb Michel Juillard:
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