Using Secant Method...issue with arctanx

5 vues (au cours des 30 derniers jours)
Drake
Drake le 6 Oct 2013
Modifié(e) : Matt J le 6 Oct 2013
I'm using secant method, I've done previous problems with the same setup of x2 = ..., but when I'm using arctan(x) as the function it tells me there is an error with the x2 = ... line (inside for loop). I have no idea why.
f = @(x) arctan(x);
format long
maxN = 10;
x0 = 1;
x1 = -0.5;
r = 0; %know r=0 in advance
Err = .0000001; %max error
for i = 1:maxN
x2 = x1 - f(x1)*(x1-x0)/(f(x1)-f(x0))
en1 = r - x2; %e_n+1
en = r - x1; %e_n
enm1 = r - x0; %e_n-1
ratio = en1/(en*enm1)
if abs((x2-x1)/x1) < Err
r2 = x2; %root
f(r2)
break
end
x1 = x0
x0 = x2
end
  1 commentaire
Walter Roberson
Walter Roberson le 6 Oct 2013
What is the error message?

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 6 Oct 2013
Modifié(e) : Matt J le 6 Oct 2013
MATLAB has no function called "arctan". You really want
f=@atan;
Also, instead of
x1 = x0
x0 = x2
I think you want
[x1,x0]=deal(x2,x1);

Plus de réponses (0)

Catégories

En savoir plus sur Communications Toolbox dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by