the question is: Create a function which finds the root of an equation numerically by using the following recursive formula :

1 view (last 30 days)
Xn+1=Xn-f(Xn)/g(Xn) for n-1,2,3,...
where g(Xn)=f(Xn+f(Xn))-f(Xn)/f(Xn). This iterative procedure must stop when the absolute difference between Xn and Xn+1 is less than a given tolerance epsilon. The funtion must accept as inputs a scalar function f, an initial number 'x' and a positive number epsilon to terminate the procedure. Hence use this numerical technique to find the root of the equation e^x-x^2=0.
HELP PLEASE :(
syms x
f=exp(x)-x^2;
y(1)=1;
if x(n)-x(n+1)<0.25;
for n=0:1:inf;
x(k+1)=yk-subs(f,x,yk)/subs(g(xn),x,yk);
where g(xn)=(f(xn+f(xn))-f(xn))/(f(xn))
end
end
  4 Comments
Walter Roberson
Walter Roberson on 10 May 2013
syms x g(xn) f(x)
f(x) = exp(x)-x^2;
g(xn) = (f(xn+f(xn))-f(xn))/(f(xn));
That takes care of the "where" part.
Note: this requires a fairly recent version of MATLAB, R2011b or later.

Sign in to comment.

Accepted Answer

Friedrich
Friedrich on 10 May 2013
Hi,
why using symblic math when doing it nurmerically anyway? You can do this with plain MATLAB right away:
f = @(x) exp(x) - x^2;
g = @(x) (f(x + f(x)) - f(x))/f(x);
x(1) = 0;
x(2) = x(1) - f(x(1))/g(x(1));
n = 2;
while abs(x(n) - x(n-1)) > eps
n = n + 1;
x(n) = x(n-1) - f(x(n-1))/g(x(n-1));
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!