数学的モデリング-住宅ローンの問題-Pythonの実装

ソフトウェア:

python3.10バージョン

コンテンツ:

住宅の商業融資総額は130万元で、期間は30年、年利は5.8%です。

  1. 月利、元本、返済額、返済総額の計算には、元本と利息が等しい場合と元本が等しい場合の2つの返済方法を使用してください。
  2. 元本と利息が等しい返済方法では、返済期間を4分の1と1年に変更し(対応するrも変更されます)、2つの新しい期間の合計返済額をそれぞれ計算します。そして、期間が短いほど、返済総額が少ないかどうかを説明してください。

モデリング:

融資額をx0、月利をr、年利をR、融資月数をn、融資年数をNとします。

R = R / 12、n = Nx12

均等元本および利息返済モデル:
毎月の返済:a = xr(1 + r)n /((1 + r)n-1)
合計返済:A1 = na = n xr(1 + r)n /((1+ r)n-1)
総利息:s = A1-x

均等元本返済モデル:
月次返済:x = x / n + x *(1-(k-1)/ n)rk = 1,2、…。、n
返済総額:A2 = x + xr *(n + 1 )/
2総利息:s = A2-x
 


Pythonコード:

(1)毎月

# 贷款额为x0,月利率为r,年利率为R,贷款月数为n,贷款年数为N
# x0 = int(input("请输入贷款额(元):"))
# R = float(input("请输入年利率(如5.8%,输入:0.058):"))
# N = int(input("请输入贷款年数(年):"))
# r = R / 4
# n = N * 4

# test data
x0=1300000
R=0.058
N=30
r = R / 12
n = N * 12

# 月均还款(本金+利息)
a = x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1)

# 还款利息总和
Y = n * x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1) - x0


print("-----等额本息计算-----")

# 还款总额
A1 = n * a
print("第1个月,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (x0 * r, a - x0 * r, a, A1))
# 第2 - n个月还款利息
for t in range(2, n + 1):
    ci = (x0 * r - a) * pow((1 + r), (t - 1)) + a       # 每月的利息
    bi = a - ci                                         # 每月的本金
    print("第%d个月,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (t, ci, bi, a, A1))

print("-----等额本金计算-----")

# 每月应还本金
d = x0 / n
A2 = 0
for m in range(1, n + 1):
    f = (x0 - d * (m - 1)) * r  # 每月应还利息
    g = d + f                   # 每月应还本金
    A2 = A2 + g                 # 已还款金额

    print("第%d个月,利息:%s,本金:%s,还款金额(本金+利息):%s" % (m, f, d, g))
print("还款总额:%s" % A2)

(2)四半期ごと

#test data
x0=1300000
R=0.058
N=30
r = R / 4
n = N * 4
# 月均还款(本金+利息)
a = x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1)
# 还款利息总和
Y = n * x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1) - x0
print("-----等额本息计算-----")
# 还款总额
A1 = n * a
print("第1年,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (x0 * r, a - x0 * r, a, A1))
# 第2 - n个月还款利息
for t in range(2, n + 1):
    ci = (x0 * r - a) * pow((1 + r), (t - 1)) + a       # 每月的利息
    bi = a - ci                                         # 每月的本金
    print("第%d年,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (t, ci, bi, a, A1)

 毎年

#test data
x0=1300000
R=0.058
N=30
r = R / 1
n = N * 1

print("-----等额本息计算-----")
# 月均还款(本金+利息)
a = x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1)
# 还款利息总和
Y = n * x0 * r * pow((1 + r), n) / (pow((1 + r), n) - 1) - x0
# 还款总额
A1 = n * a
print("第1年,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (x0 * r, a - x0 * r, a, A1))
# 第2 - n个月还款利息
for t in range(2, n + 1):
    ci = (x0 * r - a) * pow((1 + r), (t - 1)) + a       # 每月的利息
    bi = a - ci                                         # 每月的本金
    print("第%d年,利息:%s,本金:%s,还款金额(本金+利息):%s,还款总额:%s" % (t, ci, bi, a, A1))


出力結果:

元本と利息の均等分割払い

 月々の返済額:7627.789494946575元

返済総額:2746004.2181807673元

等価原理:

 初月の返済額:9894.4444444444445元

2ヶ月目の返済額:3628.5648148148143元

返済総額:2434141.666666667

(2)

サイクルは4分の1です。

返済総額:2750911.7763269176

期間は1年です: 

返済総額:2772940.7758005406

Q:期間が短いほど、返済総額が少ないかどうかを示していますか?

回答:比較:

毎月の返済総額: 2746004.2181807673元

四半期の総返済額: 2750911.7763269176元

年間返済総額: 2772940.7758005406元

比較の結果、期間が短いほど、返済総額が大きくなることがわかりました。

説明することはできません。

おすすめ

転載: blog.csdn.net/qq_21402983/article/details/124235629