Мне нужна формула для определения плана выплаты долга, где известны: количество платежей, сумма за платеж и основная сумма и необходимо выяснить, что представляет интерес ставка будет от этого. Я рефакторинг существующего кода и текущий метод использует следующие (усугубляются = 12; процентная ставка начинается .1):Compund interest calculator - Решите для I или есть лучшая формула
while (counter < 100)
{
intermediatePayment = (interestRate*(principal/compounded))/(1 - (1/Math.Pow(interestRate/compounded + 1,(compounded*numberOfYears))));
interestIncrement = Math.Abs(interestRate - previousRate)/2;
previousRate = interestRate;
if(intermediatePayment == payment)
break;
if (intermediatePayment > payment)
interestRate -= interestIncrement;
else
interestRate += interestIncrement;
counter++;
}
Теперь я понимаю, что эта формула делает, но я бы никогда не сможет прийти это я сам. Здесь фактически есть уравнение, которое должно использоваться для определения ежемесячного платежа, если известны процентные ставки, основные суммы и количество платежей. Он использует грубую силу и цикл (не более 100 раз), пока расчетный платеж не станет равным желаемому платежу. Он приходит к ответу обычно после 40-50 циклов и может быть оптимизирован за счет уменьшения значительных цифр.
Мне кажется, если мы просто решили для интереса, это не было бы циклом. Попытайтесь, как я мог, я не могу заставить уравнение решить для меня, так что это мой главный вопрос.
Теперь, если вы хорошо понимаете проблему и знаете финансовые формулы и усугубляете интерес, вы можете предоставить мне еще лучшее решение, которое было бы потрясающе. Я сам провел значительные исследования и нашел инструменты, но не сырое уравнение, или чаще всего я нахожу разные формулы для определения интересующих интересов вещей, но я не осведомлен о том, чтобы перенастроить их для моих нужд.
В принципе, я потратил слишком много времени на это, и мой босс думает, так как цикл работает, мне нужно оставить его или попросить о помощи. Достаточно справедливо, так что я. :)
Вот более традиционное расположение формулы, если это помогает любому: http://i.imgur.com/BCdsV.png
И для данных испытаний: если
- P = 45500
- с = 12
- у = 3
- м = 1400
затем
- I = .0676
Спасибо за помощь
В стороне, есть несколько достаточно хороших библиотек финансовых функций C#, одним из наиболее популярных является QuantLib (http://quantlib.org/index.shtml). Также есть хороший порт функций Excel (включая финансовые), доступные по адресу: (http://code.msdn.microsoft.com/FinancialFunctions). – LBushkin
Для тех, кто заинтересован, но может и не знать, доказательство того, что полиномы более высокого порядка не имеют решений замкнутой формы в терминах конечного числа дополнений, вычитаний, делений и т. Д. (За исключением некоторых особых обстоятельств) Теорема невозможности Абеля. Подробное доказательство не для слабонервных: http://en.wikipedia.org/wiki/Abel%E2%80%93Ruffini_theorem – LBushkin