En este ejercicio, utilizaremos el teorema de Bolzano que dice que si una función f real continua en un intervalo cerrado [a,b] con f(a) y f(b) de signos contrarios. Entonces existe al menos un punto c del intervalo abierto (a, b) con f(c) = 0.

En nuestro caso la funcion sera: $f(x) = x^b - a$

Donde a>1, b>1 y nuestro intervalo sera [0, a], pues con eso logramos que tengan distinto signo en cada extremo del intervalo

Fijese que la solucion será la raiz b-esima de a, y buscaremos la raiz dividiendo el intervalo por el punto medio de este y quedandonos con un nuevo intervalo factible, cosa que haremos hasta que el intervalo sea muy pequeño.


In [1]:
a = int(input("Ingrese a: "))


Ingrese a: 3

In [2]:
b = int(input("Ingrese b: "))


Ingrese b: 2

In [3]:
cotainf = 0
cotasup = a
fci = cotainf**b - a
iteraciones = 0

In [4]:
while (cotasup-cotainf) > 0.00000001:
    iteraciones += 1
    pmedio = (cotasup+cotainf)/2
    fpm = pmedio**b - a
    if fpm == 0:
        cotasup = pmedio
        cotainf = pmedio
    elif fci*fpm < 0:
        cotasup = pmedio
    else:
        cotainf = pmedio

In [5]:
print(iteraciones)


29

In [6]:
print(cotasup, cotainf, a**(1/b))


1.732050810009241 1.7320508044213057 1.7320508075688772