Using Secant Method...issue with arctanx

5 visualizzazioni (ultimi 30 giorni)
Drake
Drake il 6 Ott 2013
Modificato: Matt J il 6 Ott 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

Risposta accettata

Matt J
Matt J il 6 Ott 2013
Modificato: Matt J il 6 Ott 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);

Più risposte (0)

Categorie

Scopri di più su Communications Toolbox in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by