💰

Python で学ぶ FP: 資金計画を立てる際の 6 つの係数

2022/08/03に公開

計算方法はあくまで一例です。

終価係数

現在の金額を複利で利用した場合の、一定期間後の金額を求める係数

def shuka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money *= 1 + nenri / 100
    return money

for i in range(1, 6):
    print(f"期間5年、年利{i}%の終価係数は{shuka(i, 5):.4f}")
期間5年、年利1%の終価係数は1.0510
期間5年、年利2%の終価係数は1.1041
期間5年、年利3%の終価係数は1.1593
期間5年、年利4%の終価係数は1.2167
期間5年、年利5%の終価係数は1.2763

現価係数

一定期間後に一定金額に達するために必要な元本を求める係数

def genka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money /= 1 + nenri / 100
    return money

for i in range(1, 6):
    print(f"期間5年、年利{i}%の現価係数は{genka(i, 5):.4f}")
期間5年、年利1%の現価係数は0.9515
期間5年、年利2%の現価係数は0.9057
期間5年、年利3%の現価係数は0.8626
期間5年、年利4%の現価係数は0.8219
期間5年、年利5%の現価係数は0.7835

年金終価係数

毎年一定金額を積み立てた場合の一定期間後の元利合計を求める係数

def shuka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money *= 1 + nenri / 100
    return money

def nenkin_shuka(nenri: float, year: int) -> float:
    money = 0
    for y in range(year):
        money += shuka(nenri, y)
    return money

for i in range(1, 6):
    print(f"期間5年、年利{i}%の年金終価係数は{nenkin_shuka(i, 5):.4f}")
期間5年、年利1%の年金終価係数は5.1010
期間5年、年利2%の年金終価係数は5.2040
期間5年、年利3%の年金終価係数は5.3091
期間5年、年利4%の年金終価係数は5.4163
期間5年、年利5%の年金終価係数は5.5256

減債基金係数

一定期間後に一定金額を用意するための毎年の積立額を計算する係数

def shuka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money *= 1 + nenri / 100
    return money

def nenkin_shuka(nenri: float, year: int) -> float:
    money = 0
    for y in range(year):
        money += shuka(nenri, y)
    return money

def gensai_kikin(nenri: float, year: int) -> float:
    return 1 / nenkin_shuka(nenri, year)

for i in range(1, 6):
    print(f"期間5年、年利{i}%の減債基金係数は{gensai_kikin(i, 5):.4f}")
期間5年、年利1%の減債基金係数は0.1960
期間5年、年利2%の減債基金係数は0.1922
期間5年、年利3%の減債基金係数は0.1884
期間5年、年利4%の減債基金係数は0.1846
期間5年、年利5%の減債基金係数は0.1810

資本回収係数

現在の一定金額を一定期間で取り崩した場合の毎年の受取額を計算する係数

def shuka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money *= 1 + nenri / 100
    return money

def shihon_kaishu(nenri: float, year: int) -> float:
    ratio = 0
    for y in range(1, year + 1):
        ratio += 1 / shuka(nenri, y)
    return 1 / ratio

for i in range(1, 6):
    print(f"期間5年、年利{i}%の資本回収係数は{shihon_kaishu(i, 5):.4f}")
期間5年、年利1%の資本回収係数は0.2060
期間5年、年利2%の資本回収係数は0.2122
期間5年、年利3%の資本回収係数は0.2184
期間5年、年利4%の資本回収係数は0.2246
期間5年、年利5%の資本回収係数は0.2310

年金現価係数

将来の一定期間にわたって一定金額を受け取るために必要な元本を計算する係数

def shuka(nenri: float, year: int) -> float:
    money = 1
    for _ in range(year):
        money *= 1 + nenri / 100
    return money

def shihon_kaishu(nenri: float, year: int) -> float:
    ratio = 0
    for y in range(1, year + 1):
        ratio += 1 / shuka(nenri, y)
    return 1 / ratio

def nenkin_genka(nenri: float, year: int) -> float:
    return 1 / shihon_kaishu(nenri, year)

for i in range(1, 6):
    print(f"期間5年、年利{i}%の年金現価係数は{nenkin_genka(i, 5):.4f}")
期間5年、年利1%の年金現価係数は4.8534
期間5年、年利2%の年金現価係数は4.7135
期間5年、年利3%の年金現価係数は4.5797
期間5年、年利4%の年金現価係数は4.4518
期間5年、年利5%の年金現価係数は4.3295

Discussion