Skip to content
Snippets Groups Projects
Commit 6ef4d483 authored by Johannes Pfeifer's avatar Johannes Pfeifer
Browse files

dynare_solve.m: fix logic of initial guess randomization which forgot case of imaginary numbers

(cherry picked from commit 7df3ff50)
parent a0650c83
Branches
Tags
1 merge request!2185dynare_solve.m: fix logic of initial guess randomization which forgot case of imaginary numbers
......@@ -105,7 +105,7 @@ if jacobian_flag
tentative_number = tentative_number+1;
x(idx) = rand(in0, 1)*10;
[fvec, fjac] = feval(f, x, args{:});
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:))));
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))) || any(~isreal(fvec)) || any(~isreal(fjac(:)));
end
% If all previous attempts failed, try with real numbers.
tentative_number = 0;
......@@ -113,7 +113,7 @@ if jacobian_flag
tentative_number = tentative_number+1;
x(idx) = randn(in0, 1)*10;
[fvec, fjac] = feval(f, x, args{:});
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:))));
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))) || any(~isreal(fvec)) || any(~isreal(fjac(:)));
end
% Last tentative, ff all previous attempts failed, try with negative numbers.
tentative_number = 0;
......@@ -121,7 +121,7 @@ if jacobian_flag
tentative_number = tentative_number+1;
x(idx) = -rand(in0, 1)*10;
[fvec, fjac] = feval(f, x, args{:});
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:))));
wrong_initial_guess_flag = ~all(isfinite(fvec)) || any(isinf(fjac(:))) || any(isnan((fjac(:)))) || any(~isreal(fvec)) || any(~isreal(fjac(:)));
end
end
else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment