summaryrefslogtreecommitdiff
path: root/finance
diff options
context:
space:
mode:
Diffstat (limited to 'finance')
-rw-r--r--finance/equal_principal.py17
-rw-r--r--finance/equal_principal_interest.py19
2 files changed, 36 insertions, 0 deletions
diff --git a/finance/equal_principal.py b/finance/equal_principal.py
new file mode 100644
index 0000000..97af5d2
--- /dev/null
+++ b/finance/equal_principal.py
@@ -0,0 +1,17 @@
+
+
+def monthly_analysis(p, r, n):
+ r /= 12
+ paied_p = 0
+ for i in range(n):
+ month_pay = p/n + (p - paied_p)*r
+ print(i, month_pay, p/n, (p-paied_p)*r)
+ paied_p += p/n
+
+
+if __name__ == '__main__':
+
+ p = 2000000
+ r = 0.055
+ n = 30*12
+ monthly_analysis(p, r, n)
diff --git a/finance/equal_principal_interest.py b/finance/equal_principal_interest.py
new file mode 100644
index 0000000..035fd8c
--- /dev/null
+++ b/finance/equal_principal_interest.py
@@ -0,0 +1,19 @@
+
+
+def monthly_analysis(p, r, n):
+ r = r/12
+ month_p_and_i = p*r*(1+r)**n/((1+r)**n - 1)
+ remaining_p = p
+ for i in range(n):
+ month_i = remaining_p*r
+ month_p = month_p_and_i - month_i
+ remaining_p -= month_p
+ print(i, month_p_and_i, month_p, month_i)
+
+
+if __name__ == '__main__':
+ p = 600000
+ r = 0.06
+ n = 20*12
+ monthly_analysis(p, r, n)
+