Мне нужно иметь возможность рассчитывать годовую процентную ставку таким же образом, как EXCEL делает это в своей функции под названием RATE. Однако я нигде не могу найти основную математику.

Желательно, чтобы я реализовал его на Ruby или Python.

3 ответа3

2

питон

numpy.rate() вычисляет процентную ставку за период.

rate(nper, pmt, pv, fv[, when, guess, tol, ...])    
1

Вы можете использовать библиотеку Exonio в Ruby:

https://github.com/Noverde/exonio

Как это:

Exonio.rate(number_of_periods, payment_per_period, present_value)

0

Вот очень простой пример в VBA:

Function MyRATE(nper As Integer, pmt As Double, pv As Double, Optional fv As Double = 0, _
                              Optional PaymentEnd As Integer = 0, Optional guess As Double = 0.1)
    Dim a As Double, b As Double, c As Double ' coefficients of the equation
    Dim R As Double, RTmp As Double, i As Integer

    ' Initialize coefficients and R
    R = 1 + guess
    a = (pmt * (1 - PaymentEnd) - pv) / (pv + pmt * PaymentEnd)
    b = (fv - pmt * PaymentEnd) / (pv + pmt * PaymentEnd)
    c = (-pmt * (1 - PaymentEnd) - fv) / (pv + pmt * PaymentEnd)

    ' Iterate
    For i = 1 To 20
        RTmp = R - (R ^ (nper + 1) + a * R ^ nper + b * R + c) / ((nper + 1) * R ^ nper + a * nper * R ^ (nper - 1) + b)
        If Abs(RTmp - R) < 0.0000001 Then Exit For
        R = RTmp
    Next i

    If i <= 20 Then
        MyRATE = RTmp - 1
    Else
        MyRATE = "N/A" ' Must try another guess
    End If
End Function

Чтобы использовать функцию (в ячейке рабочего листа):

ПОЖАЛУЙСТА, отметьте как знак минус третьего аргумента, так и умножение на 12.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .