Está en la página 1de 1

function [ matriz ] = secante (a,b,nmax,delta,tolerancia)

format long %Esta herramienta muestra todos los


resultados con la mayor cantidad de
decimales posible.
% a,b son dos puntos dentro del intervalo en
el que se va a trabajar para formar la linea
secante. Este intervalo se halló en la
búsqueda.
%Se utilizan los criterios de parada de
número máximo de iteraciones, delta y
tolerancia. El que primero se cumpla,
detiene el programa.
%Inicializadores
i=0;
m=delta+1;
error=tolerancia+1;
erroranterior=1;

while i<nmax & m>delta & error>tolerancia & funcion(b)~=funcion(a)


%Se utilizan los criterios para que el
programa continúe
i=i+1; %Aumenta el contador de las iteraciones
matriz(i,1)=i;

x=b-((funcion(b)*(b-a))/(funcion(b)-funcion(a)));
%Se consigue el nuevo punto con la
intersección entre la línea secante y el eje
x.
matriz(i,2)=x;

y=funcion(x); %Se evalúa la x en la función f(x) hasta que


dé cero o algún criterio de parada
interrumpa el programa.
matriz(i,3)=y;

m=abs(y); %Se nombra f(x) con 'm' para que sea


evaluado por el criterio de parada delta.

error=abs(x-b); %Se halla el error absoluto de las x


matriz(i,4)=error;

alpha=error/erroranterior^((1+sqrt(5))/2);
%Se halla la rapidez de convergencia.
matriz(i,5)=alpha;

erroranterior=error;
a=b; %'b' se convierte en 'a'
b=x; %'x' se convierte en 'b'
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.

endwhile
endfunction

También podría gustarte