martes, 30 de marzo de 2010

Métodos numéricos - Método de la secante en matlab

ETIQUETAS ACADÉMICO
Este método se basa en la fórmula de Newton-Raphson, pero evita el cálculo de la derivada usando la siguiente aproximación:




%Método de la secante en matlab:

clc
clear

f='exp(-x)-log(x)';
f=inline(f);
x0=1;
x1=2;
xra=0;
xr=0;
xra=0;
tol=1;
i=1;
error_aprox=1;
error=0;

f1=f(x1);
f2=x0-x1;
f3=f(x0);
f4=f(x1);

xr=x1-(f1 * f2 / ( f3 - f4 ));

fprintf('It. X0 X1 Xr Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \n',i,x0,x1,xr,error);

while error_aprox >= 0.01,
xra=xr;
% x1=x0;
x0=xr;
%

f1=f(x1);
f2=x0-x1;
f3=f(x0);
f4=f(x1);

xr=x1-(f1 * f2 / ( f3 - f4 ));

%
error = abs((xr - xra) / xr);
error_aprox = error;

fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %11.7f \n',i,x0,x1,xr,error_aprox);
i=i+1;
end

1 comentario: