Когда я недавно покупал свой первый дом, я написал приложение для JavaScript для личного пользования.
Вот модифицированный фрагмент моего кода для определения ежемесячного платежа:
var balance = 200000; // for example
var periods = 360; // 30 years
var monthlyRate = (0.065)/12; // 0.065= APR of 6.5% as decimal
var monthyPayment = (monthlyRate /(1-(Math.pow((1+monthlyRate),-(periods)))))*balance;
for (var i=0; i<360; i++) {
var interestForMonth = balance * monthlyRate;
var principalForMonth = monthlyPayment - interestForMonth;
balance -= monthlyPayment; // probably should be -= principalForMonth see comments below
// output as necessary.
}
После этого довольно просто составить таблицу амортизации. (Как уже упоминалось, следите за ошибками округления, я не смог адекватно решить эту проблему в своей реализации.)