I want to use fsolve to only use one iteration: get the Jacobian, get x1 and done. However when test the code below, which tries to find the zero of x^2, i see the following:
-iteration 0, 2 function evaluations: it seems f(x0) and 1 for finite difference
-iteration 1, 2 function evaluations: it seems f(x1) and 1 for finite difference
I do not want the last two evaluations. Is this possible?
I mean, this doubles the computation time, but it adds nothing for me. Especially since the Jacobian that is reported is the jacobian at x0 (not at x1). If it would at least give me the jacobian at x1 as output i could calculate the next iteration myself.
The solution would to program a similar routine myself, but I rather use fsolve (i also want to use JacobPattern for example).
clear all;clc;fun_res = @(xx)xx.^2;x0 = 1;ex_fl = -10;iter = 0;while ex_fl < 1 && iter < 100 iter = iter+1; %[xx_it(iter,1),res(iter,1),ex_fl,~,jac(iter,1)] = fsolve(fun_res,x0,optimoptions(@fsolve,'Display','iter','MaxIterations',1));
[xx_it(iter,1),~,ex_fl] = fsolve(fun_res,x0,optimoptions(@fsolve,'Display','iter','MaxIterations',1)); x0 = xx_it(iter); end
Best Answer