# Determine if valid initial guess for closed numerical method

1 view (last 30 days)

Show older comments

##### 0 Comments

### 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

Torsten.

##### 4 Comments

Torsten
on 22 Feb 2018

Try

xa = 10;

xb = 21;

fxa = f(xa);

fxb = f(xb);

if fxa*fxb > 0

disp('Invalid initial guess.')

end

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;

else

xa = xc;

fxa = fxc;

end

error_f = abs(fxc);

iteration = iteration+1;

end

xc

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

Torsten.

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!