viernes, 4 de diciembre de 2009

Programa 2.4 (Localizacion aproximada de raices - pagina 75).

%Programa 2.4 (Localizacion aproximada de raices - pagina 75).
% Estimacion aproximada de la localizacion de una raiz de la ecuacion
% f(x)=0 en el intervalo [a,b] mediante el uso de puntos de muestra equiespaciados
% (x,f(x)) y de acuerdo con los siguientes criterios:
% i) (y)(y) < 0, o
% ii) y <> - y)(y - y) < 0
% Esto es, o bien f(x) y f(x) tienen distinto signo, o bien f(x) es pequeño
% y la pendiente de la curva y=f(x) cambia de signo cerca de (x,f(x)).
%
%
%Sintaxis
% approot (f,x,epsilon)
%
%Entrada
% - f es la funcion, entrada como cadena de caracteres
% - x es el vector de abscisas
% - epsilon es la tolerancia
%Resultados
% - R es el vector de raices aproximadas


Y=eval(f);
yrange = max(Y)-min(Y);
epsilon2 = yrange*epsilon;
n=length(x);
m=0;
x(n+1)=x(n);
Y(n+1)=Y(n);

for k=2:n,
if Y(k-1)*Y(k) <= 0,
m=m+1;
R(m)=(x(k-1)+x(k))/2
end
s=(Y(k)-Y(k-1))*(Y(k+1)-Y(k));
if (abs(Y(k)) < epsilon2) & (s <= 0),
m=m+1;
R(m)=x(k)
end
end

No hay comentarios:

Publicar un comentario