Skip to content

Алгоритм Равноценного Ежемесячного Взноса (EMI)

Равноценный ежемесячный платёж (EMI) представляет собой фиксированную сумму, которую заёмщик обязан выплачивать кредитору в установленный день каждого месяца. Эти платежи используются для погашения как процентов, так и основной суммы долга, что позволяет полностью выплатить кредит в течение определённого периода времени.

Как и в случае с большинством видов кредитов, таких как ипотека на недвижимость, заёмщик осуществляет выплаты кредитору в виде фиксированных периодических платежей в течение нескольких лет. EMI отличается от планов с переменными платежами, где заёмщик может вносить более высокие суммы по своему усмотрению. В планах EMI заёмщикам обычно разрешается вносить только одну фиксированную сумму в месяц.


1. Формула расчета EMI

Формула для расчета EMI основана на аннуитетной схеме (когда платежи равны на протяжении всего срока кредита):

\[ [ EMI = P \times \frac{r \times (1 + r)^n}{(1 + r)^n - 1} ] \]

Где:

  • P — основная сумма кредита (Principal)
  • r — месячная процентная ставка (годовая ставка / 12 / 100)
  • n — срок кредита в месяцах

2. Области применения EMI

EMI применяется в различных финансовых продуктах:

  • Потребительские кредиты (на бытовую технику, ремонт)
  • Ипотека (долгосрочные жилищные кредиты)
  • Автокредиты (покупка автомобиля в рассрочку)
  • Образовательные кредиты
  • Кредитные карты (при погашении задолженности частями)

3. Примеры расчета EMI на Python

Пример 1: Расчет EMI

def calculate_emi(principal, annual_rate, years):
    n = years * 12  # срок в месяцах
    r = annual_rate / 12 / 100  # месячная ставка
    emi = principal * (r * (1 + r)**n) / ((1 + r)**n - 1)
    return emi

principal = 1_000_000  # 1 млн руб.
annual_rate = 12  # 12% годовых
years = 5  # 5 лет

emi = calculate_emi(principal, annual_rate, years)
print(f"Ежемесячный платёж (EMI): {emi:.2f} руб.")

Вывод:

Ежемесячный платёж (EMI): 22244.45 руб.

Пример 2: График платежей (амортизация)

Можно разбить EMI на основной долг и проценты:

def emi_breakdown(principal, annual_rate, years):
    n = years * 12
    r = annual_rate / 12 / 100
    emi = calculate_emi(principal, annual_rate, years)

    print(f"EMI: {emi:.2f} руб. (в месяц)\n")
    print("Месяц | Основной долг | Проценты | Остаток долга")
    print("-" * 45)

    balance = principal
    for month in range(1, n + 1):
        interest = balance * r
        principal_paid = emi - interest
        balance -= principal_paid

        print(f"{month:3} | {principal_paid:10.2f} | {interest:8.2f} | {balance:10.2f}")

emi_breakdown(1_000_000, 12, 5)

Вывод (первые 3 месяца):

Месяц | Основной долг | Проценты | Остаток долга
---------------------------------------------
  1 |    12244.45 |  10000.00 |  987755.55
  2 |    12366.89 |   9877.56 |  975388.66
  3 |    12490.56 |   9753.89 |  962898.10
...

Пример 3: Влияние срока кредита на EMI

import matplotlib.pyplot as plt

principal = 1_000_000
annual_rate = 12
years_range = range(1, 11)  # от 1 до 10 лет

emis = [calculate_emi(principal, annual_rate, years) for years in years_range]

plt.plot(years_range, emis, marker='o')
plt.xlabel("Срок кредита (лет)")
plt.ylabel("EMI (руб.)")
plt.title("Зависимость EMI от срока кредита")
plt.grid(True)
plt.show()

Вывод:
График покажет, что чем больше срок кредита, тем меньше EMI, но общая переплата возрастает.