El método de la secante es un método que permite evaluar las raíces de funciones cuya derivada es difícil de calcular. En dichos casos, la derivada se puede aproximar mediante una diferencia finita dividida hacia atrás. Y se obtiene de este modo la siguiente fórmula iterativa.
Codigo para Octave:
%SECANTE
disp('METODO : SECANTE');
disp('por:');
disp('Carolina Perez Gaviria');
disp('Jennifer Olano Arrieta');
disp('Carlos Trujillo');
disp(' ');
format long
Xo=input('INDIQUE EL VALOR DONDE DESEA QUE COMIENCE LA BUSQUEDA DE RAICES: ');
X1=input('INGRESE EL SEGUNDO VALOR DONDE TERMINA LA BUSQUEDA DE RAICES: ');
TOL=input('INGRESE LA TOLERANCIA QUE USTED DESEA: ');
ITER=input('CANTIDAD MAXIMA DE ITERACIONES: ');
Fun=input('COLOQUE LA FUNCION ENTRE COMILLAS EN LA CUAL SE BUSCARA LA RAIZ = ','s');
F=inline (Fun);
Yo=F(Xo)
Y1=F(X1)
if Yo==0
fprintf('Xo ES RAIZ DE ESTA FUNCION: ');
else
DEN=y1-yo;
%DEN se utiliza para indicar el denominador
E=TOL+1;
cont=0;
T= [Xo, X1, Y1, E];
%T, es la matriz en la que se almacenan los resultados de cada una de las iteraciones que realiza el programa para ser finalmente entregados en una tabla.
while Y1~=0 & E>TOL& cont<ITER & DEN~=0
%While es el que permite que de manera repetitiva se ejecute mientras las condiciones sean verdaderas.
X2=X1-((Y1*(X1-Xo))/(Y1-Yo));
Y2=F(X2);
E=abs((X2-X1)/X2);
cont=cont+1;
Xo=X1;
Yo=Y1;
X1=X2;
Y1=Y2;
DEN=Y1-Yo;
T(cont,1)=cont;
T(cont,2)=Xo;
T(cont,3)=X1;
T(cont,4)=Y1;
T(cont,5)=E;
end
if Y1==0
fprintf('X1 es raiz: ');
else
if E<TOL
fprintf('X1 ES RAIZ CON UN VALOR DE %g y un error de %g : ',X1,E);
else
if DEN==0
fprintf('DENOMINADOR ES CERO : ');
else
fprintf('NUMERO MENOR DE ITERACIONES: ');
end
end
end
end
fprintf('interaciones Xo X1 Y1 Error relativo: ');
disp(T);
No hay comentarios:
Publicar un comentario