ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 단리, 복리, 이자, 수익률 계산
    Python/파이썬 자료구조 알고리듬 2021. 6. 2. 13:56
    반응형

    실제, 은행은 일단위의 이자율을 사용한다고 합니다.
    다음 코드들은 개념 정리 용도로만 사용하십시오.

    단리, 복리에 대한 설명은 다음 링크를 참고하시고...
    https://mathbang.net/601

    예금의 원리합계(단리, 복리)

    예금은
    처음 한번 입금하고
    만기에 원금과 이자의 합을 인출합니다. 

    계산이 단순한데요... 

    원리합계(원금과 이자의 합)는 
    단리의 경우 등차수열의 일반항이고
    복리의 경우 등비수열의 일반항입니다. 

    1년에 한번 이자가 발생하는 연복리를 계산해 보겠습니다. 

    principal = 10000  # float(input('예치금액: '))
    period = 10  # float(input('예치기간(년): '))
    rate = 2  # float(input('이자율(년, %): '))
    
    rate /= 100  # rate = rate / 100
    
    simple_amount = principal * (1 + rate * period)
    compound_amount = principal * ((1 + rate) ** period)
    
    print(f'원리합계(연단리): {simple_amount}')
    print(f'원리합계(연복리): {compound_amount}')

     

    월복리 예금

    만약에 1년에 12번 이자를 지급하는 방식의 복리라면...
    이자는 1/12로 줄어들고,
    회수는 12배가 많아집니다.
    http://sgsg.hankyung.com/apps.frm/news.view?nkey=2014110300448000211&c1=03&c2=02

    principal = 10000  # float(input('예치금액: '))
    period = 10  # float(input('예치기간(년): '))
    rate = 2  # float(input('이자율(년, %): '))
    time = 12  # int(input('이자 지급 회수(년): )
    
    rate /= 100 * time  # rate = rate / 100 / time
    period = period * time
    
    compound_amount = principal * ((1 + rate) ** period)
    
    print(f'원리합계(복리): {compound_amount}')

     

    이자율(수익률) 계산

    원금, 원리합계, 기간을 가지고, 단리 복리 연이자율을 계산해 봅시다. (1년 1회 지급)

    principal = 10000  # float(input('원금: '))
    amount = 20000  # float(input('원리합계: '))
    period = 10  # float(input('기간(년): '))
    
    simple_interest = (amount / principal - 1) / period
    compound_interest = (amount / principal) ** (1 / period) - 1
    
    print(f'연이율(단리): {simple_interest * 100} %')
    print(f'연이율(복리): {compound_interest * 100} %')

     

    정기적금(복리)의 원리합계

    그러면 1년에 한 번씩 입금을 하는 정기 적금의 경우 원리합계는?
    https://mathbang.net/621

    복리 적금의 경우,
    등비수열의 합 공식을 이용하면 됩니다. 

    deposit = 10000  # float(input('1회 입금액: '))
    period = 1  # float(input('기간(년): '))
    rate = 10.0  # float(input('금리(년, %): '))
    
    rate /= 100  # rate = rate / 100
    
    compound_amount = deposit * (1 + rate) * ((1 + rate) ** period - 1) / rate
    
    print(f'원리합계(연복리) : {compound_amount}')
    

    여기서 등비수열의 초항이 deposit * (1 + rate) 임을 주의하셔야 합니다. 

    만원을 은행에 넣고 '한 달 뒤'에 찾을 때
    얼마를 받아야 하는지 생각해보면 쉽습니다. 

    받아야 할 돈은 '만원 + 한 달분 이자'입니다. 

    그래서 초항이 '만원 + 한 달분 이자'가 되는 겁니다. 

    납입 횟수, 이자 지급 횟수도 확인하면 좋습니다. 

    12개월짜리 월 복리 상품의 경우
    1월 1일, 2월 1일...... 12월 1일.
    즉 12회 입금합니다.

    이자를 기준으로 생각해 보면,
    1월 말일(정확히는 2월 1일 0시)에 첫 이자가 붙고,
    12월 말일(정확히는 다음 해 1월 1일 0시)에 마지막 이자가 붙습니다. 
    12회 이자가 붙죠.

    그리고 다음해 1월 1일 낮에 찾으면 되겠죠. 

    여기서 1월 말일부터 12월 말일까지의 원리금으로 구성된
    등비수열의 합을 계산해야 한다는 것을 알 수 있습니다.  

    그럼 매달 입금을 하고, 매달 이자를 지급하는
    정기 적금의 원리합계를 계산해 봅시다.

    월이자는 년이자의 1/12이고,
    이자 지급 횟수는 12배가 됩니다. 

    # 적금의 원리합계, 년 12회 입금
    deposit = 10000  # float(input('1회 입금액: '))
    period = 1  # float(input('기간(년): '))
    rate = 10  # float(input('금리(년, %): '))
    
    rate /= 100 * 12  # rate = rate / 100 / 12
    period = period * 12
    
    compound_amount = deposit * (1 + rate) * ((1 + rate) ** period - 1) / rate
    
    print(f'원리합계(월복리): {compound_amount}')
    

     

    정기적금(단리)의 원리 합계

    등차수열의 합 공식을 이용합니다. 
    https://mathbang.net/609

    (첫번째 항 + 마지막 항) * 원소수 / 2 하면 됩니다. 
    첫번째 항이 원금 * (1 + 이율) 이고 마지막 항이 원금 * ( 1 + 이율 * n) 입니다. 

    deposit = 10000  # float(input('1회 입금액: '))
    period = 1  # float(input('기간(년): '))
    rate = 10  # float(input('금리(년, %): '))
    
    rate /= 100 * 12  # rate = rate / 100 / 12
    period = period * 12
    
    amount = (deposit * (1 + rate) + deposit * (1 + rate * period)) * period / 2
    
    print(f'원리합계(단리): {amount}')

     

    목표금액(단리)

    amount = 1_000_000  # float(input('목표금액: '))
    period = 1  # float(input('기간(년): '))
    rate = 3  # float(input('금리(년, %): '))
    
    rate /= 100 * 12  # rate = rate / 100 / 12
    period = period * 12
    
    deposit = amount / (2 + rate * (period + 1)) / period * 2
    
    print(f'월 납부액: {deposit}')

    단리 원리 합계 공식을 변형해서.... 

     

    목표금액(복리)

    amount = 1_000_000  # float(input('목표금액: '))
    period = 1  # float(input('기간(년): '))
    rate = 3  # float(input('금리(년, %): '))
    tax_rate = 0.154
    
    rate /= 100 * 12  # rate = rate / 100 / 12
    period = period * 12
    
    rate_a = rate * (1 - tax_rate)
    deposit = amount * rate_a / (1 + rate_a) / ((1 + rate_a) ** period - 1)
    
    print(f'월 납부액: {deposit}')

    복리 적금 원리 합계 공식을 변형해서.... 

    반응형
Designed by Tistory.