Ejemplo n.º 1
0
def brent(f, a, b, tol, maxItera):
    c = a
    n = 0
    arr = []
    while (abs(c - b) > tol * (abs(b) + 1)
           or ((n < maxItera) or (f(b) > tol))):
        n = n + 1
        x = 0
        if np.complex128((a) * f(b)) < 0:
            a, b, x = secante(f, a, b)
        else:
            if (iteraSecante(a, b, c, f) is True):
                a, b, x = secante(f, a, b)
            else:
                b = b - 0.5 * (c - b)
                c, b = metodobiseccion(f, c, b)
        if np.complex128(f(a) * f(b)) < np.complex128(0):
            c = a
        arr.append(b)

        if (np.complex128(f(b)) < tol):
            return (n, b, arr)
        if (type(b) == 'complex'):
            if (f(pausa.pausa(b[1])) == 0.0):
                return (n, b, arr)
        else:
            if (f(pausa.pausa(b)) == 0.0):
                return (n, b, arr)

    return (n, b, arr)
Ejemplo n.º 2
0
def events(tecla, presionar):
    playing = True
    running = True
    for event in range(5):
        if tecla == "q":
            if playing:
                playing = False
            running = False
            return "salir del juego"
        if presionar == "si":
            if tecla == "barra_espaciadora":
                return "saltar"
            if tecla == "p":
                return "juego pausado"
                e = pausa.pausa("c", presionar)
                if e == "salir al menu":
                    playing = False
                    running = False
                    return "salir al menu"
Ejemplo n.º 3
0
    itera = brent(f, -2, 2, i, 100)
    x = np.arange(-2, 2, 4 / len(numeros))
    st = steffensen(f, -2, i)
    bis = biseccion(f, -2, 2, i)

    plt.plot(x, numeros)
    plt.title("Método de Brent con " + str(i))
    plt.xlabel("x")
    plt.ylabel("F(x)")
    plt.show()
    print("Metodo de Brent")
    print("Iteraciones: ", itera[0])
    print("Resulado: ", itera[1])
    print(
        "Resultado expresado en fracción (en caso de ser un decimal periodico): ",
        pausa.pausa(itera[1]))
    print("Evaluado en f(x): ", f(itera[1]))
    print()
    print("Con el metodo de Steffensen: ")
    print("Resultado: ", st[0])
    print("# de iteraciones: ", st[1])
    print("Error: ", (abs(st[0] - itera[1]) / (itera[1])) * 100)
    print()
    print("Comparado con el metodo de bisección:")
    print("Resultado: ", bis[0])
    print("# de iteraciones: ", bis[1])
    print("Error: ", (abs(bis[0] - itera[1]) / (itera[1])) * 100)

    barrasBr.append(itera[0])
    barrasSt.append(st[1])
    barrasBi.append(bis[1])
Ejemplo n.º 4
0
 def test_salir_al_menu(self):
     tecla = "x"
     presionar = "si"
     output = pausa.pausa(tecla, presionar)
     self.assertEqual(output, "salir al menu", "Error al salir al menu")
Ejemplo n.º 5
0
 def test_salir_juego(self):
     tecla = "q"
     presionar = "si"
     output = pausa.pausa(tecla, presionar)
     self.assertEqual(output, "salir juego", "Error al salir del juego")
Ejemplo n.º 6
0
 def test_continuar_juego(self):
     tecla = "c"
     presionar = "si"
     output = pausa.pausa(tecla, presionar)
     self.assertEqual(output, "continuar", "Error al continuar juego")