the question is: Create a function which finds the root of an equation numerically by using the following recursive formula :
Afficher commentaires plus anciens
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 commentaires
Walter Roberson
le 9 Mai 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
le 9 Mai 2013
Walter Roberson
le 10 Mai 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
le 10 Mai 2013
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!