I'm trying to solve a problem regarding the application of the secant numerical method.
My MATLAB code is the following
function [f]= fsecante(t)
R=24.7;
L=2.74;
C=0.000251;
P1=-0.5*(R/L)*t;
P2=t*sqrt(1/(L*C)-(R^2)/(4*L^2));
f=2*exp(P1).*cos(P2)-1;
end
%iteradas iniciais%
x0=0;
x1=10^-4;
wanted=10^-8;
f0=fsecante(x0);
f1=fsecante(x1);
iter=0;
error=wanted;
while(erro>=wanted)
F=(x1-x0)/(f1-f0);
xn=x1-F*f1
error=abs(F*f1);
iter=iter+1;
x0=x1;
x1=xn;
f0=fsecante(x0);
f1=fsecante(x1);
end
I used a calculator to get an idea about the value I should obtain which is 0.152652376 (approximately) However using the method in MATLAB, it converges to 1.4204 which is way over what we should get. What am I doing wrong? My guess is that I have my error variable wrong in the cycle? I also find strange that my solution goes of the set [0,1] where the solution should be. Can someone give me some clarification about what am I missing?
Change the initial point
x1 = 1e-3This is what I got