[미적분] 복리계산법

반응형
    반응형

    자연대수 e를 이용한 복리법

    복리법은 복리법인데 난데없이 자연대수 e을 가져다쓰는 어그로에 적잖이 의문을 가질 것 같습니다. 하지만 잘 따져보면 e가 복리 성질이 있는 것의 모델링을 할 때 굉장히 중요하다는 것을 느낄 수 있습니다.

    일반적인 복리계산법

    일반적으로 알려진 복리계산법은 다음과 같습니다.
    원금 A, 이자 r, 주기 n, 기간 t일 때, 원금에 대한 복리는
    $$ A(1+r/n)^nt $$
    입니다.

    예를 들어, 1000달러에 연이자 6% 이자갱신 주기가 하루인 복리상품을 3년동안 저축한다고 하면 3년 후에는 다음을 받게 됩니다.
    $$ 1000(1+0.06/365)^{365*3} = 1197.19 $$
    으로 약 1197.2 가 됩니다.

    여기서 알 수 있는건 n이 증가할 때마다 지급되는 이자 또한 증가하는 것을 알 수 있습니다. 이 사실에 극한을 적용시키면 지속적으로 이자를 가중시킬 수 있습니다. 즉, $n-> \infty$ 일 때, 최대 투자의 가치로 극대화한 값이라고 할 수 있습니다.

    자연상수 e를 이용한 복리법 식

    자연상수 e를 사용해 복리법을 바꿔보겠습니다.
    자연상수 e의 정의에 대한 얘기는 다음 포스팅을 참고해주세요.

     

    [미적분] 자연상수 e의 정의

     

    [미적분] 자연상수 e의 정의

    자연로그의 밑 e 자연상수 e 또는 자연로그의 밑 e라고 불리는 수로 수학에서 $\pi$ 와 함께 가장 자주 쓰는 상수라고 할 수 있습니다. 자연상수 e는 전혀 자연스럽게 생긴 수가 아닙니다. 어떤 필

    seong6496.tistory.com

     

    e를 이용해 다음과 같이 투자의 가치를 측정하는 함수를 만듭니다.

    $$ A(t) = lim_{n->\infty}A(1+r/n)^{nt} $$
    $$ = A[lim_{n->\infty}(1+r/n)^{n/r}]^{rt} $$
    $$ = A[lim_{m->\infty}(1+1/m)^{m}]^{rt} (m=n/r) $$
    $$ = Ae^{rt} $$

    따라서, $A(t) = Ae^{rt}$ 입니다.

    위에서 보인 예를 그대로 가져와서 해보면, A = 1000달러, 연이자 r= 6%를 3년동안 저축할 때 3년 후에 받는 양입니다.
    $$ A(3) = 1000e^{0.06*3} = 1197.21736312 $$
    으로 비슷한 양이 나옵니다.

    파이썬으로 두 식의 비교

    실제로 파이썬으로 값이 얼마나 다른지 살펴보겠습니다.

    import math
    import numpy as np
    import matplotlib.pyplot as plt
    
    interest_list = np.array([])
    e_interest_list= np.array([])
    for t in range(0,100):
        interest = 1000*(1+0.06/365)**(365*t)
        interest_list= np.append(interest_list,[interest],axis=0)
        e_interest = 1000*math.exp(0.06*t)
        e_interest_list= np.append(e_interest_list,[e_interest],axis=0)

    float은 list에 담을 수 없으니 numpy를 이용해 100년까지의 숫자를 담아보겠습니다.

    mathploylib를 이용해 그래프를 두개를 그려봅니다.

    plt.subplot(211)
    plt.plot(interest_list)
    plt.subplot(212)
    plt.plot(e_interest_list,'r')

    얼추 비슷하게 나오는 걸 볼 수 있습니다. 실제로 합쳐보면 확실하게 보입니다.

    plt.plot(interest_list,'r')
    plt.plot(e_interest_list,'o')

    소수점 차이가 약간 날 뿐 거의 동일합니다.
    정확한 수치가 필요하지 않다면 자연상수를 이용한 복리법으로 복리가 어떻게 진행되는지나 퀀트 백테스팅시 수익률 계산하는데 보다 쉽게 접근할 수 있을 것 같습니다.

     

    함께보면 좋은글
    [미적분] 자연상수 e의 정의

    [Numpy] ndarray에 값 추가하기

    ndarray 데이터로 그래프 그리기(matplotlib)

    [matplotlib]여러개로 나누어서 그래프 출력(subplot)



     

    댓글

    Designed by JB FACTORY

    ....