ANUALIDADES ANTICIPADAS EN R Y PYTHON

EJERCICIO 1 EN R Y PYTHON

  1. Hallar el Valor Futuro y el Valor Actual de la anualidad anticipada: \(\$ 1500\) trimestrales, durante 7 años al \(7 \%\) convertible trimestralmente.

\[ \text { R: } \$ 54.544,94 ; \$ 33.557,59 \]

import numpy_financial as npf

# Parámetros
pmt = 1500  # Cuota trimestral
i = 0.07 / 4  # Tasa trimestral
n = 7 * 4     # 28 períodos

# Valor Futuro (Anualidad Anticipada)
fv_due = npf.fv(i, n, -pmt, 0, when=1)  # when=1: pagos al inicio del período
print(f"Valor Futuro: ${fv_due:.2f}")
Valor Futuro: $54544.94
# Valor Actual (Anualidad Anticipada)
pv_due = npf.pv(i, n, -pmt, 0, when=1)  # when=1: pagos al inicio del período
print(f"Valor Actual: ${pv_due:.2f}")
Valor Actual: $33557.59

PROBLEMA 2 EN R Y PYTHON

  1. Hallar el Valor Futuro y el Valor Actual de la anualidad anticipada: \(\$ 2500\) anuales durante 7 años al \(8 \%\) efectivo anual. R: $ 24.091,.57; $ 14.057,20
import numpy_financial as npf

pmt = 2500
rate = 0.08
n = 7

# Valor Futuro (Anualidad Anticipada)
fv_due = npf.fv(rate, n, -pmt, 0, when=1)
print(f"Valor Futuro: ${fv_due:.2f}")
Valor Futuro: $24091.57
# Valor Actual (Anualidad Anticipada)
pv_due = npf.pv(rate, n, -pmt, 0, when=1)
print(f"Valor Actual: ${pv_due:.2f}")
Valor Actual: $14057.20
# Instalar y cargar FinCal
#install.packages("FinCal")
library(FinCal)
Warning: package 'FinCal' was built under R version 4.4.3
# Datos
R <- 2500       # Pago anual
n <- 7          # Años
i <- 0.08       # Tasa de interés

# Valor Futuro (Anualidad Anticipada)
VF <- fv.annuity(
  r = i,        # Tasa de interés
  n = n,        # Número de períodos
  pmt = -R,     # Pago (negativo por ser egreso)
  type = 1      # type = 1 para anualidad anticipada
)
print(paste("Valor Futuro: $", round(VF, 2)))
[1] "Valor Futuro: $ 24091.57"
# Valor Actual (Anualidad Anticipada)
VA <- pv.annuity(
  r = i,        # Tasa de interés
  n = n,        # Número de períodos
  pmt = -R,     # Pago (negativo por ser egreso)
  type = 1      # type = 1 para anualidad anticipada
)
print(paste("Valor Actual: $", round(VA, 2)))
[1] "Valor Actual: $ 14057.2"

PROBLEMA 3 EN R Y PYTHON

  1. Los dineros de un contrato de arrendamiento por un año, que empieza hoy, con canon de \(\$ 3000\) mensuales anticipados, se depositan en una corporación que ofrece el \(10 \%\) convertible mensualmente. Hallar el acumulado obtenido una vez vencido el contrato. R: $ 38.010,84
# Instalar y cargar FinCal
#install.packages("FinCal")
library(FinCal)

# Datos
R <- 3000
n <- 12
i <- 0.10 / 12

# Calcular Valor Futuro (Anualidad Anticipada)
VF <- fv.annuity(r = i, n = n, pmt = -R, type = 1)
print(paste("Valor Futuro: $", round(VF, 2)))
[1] "Valor Futuro: $ 38010.84"
import numpy_financial as npf

# Datos
R = 3000
n = 12
i = 0.10 / 12

# Calcular Valor Futuro (Anualidad Anticipada)
VF = npf.fv(rate=i, nper=n, pmt=-R, pv=0, when='begin')
print(f"Valor Futuro: ${VF:.2f}")
Valor Futuro: $38010.84

PROBLEMA 4 EN R Y PYTHON

  1. Una persona ahorra \(\$ 1000\) mensuales empezando hoy y haciéndolo en 2 años en una institución financiera que reconoce el \(12 \%\) capitalizable mensualmente para el primer año y el \(13 \%\) capitalizable mensualmente para el segundo año. Cuál es el acumulado al final de los 24 meses.

R: $ 27.456,92

# Primer año: 12% capitalizable mensualmente
r1 = 0.12 / 12
n1 = 12
vf1 = 1000 * (( (1 + r1)**n1 - 1 ) / r1 ) * (1 + r1)
# Reinvertir vf1 al 13% durante 12 meses
vf1_total = vf1 * (1 + 0.13/12)**12

# Segundo año: 13% capitalizable mensualmente
r2 = 0.13 / 12
n2 = 12
vf2 = 1000 * (( (1 + r2)**n2 - 1 ) / r2 ) * (1 + r2)

total = vf1_total + vf2
print(round(total, 2))  # Resultado: 27456.92
27456.92
import numpy_financial as npf

# Datos
R = 1000
n1 = 12  # Primer año
n2 = 12  # Segundo año
i1 = 0.12 / 12  # Tasa mensual primer año
i2 = 0.13 / 12  # Tasa mensual segundo año

# --- Primer Año ---
# Valor Futuro de los pagos del primer año (anualidad anticipada)
vf1 = npf.fv(rate=i1, nper=n1, pmt=-R, pv=0, when='begin')

# Reinvertir vf1 durante el segundo año al 13%
vf1_total = vf1 * (1 + i2)**n2

# --- Segundo Año ---
# Valor Futuro de los pagos del segundo año (anualidad anticipada)
vf2 = npf.fv(rate=i2, nper=n2, pmt=-R, pv=0, when='begin')

# --- Total Acumulado ---
vf_total = vf1_total + vf2
print(f"Valor Acumulado: ${vf_total:.2f}")
Valor Acumulado: $27456.92

PROBLEMA 5 EN R Y PYTHON

  1. Calcular el valor de contado de una propiedad vendida a 10 años plazo con pagos de \(\$ 3000\) trimestrales por trimestre anticipado; si la tasa de interés del \(12 \%\) convertible trimestralmente. R: $ $71.424,65
# Instalar y cargar FinCal
#install.packages("FinCal")
library(FinCal)

# Datos
R <- 3000
n <- 40        # 10 años * 4 trimestres
i <- 0.12 / 4 # Tasa trimestral

# Valor Actual (Anualidad Anticipada)
VA <- pv.annuity(r = i, n = n, pmt = -R, type = 1)
print(paste("Valor de Contado: $", round(VA, 2)))
[1] "Valor de Contado: $ 71424.65"
import numpy_financial as npf

# Datos
R = 3000
n = 40        # 10 años * 4 trimestres
i = 0.12 / 4 # Tasa trimestral

# Valor Actual (Anualidad Anticipada)
VA = npf.pv(rate=i, nper=n, pmt=-R, when='begin')
print(f"Valor de Contado: ${VA:.2f}")
Valor de Contado: $71424.65

PROBLEMA 6 EN R Y PYTHON

  1. Un equipo puede ser adquirido mediante \(\$ 150\) de cuota inicial y \(\$ 150\) mensuales, por los próximos 12 meses; suponiendo intereses al \(7 \%\) convertible mensualmente, cual es el valor de contado del equipo?

R: $1.883,57

# Instalar y cargar FinCal
#install.packages("FinCal")
library(FinCal)

# Datos
down_payment <- 150
R <- 150
n <- 12
i <- 0.07 / 12

# Valor Actual de los pagos mensuales (Anualidad Ordinaria)
VA <- pv.annuity(r = i, n = n, pmt = -R, type = 0)

# Valor de Contado Total
total_value <- down_payment + VA
print(paste("Valor de Contado: $", round(total_value, 2)))
[1] "Valor de Contado: $ 1883.57"
import numpy_financial as npf

# Datos
down_payment = 150
R = 150
n = 12
i = 0.07 / 12

# Valor Actual de los pagos mensuales (Anualidad Ordinaria)
VA = npf.pv(rate=i, nper=n, pmt=-R, when='end')

# Valor de Contado Total
total_value = down_payment + VA
print(f"Valor de Contado: ${total_value:.2f}")
Valor de Contado: $1883.57

PROBLEMA 7

  1. Una persona recibe tres ofertas por la venta de su propiedad: (a) \(\$ 500000\) de contado, (b) \(\$ 300000\) de contado y \(\$ 60000\) semestralmente durante 2 años, (c) \(\$ 25000\) por trimestre anticipado durante 3 años y un pago de \(\$ 320000\) al finalizar el cuarto año; Que oferta debe preferir si la tasa nominal de interés es del \(8 \%\), capitalizable de acuerdo con la transacción.

R: La segunda oferta.

# Instalar y cargar FinCal
install.packages("FinCal")
Warning: package 'FinCal' is in use and will not be installed
library(FinCal)

# Datos generales
tasa_nominal <- 0.08

# --- Oferta (a): $500,000 de contado ---
VP_a <- 500000

# --- Oferta (b): $300,000 de contado y $60,000 semestralmente durante 2 años ---
down_payment_b <- 300000
R_b <- 60000
n_b <- 4  # 2 años * 2 semestres
i_b <- tasa_nominal / 2  # Tasa semestral

# Valor Presente de los pagos semestrales (anualidad ordinaria)
VA_b <- pv.annuity(r = i_b, n = n_b, pmt = -R_b, type = 0)

# Valor Presente Total
VP_b <- down_payment_b + VA_b

# --- Oferta (c): $25,000 trimestral anticipado durante 3 años y $320,000 al final del cuarto año ---
R_c <- 25000
n_c_trimestres <- 12  # 3 años * 4 trimestres
i_c_trimestral <- tasa_nominal / 4  # Tasa trimestral

# Valor Presente de los pagos trimestrales anticipados (anualidad anticipada)
VA_c_trimestres <- pv.annuity(r = i_c_trimestral, n = n_c_trimestres, pmt = -R_c, type = 1)

# Pago único al final del cuarto año
FV_c_pago_unico <- 320000
n_c_pago_unico <- 16  # 4 años * 4 trimestres

# Valor Presente del pago único
VP_c_pago_unico <- FV_c_pago_unico / (1 + i_c_trimestral)^n_c_pago_unico

# Valor Presente Total
VP_c <- VA_c_trimestres + VP_c_pago_unico

# Mostrar resultados
cat("Valor Presente de la oferta (a): $", round(VP_a, 2), "\n")
Valor Presente de la oferta (a): $ 5e+05 
cat("Valor Presente de la oferta (b): $", round(VP_b, 2), "\n")
Valor Presente de la oferta (b): $ 517793.7 
cat("Valor Presente de la oferta (c): $", round(VP_c, 2), "\n")
Valor Presente de la oferta (c): $ 502773.9 
# Determinar la mejor oferta
mejor_oferta <- ifelse(VP_b > VP_c & VP_b > VP_a, "Oferta (b)",
                        ifelse(VP_c > VP_a, "Oferta (c)", "Oferta (a)"))
cat("\nLa mejor oferta es:", mejor_oferta)

La mejor oferta es: Oferta (b)
import numpy_financial as npf

# Datos generales
tasa_nominal = 0.08

# --- Oferta (a): $500,000 de contado ---
VP_a = 500000

# --- Oferta (b): $300,000 de contado y $60,000 semestralmente durante 2 años ---
down_payment_b = 300000
R_b = 60000
n_b = 4  # 2 años * 2 semestres
i_b = tasa_nominal / 2  # Tasa semestral

# Valor Presente de los pagos semestrales (anualidad ordinaria)
VA_b = npf.pv(rate=i_b, nper=n_b, pmt=-R_b, when='end')

# Valor Presente Total
VP_b = down_payment_b + VA_b

# --- Oferta (c): $25,000 trimestral anticipado durante 3 años y $320,000 al final del cuarto año ---
R_c = 25000
n_c_trimestres = 12  # 3 años * 4 trimestres
i_c_trimestral = tasa_nominal / 4  # Tasa trimestral

# Valor Presente de los pagos trimestrales anticipados (anualidad anticipada)
VA_c_trimestres = npf.pv(rate=i_c_trimestral, nper=n_c_trimestres, pmt=-R_c, when='begin')

# Pago único al final del cuarto año
FV_c_pago_unico = 320000
n_c_pago_unico = 16  # 4 años * 4 trimestres

# Valor Presente del pago único
VP_c_pago_unico = FV_c_pago_unico / (1 + i_c_trimestral)**n_c_pago_unico

# Valor Presente Total
VP_c = VA_c_trimestres + VP_c_pago_unico

# Mostrar resultados
print(f"Valor Presente de la oferta (a): ${VP_a:.2f}")
Valor Presente de la oferta (a): $500000.00
print(f"Valor Presente de la oferta (b): ${VP_b:.2f}")
Valor Presente de la oferta (b): $517793.71
print(f"Valor Presente de la oferta (c): ${VP_c:.2f}")
Valor Presente de la oferta (c): $502773.86
# Determinar la mejor oferta
mejor_oferta = "Oferta (b)" if VP_b > VP_c and VP_b > VP_a else \
               "Oferta (c)" if VP_c > VP_a else "Oferta (a)"
print(f"\nLa mejor oferta es: {mejor_oferta}")

La mejor oferta es: Oferta (b)