Using Secant Method...issue with arctanx

5 views (last 30 days)
Drake
Drake on 6 Oct 2013
Edited: Matt J on 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

Accepted Answer

Matt J
Matt J on 6 Oct 2013
Edited: Matt J on 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);

More Answers (0)

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!