1. Faro

Nivel 4 · Desafío final: ¿qué podemos pagar?

La solicitud

De Laura Bennett, Directora de Finanzas

“Antes de la reunión del consejo quiero la versión de escenarios, no un solo número. ¿Cuál es el préstamo más grande que podemos asumir con $2,000 al mes? Para las estanterías, ¿cuál es la tasa más alta que podemos aceptar si la cuota debe quedar por debajo de $950? Y una tabla pequeña de cuotas para varias tasas y plazos.”

Tu objetivo

Paso 1 de 3. Asigna a result el préstamo más grande, redondeado a 2, cuya cuota mensual sea como máximo de $2,000 al 6% anual a 5 años de pagos mensuales.

  • Guarda un número en resultpendiente

Paso 1 · tu código

Python

Cargando el editor…

    ResultadoPresiona Ejecutar para ver el tuyo

    Mote revisa tu resultado

    Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

    Paso 2 · tu código

    Python

    Cargando el editor…

      ResultadoPresiona Ejecutar para ver el tuyo

      Mote revisa tu resultado

      Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

      Paso 3 · tu código

      Python

      Cargando el editor…

        ResultadoPresiona Ejecutar para ver el tuyo

        Mote revisa tu resultado

        Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

        La lección

        Las preguntas de escenarios hipotéticos ejecutan la fórmula al revés

        Hasta ahora las entradas eran conocidas y la cuota era la respuesta. Las preguntas de planificación le dan la vuelta: la cuota la fija un presupuesto, y la incógnita es el préstamo, la tasa o el plazo. Excel ofrece Buscar objetivo (Goal Seek) para esto: poner una celda en un valor objetivo cambiando otra celda. Saber cómo funciona te permite hacer lo mismo en Python, y comprobar una hoja de cálculo cuando la respuesta se ve rara.

        Cuando hay una forma cerrada

        El monto del préstamo se puede despejar directamente. Reordenando la fórmula de la cuota:

        pv = cap * (1 - (1 + r) ** -n) / r       # 103,451.12 for $2,000 at 6% over 60 months

        Esta es la función PV de Excel. Cuando una fórmula se puede invertir, inviértela: es exacta e instantánea.

        Cuando no la hay: bisección

        La tasa no se puede aislar en la fórmula de la cuota. Buscar objetivo lo resuelve probando valores y acercándose. La versión más sencilla y fiable es la bisección: empieza con un rango que seguramente contiene la respuesta, prueba el medio y quédate con la mitad donde debe estar la respuesta.

        lo, hi = 0.0001, 0.5
        while hi - lo > 1e-9:
            mid = (lo + hi) / 2
            if pmt(mid / 12, 60, 48_000) > 950:
                hi = mid
            else:
                lo = mid

        Funciona porque la cuota siempre sube con la tasa. Cada paso reduce el rango a la mitad, así que 30 pasos llevan un intervalo de 0.5 por debajo de una milmillonésima. El mismo bucle encuentra un precio de equilibrio, el volumen de ventas que cubre un costo fijo o el descuento que mantiene un margen.

        Tablas de escenarios

        Una respuesta invita a preguntar “¿y si la tasa es más alta?”. Respóndela antes de que te la hagan, con una cuadrícula de entradas y salidas. Constrúyela como filas y luego reorganízala si quieres una cuadrícula:

        table = pd.DataFrame(rows)
        table.pivot(index="rate", columns="months", values="payment")

        Errores comunes

        • Intercambiar los límites de la bisección. Si una cuota demasiado alta mueve lo, el bucle deriva hacia el borde del rango y devuelve 0.5 o 0.0001. Comprueba la respuesta volviéndola a sustituir.
        • Un rango que no contiene la respuesta. La bisección solo estrecha; no puede encontrar lo que no está entre lo y hi.
        • Redondear dentro del bucle. Redondea solo la respuesta final.
        • Un escenario presentado como seguro. Muestra también los vecinos.

        Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.