###############################################
## Programa annuity
###############################################
## N = número de pagos periódicos
## I = tasa de interés efectiva por periodo 0<I<1
###############################################
annuity <- function(N,I){
V <- 1/(1+I)
RES <- (1-V^N)/I
RES
}
## EJEMPLO
annuity(12,0.05)
## [1] 8.863252
###############################################
## Programa anualidades (no anticipadas)
###############################################
## N = número de pagos periódicos
## I = tasa de interés efectiva por periodo 0<I<1
## VP = valor presente
## VF = valor futuro
## PMT = pago periódico
###############################################
anualidades <- function(N,I,PMT,VP,VF = 0){
if(N == 0 && VF == 0){
A <- 1-I*VP/PMT
B <- 1/(1+I)
RES <- log(A)/log(B)
}
if(N == 0 && VP == 0){
A <- 1+I*VF/PMT
B <- 1+I
RES <- log(A)/log(B)
}
if(I == 0 && VF == 0){
C <- numeric(N)
for(k in 0:(N-1)){
C[k+1] <- (PMT/VP)*choose(N,(k+1))-choose(N,k)
}
C <- c(C,-1)
RES <- abs(polyroot(C)[1])
}
if(I == 0 && VP == 0){
C <- numeric(N)
C[1] <- N-VF/PMT
for(k in 1:(N-1)){
C[k+1] <- choose(N,(k+1))
}
RES <- abs(polyroot(C)[1])
}
if(PMT == 0 && VF == 0){
RES <- VP/annuity(N,I)
}
if(PMT == 0 && VP == 0){
VFANN <- annuity(N,I)*(1+I)^N
RES <- VF/VFANN
}
if(VP == 'x'){
RES <- PMT*annuity(N,I)
}
if(VF == 'x'){
RES <- PMT*annuity(N,I)*(1+I)^N
}
RES
}
## Ejemplos
PMT <- 50
N <- 24
I <- 0.03534702
#Valor presente:
anualidades(N,I,PMT,'x',0)
## [1] 800
#Valor futuro:
anualidades(N,I,PMT,0,'x')
## [1] 1841.418
#Pago por periodo si se conoce el valor futuro:
anualidades(N,I,0,0,1841.4183)
## [1] 50
#Pago por periodo si se conoce el valor presente:
anualidades(N,I,0,800,0)
## [1] 50
#Número de pagos si se conoce el valor futuro:
anualidades(0,I,PMT,0,1841.4183)
## [1] 24
#Número de pagos si se conoce el valor presente:
anualidades(0,I,PMT,800,0)
## [1] 24
#Tasa de interés efectiva por periodo si se conoce el valor futuro:
anualidades(N,0,PMT,0,1841.4183)
## [1] 0.03534701
#Tasa de interés efectiva por periodo si se conoce el valor presente:
anualidades(N,0,PMT,800,0)
## [1] 0.03534702
#Tasa de interés anual efectiva suponiendo que los pagos son mensuales:
I_mensual <- anualidades(N,0,PMT,800,0)
I_anual_efectiva <- (1+I_mensual)^12-1
I_anual_efectiva
## [1] 0.5171595
#Tasa de interés mensual si se conoce la tasa de interés anual efectiva:
I_anual_efectiva <- 0.0625
I_mensual <- (1+I_anual_efectiva)^(1/12)-1
I_mensual
## [1] 0.005064835
#¿Cuánto genera de interés un millón con la tasa I_mensual?
rendim_mensual <- 1000000*(I_mensual)
rendim_mensual
## [1] 5064.835
anualidades(12,I_mensual,rendim_mensual,0,'x')
## [1] 62500
1000000*I_anual_efectiva
## [1] 62500
No hay comentarios:
Publicar un comentario