Je pense que vous utiliserez la fonction pv de numpy dans les simulations hypothécaires. J'étais curieux de connaître l'implémentation de numpy, alors j'ai cherché.
référence
J'ai essayé l'exemple décrit dans [Documentation] de numpy (https://github.com/numpy/numpy/blob/v1.12.0/numpy/lib/financial.py#L419-L511).
What is the present value (e.g., the initial investment) of an investment that needs to total $15692.93 after 10 years of saving $100 every month? Assume the interest rate is 5% (annually) compounded monthly.
Traduit en japonais, nous considérerons un investissement qui nécessite un investissement initial de 15692,93 $ et générera 100 $ de profit pendant 10 ans. Quelle est la valeur actuelle, en supposant un taux d'intérêt annuel de 5%? Quel endroit, comme. C'est un exemple qui semble apparaître dans les manuels de finance.
import numpy as np
np.pv(0.05/12, 10*12, -100, 15692.93)
-100.00067131625819
Bien que np.pv lui-même soit conçu à cet effet, la même idée peut être appliquée aux simulations hypothécaires. Simulons le montant que vous pouvez emprunter en supposant que «paiement mensuel de 150 000 yens», «remboursement sur 35 ans» et «taux d'intérêt annuel de 3%». dans ce cas,
import numpy as np
np.pv(0.03/12, 35*12, -1500000, 0)
389762052.66542333
En conséquence, vous pouvez voir que vous pouvez acheter une maison pour environ 38,97 millions de yens.
fv +
pv(1 + rate)^{nper} +
\frac{pmt((1 + rate)^{nper} - 1)}{rate} = 0
On dit que pv est calculé par résolution. (Seule l'expression quand = 0 est décrite.) Vous pouvez voir la somme des séries géométriques en la regardant, mais dérivons-la.
La valeur future peut être exprimée par la somme de "la valeur future positive pv (montant emprunté) du premier montant obtenu" et "la valeur future du solde mensuel pmt (montant du remboursement mensuel)".
fv = pv (1 + rate)^{nper} + \frac{pmt}{(1-rate)^0} + \dots + \frac{pmt}{(1-rate)^{nper}}
fv = pv (1 + rate)^{nper} + pmt \Sigma_k^{nper} (1+rate)^{-(k-1)}
fv = pv (1 + rate)^{nper} + pmt \frac{1 - (1 + rate)^{nper}}{rate}
Avec ce sentiment, j'ai pu en déduire.
En regardant la formule, le pv peut être calculé en un seul coup avec quatre règles, mais le professeur numpy semble faire des choses compliquées. Même ainsi, il s'agit de la prise en charge des arguments de type tableau.
when = _convert_when(when)
(rate, nper, pmt, fv, when) = map(np.asarray, [rate, nper, pmt, fv, when])
temp = (1+rate)**nper
miter = np.broadcast(rate, nper, pmt, fv, when)
zer = np.zeros(miter.shape)
fact = np.where(rate == zer, nper+zer, (1+rate*when)*(temp-1)/rate+zer)
return -(fv + pmt*fact)/temp
J'ai trouvé un simulateur simple pour les hypothèques. A l'intérieur, j'ai l'impression de faire le même calcul. https://www.hownes.com/loan/sim/ http://sukkiri.loan
Recommended Posts