Вопрос № 175609: Уважаемые коллеги, Есть формула расчета. Это расчет аннуитетных платежей по ипотеке. Впрочем, понятное дело, математикам это не важно. Сама формула вот: Вопрос № 175609:
Уважаемые коллеги, Есть формула расчета. Это расчет аннуитетных платежей по ипотеке. Впрочем, понятное дело, математикам это не важно. Сама формула вот: http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%BD%D1%83%D0%B8%D1%82%D0%B5%D1%82. Из нее мы получили формулу для расчета на языке программирования Паскаль ( тут важна одна особенность - язык, видимо, такой древний, что он был изобретен ранше, чем человечество
придумало корни и степени числе - он их не понимает, поэтому все исходные данные должны быть переведены в вид с логарифмами)
result1:= 12000* (0.005*exp(ln(1+0.005)*36))/ (exp(ln(1+0.005)*36)-1); - используя эту формулу в таком виде, мы получаем результат, как в примере в википедии - результат1 равен 365. Это сделанная часть математической работы.
А теперь вопрос. Для моей программы нужна обратная формула.
Коллеги, прошу учесть два соображения. Во-первых, с математикой - туго. Мне под сорок, а в школе я учился, соответственно, 20 лет назад. Я журналист по образованию, вообще-то. А во-вторых, я не планирую на чужих формулах сдать экзамен или, тем более, въехать
в рай. Просто хочу сделать очередной калькулятор ипотеки - кстати, как некоммерческий, бесплатный продукт.
Итак, моя просьба заключается в том, чтобы вывести из этих формул новую формулу, по которой можно будет посчитать, за сколько платежей будет возвращен кредит, если известна сумма кредита, размер каждого платежа и процентная ставка в годовом выражении. Требуется что-то такое, что бы давало результат сопоставимый вот с этим:
Проще всего такие подсчеты вести в программе Excel. Там есть целая группа финансовых функций. Но можно получить результат математически. Прежде всего откажемся от конкретных цифр. Вот формула посчета помесячной выплаты K=S*i*(1+i)n/((1+i)n-1) где i — процентная ставка за период n, n — количество периодов на протяжении всего действия аннуитета, S- величина кредита. В данном случае K=365, i=0.0005, S=12000 Теперь мы хотим, зная К и i, вычислить n. (1+i)n
обозначим как B - для краткости. Получаем B/(B-1)=K/(i*S)=A K/(i*S) тоже обозначаем как A, можем его сейчас вычислить как 365/(12000*0.005)=365/60=6,0833 B=AB-A AB-B=A, B выносим за скобки B*(A-1)=A, B=A/(A-1) B=A/(A-1)=K/(i*S)/(K/(i*S)-1)=K/(K-i*S)=1,196721311 Но B=(1+i)n Тут в самом деле пора применить логарифмы, получим ln B=n ln(1+i) n=lnB/ln(1+i) =0,179585577/0,004987542=36,00683354 Если округлить, получим 37 месяцев или 3 года 1 мес
яц. Фомула целиком n= ln(K/(K-i*S))/ln(1+i)
Автором ответа исправлены опечатки в выводе и в окончательной формуле
-----
∙ Отредактировал: Сучкова Татьяна Михайловна, Администратор
∙ Дата редактирования: 25.12.2009, 22:53 (время московское)
----- Я ни от чего, ни от кого не завишу.
Ответ отправил: Ashotn, Студент
Ответ отправлен: 25.12.2009, 19:28
Оценка ответа: 5 Комментарий к оценке: Спасибо огромное. И отдельное спасибо будет еще когда вставлю формулу в свою програмку. В Exel эта функция, конечно, есть. Но вот я занялся тем, что в учебных, да и не только учебных целях, делаю программу для того, чтобы можно было провести ряд финансовых вычислений на Дельфи. В общем, у меня все сошлось - уже есть расчет размеров платежей, расчет, сколько можно взять в кредит, зная, сколько готовы
платить и в течение какого периода и т.п. Оставалось только сделать последнюю вкладку в программу, которая бы считала, за сколько времени удастся погасить кредит. У меня был выбор: или дальше изучать программирование в Delphi, или остановиться на этом и садиться за учебники по математике. Вопрос-то, может быть, и не сложный - да вот школу я закончил слишком давно - раньше бы посчитал. А оно и надо? Может быть, не так уж и плохо, когда каждый делает часть работы в соотве
тствии с тем, что он знает?
Это мой последний комментарий к тому, что не только ленивые ученики и студенты здесь задают вопросы - еще и те, кто хочет поделиться объемом работ по специальности.
Понятно, как работают преподаватели. Понятен механизм работы программистов. Но Вы, AShotn, сегодня сделали очень важное: не знаю, как часто это бывает в жизни - я лично встретил такую ситуацию впервые - но Вы консультировали меня как абстрактный математик! Мой респект! :-)
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 258124
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.