Determine if valid initial guess for closed numerical method

3 ビュー (過去 30 日間)
Rachel Dawn
Rachel Dawn 2018 年 2 月 21 日
コメント済み: Torsten 2018 年 2 月 22 日
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.

回答 (1 件)

Torsten 2018 年 2 月 21 日
編集済み: Torsten 2018 年 2 月 21 日
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
  4 件のコメント
Torsten 2018 年 2 月 22 日
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


Community Treasure Hunt

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

Start Hunting!

Translated by