the question is: Create a function which finds the root of an equation numerically by using the following recursive formula :
Mostrar comentarios más antiguos
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 comentarios
Walter Roberson
el 9 de Mayo de 2013
(A) That is an iterative procedure that is described, not a recursive procedure;
(B) MATLAB does not have any "where" command;
(C) Your x is symbolic, so x(n) is symbolic, making it unlikely that the difference between the two will be numeric so that the difference can be tested in the "if" statement.
Brittany Roland
el 9 de Mayo de 2013
Walter Roberson
el 10 de Mayo de 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.
Brittany Roland
el 10 de Mayo de 2013
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Conversion en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!