Determine if valid initial guess for closed numerical method

1 view (last 30 days)
If I'm given a function f(x), how can I determine whether say [0 1] or [1,2 ] are valid initial guesses for a closed numerical method, of solving f(x)=0.

Answers (1)

Torsten on 21 Feb 2018
Edited: Torsten on 21 Feb 2018
If you want to use "fzero", you can first evaluate f in the endpoints of the interval [a b] you provide. If sign(f(a)*f(b)) < 0, you provide a valid initial guess.
Or did you want to ask something else - because your question was quite unclear ?
Best wishes
Rachel Dawn
Rachel Dawn on 21 Feb 2018
Also, sorry for all the questions, but in the following code:
while(iteration <=100 && abs(xleft-xright)>10^-3
it's part of the bisection method, but what does that abs part imply? why is it necessary?
Torsten on 22 Feb 2018
xa = 10;
xb = 21;
fxa = f(xa);
fxb = f(xb);
if fxa*fxb > 0
disp('Invalid initial guess.')
iteration = 1;
E = 0.1;
error_f = 1.0;
while (iteration < 100 && error_f >= E)
xc = (xa+xb)/2;
fxc = f(xc);
if fxc*fxa<0
xb = xc;
xa = xc;
fxa = fxc;
error_f = abs(fxc);
iteration = iteration+1;
You do not need to include the abs-part from above in the while-statement because the number of iterations already determines the minimum length of the interval in which you search for the root.
Best wishes

Sign in to comment.


Find more on Numeric Types in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!