From a6106f07c794ce91172f12613c8e33ced7682cd2 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Wed, 7 May 2014 21:12:56 +0200 Subject: [PATCH] making solve1.m robust to sparse Jacobian --- matlab/solve1.m | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/matlab/solve1.m b/matlab/solve1.m index 4c787ddc3..fd57b2618 100644 --- a/matlab/solve1.m +++ b/matlab/solve1.m @@ -90,9 +90,14 @@ for its = 1:maxit g = (fvec'*fjac)'; if debug - disp(['cond(fjac) ' num2str(cond(fjac))]) + disp(['cond(fjac) ' num2str(condest(fjac))]) end - if rcond(fjac) < sqrt(eps) + if issparse(fjac) + rcond_fjac = 1/condest(fjac); + else + rcond_fjac = rcond(fjac); + end + if rcond_fjac < sqrt(eps) fjac2=fjac'*fjac; p=-(fjac2+1e6*sqrt(nn*eps)*max(sum(abs(fjac2)))*eye(nn))\(fjac'*fvec); else