Аннуитетный платеж (Аннуитет)
ToDo статьи:
- пример на ЯзыкR:
- таблица погашения
- проценты и основной долг в погашении
- визуализация принципа сложного процента
- убрать ненужные знаки умножения
- переписать определение
- общее описание
Содержание
Определение
- Аннуитет
- платеж по кредиту, равномерный в течение всего срока действия кредитного договора, позволяющий полностью покрыть сумму основного долга и начисленных процентов к последнему платежу по кредиту
Вывод формулы
Кредит с параметрами: величина кредита — рублей, номинальная процентая ставка — процентных пунктов, используются сложные проценты, срок — лет, ежемесячная капитализация процентов, равномерные (аннуитетные) платежи .
Необходимо рассчитать величину аннуитета .
Рассчитаем сначала величину эффективной ставки процента: и срок кредита в периодах погашения (в месяцах): .
На начала 0-го периода (факт выдачи кредита) заёмщик должен банку рублей, а на конец этого же периода заёмщик должен банку рублей.
В первом периоде заёмщик заплатит банку аннуитет и останется должен ему рублей (сумма оставшейся задолженности после первого платежа, т. е. на начало первого периода). Именно на эту сумму и будет начислять проценты банк (в соответствии с принципом сложного процента). В результате заёмщик к концу первого периода станет должен банку: .
На начало второго периода заёмщик будет должен , а к его концу .
В самом конце, в -ом периоде, после последнего платежа заёмщик полностью погасит как сумму основного долга, так и проценты (если доживёт --АтрашкевичАндрей):
Преобразуем это выражение для того, чтобы выразить из него искомую величину :
или
В больших скобках стоит геометрическая прогрессия, состоящая из членов, с первым членом и знаменателем . Напомним, что сумма первых членов геометрической прогрессии может быть вычислена по формуле .
Таким образом:
В итоге:
Пример кода на R
Пример: квартира в Сыктывкаре, стоимостью 3 млн. рублей. Первоначальный взнос составляет 20%, срок кредита — 20 лет, годовая ставка процента — 15% с ежемесячной капитализацией (начислением процентов каждый месяц по принципу сложных процентов).
#
aparment.price <- 3E6
initial.payment.rate <- 0.20
mortgage.amount <- aparment.price * (1 - initial.payment.rate)
#
nominal.rate <- 0.15
rate <- nominal.rate / 12
# число периодов погашения:
n.years <- 20 # срок в годах: m
n <- n.years * 12 # срок в месяцах: n
# функция, вычисляющая аннуитетный платеж в зависимости от:
# величины кредита: P,
# процентной ставки: i,
# срока кредита: n
CalculateAnnuity <- function(P, i, n) {
annuity <- (P * i * (1 + i) ** n)/((1 + i) ** n - 1)
return (annuity)
}
# в переменную monthly.annuity передадим значение аннуитетного платежа,
# соответствующего параметрам нашего примера, и выведем значение этой переменной
(monthly.annuity <- CalculateAnnuity(mortgage.amount, rate, n))
# составим график платежей
vec.dates <- seq(Sys.Date(), by = 'month', length = (n + 1))
vec.annuity <- rep(monthly.annuity, (n + 1))
vec.num.of.payment <- c(0:n)
df.pay.list <- data.frame(vec.dates, vec.annuity, vec.num.of.payment)
names(df.pay.list) <- c('Date of Payment', 'Annuity Payment', 'Number of Payment')
df.pay.list[[, 'Outstanding Amount Start']] <- NA
df.pay.list[[, 'Outstanding Amount Finish']] <- NA
for (i in 0:n){
if (i == 0) {
df.pay.list[[, 'Outstanding Amount Start']][[(i + 1)]] <- mortgage.amount
df.pay.list[[, 'Outstanding Amount Finish']][[(i + 1)]] <- mortgage.amount * (1 + rate)
} else {
df.pay.list[[, 'Outstanding Amount Start']][[(i + 1)]] <- (
df.pay.list[[, 'Outstanding Amount Finish']][[i]] - df.pay.list[[, 'Annuity Payment']][[(i + 1)]]
)
df.pay.list[[, 'Outstanding Amount Finish']][[(i + 1)]] <- (
df.pay.list[[, 'Outstanding Amount Start']][[(i + 1)]] * (1 + rate)
)
}
}
df.pay.list[[, 'Outstanding Amount Start']] <- round(df.pay.list[[, 'Outstanding Amount Start']], 2)
df.pay.list[[, 'Outstanding Amount Finish']] <- round(df.pay.list[[, 'Outstanding Amount Finish']], 2)
df.pay.list
КатегорияФинансоваяМатематика