MATLAB: Fsolve

fasterfsolve

Is there a way to accelerate the fsolve function, with the least lost of precision possible. In:
beta(n+1)=fsolve(F,beta(n))

Best Answer

  • preallocate beta
    beta = zeros(nmax+1,1);
    beta(1) = beta_of_1;
    for ii = 1:nmax
    beta(ii+1) = fsolve(F,beta(ii));
    end
    EDIT more stuff:
    You calculate:
    • 'sqrt((Ko^2-(x)^2))*b': 4x
    • 'sqrt((Ko^2*Ed-(x)^2))*a': 4x
    • the bessel functions multiple times a pop.
    Turn your function handle into a function. Make each of these calculations once, then use them multiple times.