Determine if valid initial guess for closed numerical method
1 次查看(过去 30 天)
显示 更早的评论
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.
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
Torsten.
4 个评论
Torsten
2018-2-22
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Numeric Types 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!