viernes, 4 de diciembre de 2009

Programa 2.2 (Metodo de biseccion - pagina 65).

%Programa 2.2 (Metodo de biseccion - pagina 65). Aproximacion a una raiz de la
% ecuacion f(x)=0 en el intervalo [a,b]. Puede usarse solo si f(x) es continua
% y f(a) y f(b) tienen distinto signo.
%
%
%Sintaxis
% bisect(f,a,b,delta)
%
%Datos
% - f es la funcion, introducida como una cadena de caracteres 'f'
% - a y b son el extremo izquierdo y el extremo derecho
% - delta es la tolerancia
%Resultados
% - c es el cero
% - yc=f(c)
% - err es el error estimado de la aproximacion a c


x=a
ya=eval(f)
x=b
yb=eval(f)
if ya*yb > 0,break,end
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1:max1
c=(a+b)/2;
x=c
yc=eval(f)
if yc==0
a=c;
b=c;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
if b-a < delta, break,end
end

c=(a+b)/2;
err=abs(b-a);
x=c
yc=eval(f)

No hay comentarios:

Publicar un comentario