Help, secant method by recursion

2 vues (au cours des 30 derniers jours)
Sun Woo Kim
Sun Woo Kim le 14 Oct 2017
I'm trying to write a function that uses the secant method to find a root of the function.
I'm required to write both the iterative and recursive method.
So far, I finished writing the iterative but cannot finish the recursive.
The iterative is
function root = secanti(n, x0, x1, err)
while true
xi = (x0 * feval(n,x1) - x1 * feval(n, x0))/(feval(n,x1) - feval(n,x0));
if abs((xi-x1)/xi) < err
root = xi;
break
else
x0 = x1;
x1 = xi;
end
end
end
The one I have for recursive so far is
function xi = secantr(n, x0, x1, err)
xi = (x0 * feval(n,x1) - x1 * feval(n, x0))/(feval(n,x1) - feval(n,x0));
if abs((xi-x1)/xi) < err
return
end
x0 = x1;
x1 = xi;
secantr(n,x0,x1,err)
end
The recursive function keeps giving a different value from the iterative.
Is there any way to improve my recursive function? Thank you

Réponse acceptée

Jan
Jan le 14 Oct 2017
All you need is to catch the output:
xi = secantr(n,x0,x1,err);
^^^^
  1 commentaire
Sun Woo Kim
Sun Woo Kim le 15 Oct 2017
Thanks. I feel so dumb

Connectez-vous pour commenter.

Plus de réponses (1)

Kinza Shahzad
Kinza Shahzad le 1 Juin 2018
how to run these codes ? :/m having some errors

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by