sábado, 14 de abril de 2012

Bisección

El método de Bisección consiste en suponer dos valores para x, que forman un segmento, en dicho segmento se debe encontrar la raíz. Se divide el segmento por la mitad encontrando un nuevo valor para x, se repite este procedimiento hasta que dos valores consecutivos de x sean aproximadamente iguales.
A continuación el código en Python para este método.

##Entradas
ec = raw_input("Ecuacion: ")
x0 = float(raw_input("x0: "))
x1 = float(raw_input("x1: "))

##Metodo
f0 = eval(ec, {'x' : x0})
f1 = eval(ec, {'x' : x1})
tol = 0.00001

if f0 * f1 < 0.0:
    while abs((x1 - x0) / x1) > tol:
        R = (x0 + x1) / 2.0
        fR = eval(ec, {'x' : R})
        if f0 * fR < 0.0:
            x1 = R
            f1 = fR
        if fR * f1 < 0.0:
            x0 = R
            f0 = fR

##Salidas
if f0 * f1 < 0.0:
    print "La raiz es:", R
else:
    print "Valores iniciales malos"

No hay comentarios:

Publicar un comentario