# How do I iterate f(x)

1 view (last 30 days)
LILIA VERGARA on 26 Jan 2023
Answered: Alan Weiss on 27 Jan 2023
using x^(0) = 0 and x^(1) = 5 as inital condition
I am trying to iterate f(x) up to 60 iterations or till the estimated relative error is less than 10^-6
note that f(x) = e^x - 2 - x - (x^2 / 2)
The code I have startead with has been giving me errors:
f = @(x)exp(x) - 2 - x - x.^2./2
f = function_handle with value:
@(x)exp(x)-2-x-x.^2./2
x_true = fzero(f,[0.01 0.1],optimset("Display","iter"));
Error using fzero
Function values at the interval endpoints must differ in sign.
##### 2 CommentsShow 1 older commentHide 1 older comment
Walter Roberson on 26 Jan 2023
f = @(x)exp(x) - 2 - x - x.^2./2
f = function_handle with value:
@(x)exp(x)-2-x-x.^2./2
fplot(f, [0.01 0.1]) There is no zero of the function within that range.

Alan Weiss on 27 Jan 2023
Is this what you are looking for?
f = @(x)exp(x) - 2 - x - x.^2./2;
t = linspace(0,5);
plot(t,f(t)) OK, there is a root in that interval. Find it.
[x,fval,eflag,output] = fzero(f,[0 5])
x = 1.5681
fval = 2.2204e-16
eflag = 1
output = struct with fields:
intervaliterations: 0 iterations: 11 funcCount: 13 algorithm: 'bisection, interpolation' message: 'Zero found in the interval [0, 5]'
Number of iterations is not too high.
Alan Weiss
MATLAB mathematical toolbox documentation