function [ matriz ] = rfalsa (a,b,nmax,delta,tolerancia) format long

Transcripción

function [ matriz ] = rfalsa (a,b,nmax,delta,tolerancia) format long
function [ matriz ] = rfalsa (a,b,nmax,delta,tolerancia)
format long
%Esta herramienta muestra todos los resultados con la mayor
cantidad de decimales posible.
% a,b es el intervalo en el que se va a trabajar luego de
haber realizado 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;
q=a;
%Se hace solo para la primera vez que el programa haga un
ciclo; esto garantiza que el error no sea cero y el programa
no termine por el criterio de parada tolerancia.
while i<nmax & m>delta & error>tolerancia
%Se utilizan los criterios para que el programa
continúe.
i=i+1;
matriz(i,1)=i;
%Aumenta el contador de las iteraciones
x=b-(funcion(b)*(b-a))/(funcion(b)-funcion(a));
matriz(i,2)=x;
%Se divide el intervalo en el punto donde
la recta que une a y b intersecta el eje x
y=funcion(x);
matriz(i,3)=y;
%Se evalúa f(x)
m=abs(y);
%Se nombra f(x) con 'm' para que sea
evaluado por el criterio de parada delta.
error=abs(x-q);
matriz(i,4)=error;
%Se halla el error absoluto de las x
alpha=error/erroranterior;
%Se halla la rapidez de convergencia.
matriz(i,5)=alpha;
%MOSTRANDO LA MATRIZ, EL ÚLTIMO VALOR DE X ES LA SOLUCION.
if funcion(a)*funcion(x)<0
b=x;
else
a=x;
endif
erroranterior=error;
q=x;
endwhile
endfunction
%Condicionales para verificar que haya
cambio de signo entre los dos extremos del
nuevo intervalo en estudio.

Documentos relacionados