2020년 7월 13일 월요일

스털링의 공식(Stirling's Formula)

[경고] 아래 글을 읽지 않고 "스털링의 공식"을 보면 바보로 느껴질 수 있습니다.


계승(階乘, factorial) $n!$은 인접한 숫자를 계속 곱하기 때문에, $n$이 커지면 계승값은 굉장히 빠르게 증가한다. 그래서 계승의 기호에 놀라움을 표현하는 느낌표가 붙어있다. 계승을 어림짐작하기는 쉽다. 모든 $n$에 대해 $n! \le n^n$이 성립한다. 하지만 조금 더 정확하게 근사하려면 어떤 방법을 쓰면 좋을까? 여기에 대한 해답이 스털링의 공식(Stirling's formula) 혹은 스털링의 근사(Stirling's approximation)이다. 유한 곱(finite product)을 직접 다루기는 불편하므로, 계승에 로그 함수(logarithmic function)를 적용해서 유한 합(finite sum)으로 바꾼다.

                  (1a)

                  (1b)

여기서 $\prod$는 유한 곱(finite product)을 의미한다. 다음으로 유한 합과 적분의 관계식인 오일러–매클로린 공식(Euler–Maclaurin formula)을 식 (1)에 적용한다.

                  (2)

                  (3)

지수 함수(exponential function)를 이용해 식 (3)을 다시 정리한다.

                  (4)

식 (4)의 결과는 드 무아브르Abraham de Moivre(1667–1754)가 1730년드 무아브르 63세, 조선 영조 시절에 얻었다. 하지만 $n$에 따라 느리게 변하는 계수 $C(n)$을 점근적으로 결정하지는 못했다. 계수 $C(n)$을 정복하는 첫걸음은 수치적인 관찰이다. 베르누이 다항식(Bernoulli polynomial)을 이용해 식 (4)에 나오는 $C(n)$의 변화 특성을 분석한다.

                  (5)

                  (6)

여기서 $B_1(x)$ = $x - 1/2$, $B_1(x)$는 제$1$차 베르누이 다항식이다. 식 (6)을 이용하더라도 $C(n)$의 정확한 값을 구하지는 못한다. 하지만 수치 계산에서 $n$이 커지면 $C(n)$은 약 $2.5$에 근접한다. 그래서 스털링James Stirling(1692–1770)은 과감하게 $C(n) \sim \sqrt{2 \pi}$라고 가정해서 식 (4)를 다음처럼 표기했다.

                   (7)

[그림 1] 스털링 공식의 정확도(출처: wikipedia.org)

식 (7)이 정말로 타당한지 확인하려면, $n$이 매우 커질 때 식 (6)의 극한값을 구해야 한다. 먼저 $C(n)$의 수렴성을 판단하기 위해 식 (3)에 있는 적분을 분해해서 수열 $\{a_k\}$와 $\{b_k\}$를 정의한다.

                  (8)

항 $a_k$는 항상 음이고 항 $b_k$는 항상 양이기 때문에, 수열 $\{a_k\}$와 $\{b_k\}$가 만드는 무한 급수는 교대 급수(alternating series)가 된다. 라이프니츠 기준(Leibniz criterion)에 따라 단조 감소하는 $\{a_k\}$와 $\{b_k\}$를 가진 무한 급수 $\lim_{n \to \infty} R_1(1, n)$은 수렴한다. 따라서 $n$이 커질 때 $C(n)$도 자동적으로 수렴한다. 하지만 복잡한 무한 곱(infinite product)으로 구성된 식 (6)을 직접 계산하기는 매우 어렵다. 그래서 식 (8)에 제시한 유명한 월리스 곱(Wallis product)에 식 (4)를 대입해서 $C(n)$의 점근값을 유도한다[1].

                       (9)

                       (10)

따라서 식 (10)에 의해 $n$이 매우 커질 때 $C(n) \sim \sqrt{2 \pi}$가 성립한다.
스털링 공식인 식 (7)을 얻을 때, 오일러–매클로린 공식의 제$1$차 잉여항만 고려했다. 잉여항의 차수를 식 (2)처럼 높이면 스털링 공식은 어떻게 변할까? 새로운 계승 공식을 유도하기 위해 식 (2)에 있는 베르누이 수를 $M$개까지 합산한다.

                       (11)

식 (11)에서 $n$이 커질 때의 점근값을 구하면 다음과 같다.

                        (12)

식 (12)는 첫인상이 매우 멋있어 보이지만 내면은 심각한 결함을 가지고 있다. 유한 합을 구성하는 성분이 베르누이 수이기 때문에, $M$을 계속 키우면 유한 합이 진동하기 시작한다. 즉, $M$이 커질 때 이 유한 합은 수렴하지 않고 진동하며 발산한다. 하지만 식 (12)가 수렴하지 않더라도 계승을 점근적으로 계산하는 식 (12)는 충분히 소중하다. 식 (12)로 표현한 스털링의 공식을 통해 우리의 고정 관념을 확 바꿀 수 있다. 수학에서 다루는 무한 급수는 수렴할 때만 가치 있다고 오판하지 말자. 무한 급수가 발산하거나 진동할 때는 유한 번만 더해서 값어치 있는 결과를 만들 수도 있다.

어떤 경우는 계승에 느낌표를 하나 더 붙여서 $n!!$처럼 표현하기도 한다. 이때는 그냥 계승이라 하지 않고 이중 계승(二重階乘, double factorial)이라 부른다. 이중 계승을 쓰면, 짝수나 홀수에 대한 계승을 깔끔하게 쓸 수 있다.

                       (13a)

                       (13b)

                       (13c)

여기서 $(-1)!!$ = $0!!$ = $1$로 정의한다. 식 (13)이 세련되기는 하지만, 짝수와 홀수의 계승 표현식에 사용하는 이중 계승은 선택 사항이다. 식 (1a)에 있는 계승의 원래 의미에 따라 짝수와 홀수의 계승을 표기할 수도 있다.

                       (14a)

                       (14b)

식 (14)를 보면 명확히 이해할 수 있지만, 식 (14)의 우변은 다소 지저분하고 복잡한 반면 식 (13)의 정의는 단순하고 직관적이다. 그래서 식 (13)의 이중 계승이란 개념을 써서 식 (14)와 같이 계승의 특별한 경우를 더 쉬운 방식으로 표현한다.

[참고문헌]
[1] "Stirling's formula," ProofWiki. (방문일 2020-07-13)

2020년 7월 12일 일요일

오일러–매클로린 공식(Euler–Maclaurin Formula)

[경고] 아래 글을 읽지 않고 "오일러–매클로린 공식"을 보면 바보로 느껴질 수 있습니다.
1. 베르누이 다항식
2. 테일러 급수


적분(integration)급수(series)를 공부할 때 크게 착각하는 점 중의 하나가 적분은 어렵고 급수는 쉽다는 생각이다. 적분은 피적분 함수의 원시 함수(primitive function)를 찾는 복잡한 과정이 있기 때문에 분명 어렵다. 반면에 급수는 단순하고 반복적인 합이므로, 덧셈만 계속 해가면 결과를 쉽게 얻을 수 있다. 하지만 유한이 아닌 무한한 급수(infinite series)에서는 항을 끝없이 더해가는 무한 급수의 연산 과정이 상상할 수 없을 정도로 복잡하다. 왜냐하면 무한 급수의 수렴과 발산 특성은 직관적으로 알 수 없고, 무한 급수를 구성하는 수열(sequence)의 특성을 사용해 수렴 판정을 하기 때문이다. 따라서 공부를 조금 더 하면 급수보다는 적분이 편하다고 느낀다. 그렇다면 근사 없이 적분과 급수를 서로 이어주는 정확한 관계식은 없을까? 아래에 제시한 리만 적분(Riemann integral)은 무한 급수와 적분의 관계를 설명하는 중요한 개념이다.

             (1)

하지만 식 (1)은 구간을 계속 줄여가는 무한 급수이므로, 우리가 고민하는 부분과는 약간 거리가 있다. 구간이 고정된 유한 급수(finite series) 혹은 유한 합(finite sum)을 적분과 정확하게 연결해주는 도구는 리만 적분이 아니고 오일러–매클로린 공식(Euler–Maclaurin formula)이다. 예를 들어, [그림 1]에 제시한 유한 합과 적분의 관계를 생각한다. 피적분 함수 $f(x)$ = $x^3$은 구간 $0 \le x \le 2$ 사이에서 연속적으로 변하며, 항이 $f(n)$인 유한 합은 이산적으로 합해진다. 그래서 직관적으로 보면 적분과 유한 합은 같아질 수가 없다. 그래서 [그림 1]에 보이는 유한 합과 적분의 오차를 원하는 만큼 정확히 표현해서 적분값을 보상해주면, 유한 합을 적분으로 정확히 표현할 수 있다. 유한 합과 적분의 오차를 표현하는 함수로 베르누이 다항식(Bernoulli polynomial)을 사용하는 기법이 오일러–매클로린 공식이다. 이 공식은 오일러Leonhard Euler(1707–1783)가 1735년오일러 28세, 조선 영조 시절에 느리게 수렴하는 무한 급수를 계산하기 위해 제안했다[1]. 오일러와는 독립적으로 매클로린Colin Maclaurin(1698–1746)은 1745년매클로린 47세, 조선 영조 시절에 이 공식을 재발견했다[2]. 매클로린은 여러 적분을 효과적으로 계산하기 위해 이 공식을 열렬히 사용했다. 매클로린이란 이름은 테일러 급수(Taylor series)의 특수한 경우인 매클로린 급수(Maclaurin series)에도 남아 있다.

[그림 1] $f(x)$ = $x^3$에 대한 유한 합과 적분(출처: wikipedia.org)

베르누이 수(Bernoulli number)의 확장인 베르누이 다항식의 성질을 적극 활용해서 유한 합과 적분에 대한 오일러–매클로린 공식을 증명한다.

[오일러–매클로린 공식]

                  (2)

여기서 $B_m$은 제$m$번 베르누이 수, $(\cdot)!$는 계승(factorial), $f^{(n)}(x)$는 $x$에 대한 $n$번 미분, $R_m(n)$은 제$m$차 잉여항(remainder term), $b_m(x)$ = $B_m(x - \lfloor x \rfloor)$, $B_m (x)$는 제$m$차 베르누이 다항식, $\lfloor x \rfloor$는 바닥 함수(floor function), $f(x)$는 $2M$번 미분 가능하다.

[증명]
아래에 제시한 베르누이 다항식의 미분을 이용해서 정적분을 다음처럼 바꿀 수 있다.

                  (3)

                  (4)

식 (4)를 유한 합 형태로 정리하면 다음과 같다.

                  (5)

식 (5)의 마지막 항인 잉여항에 대해 식 (3)을 다시 적용한다.

                  (6)

식 (6)과 같은 과정을 계속 반복해서 다음을 얻는다.

                  (7)

잉여항 정의에 사용한 $b_m(x)$는 주기가 $1$인 주기 함수(periodic function)이다. 따라서 식 (7)을 이용해 적분 구간을 $n$까지 확장하면 식 (2)를 얻을 수 있다.
______________________________

식 (2)에 도입한 잉여항 $R_m(n)$은 오일러나 매클로린이 만든 공식에는 없었던 성분이다. 하지만 오일러–매클로린 공식의 정확성을 평가할 때 필수적인 요소이다. 오일러–매클로린 공식을 실제적으로 완성한 잉여항은 푸아송Siméon Denis Poisson(1781–1840)에 의해 제안되었다.

[그림 2] $f(x)$ = $x^3$에 대한 적분의 사다리꼴 근사(출처: wikipedia.org)

오일러–매클로린 공식이 아름답기는 하지만, 식 (2)의 좌변에 있는 $1/2$ 성분이 눈에 거슬린다. 하지만 적분에 대한 정확한 계산을 하려면 이 성분이 꼭 필요하다. 예를 들어, [그림 2]를 고려한다. 리만 합(Riemann sum) 관점에서 적분에 대한 근사는 [그림 1]과 같은 직사각형도 가능하다. 하지만 더 정확한 근사는 [그림 2]와 같은 사다리꼴 형태이다. 사다리꼴 면적을 이용해 [그림 2]에 있는 사다리꼴의 면적을 계산한다.

                  (8)

그러면 양 끝점에 해당하는 $f(0)$과 $f(2)$에는 $1/2$가 곱해져야 한다. 따라서 식 (2)의 좌변에도 $1/2$ 성분이 있다.
식 (2)에서 유한 합의 시작이 $1$에서 $l+1$로 바뀐다면, 다음 식과 같이 오일러–매클로린 공식을 변경할 수 있다.

                  (9)

식 (9)의 관점으로 식 (2)를 보면, 식 (2)는 $l$ = $0$인 특별한 경우이다.
오일러–매클로린 공식을 적용하는 정말 좋은 예는 다음과 같은 자연수 거듭제곱의 합(sum of powers)이다.

                  (10)

식 (10)은 베르누이 수(Bernoulli number)를 만들어낸 유명하지만 간단한 계산식이다. 거듭제곱의 합 공식을 만들기 위한 처음 단계로 $f(x)$ = $x^p$를 식 (2)에 대입한다.

                  (11)

여기서 $2M > p$, $f(x)$의 미분은 다음과 같다.

                  (12)

식 (11)을 정리하면 베르누이 수로 표현한 거듭제곱의 합 공식을 얻을 수 있다.

                  (13)

식 (2)에 증명한 오일러–매클로린 공식이 어렵다면 더 쉬운 해결책을 사용할 수도 있다. 식 (5)에서 출발해서 $n$번 항까지 합하면 다음과 같다.

                  (14)

식 (14)에 있는 베르누이 다항식까지 1차 함수로 바꾸어서 1계 미분만 가진 매우 간단한 오일러–매클로린 공식을 만든다.

                  (15)

함수 $f(x)$가 $x$ = $0$에서 정의되지 않으면, 식 (5)를 $2$부터 $n$까지 합하고 마지막에 $f(1)$을 더해서 식 (15)와 다른 오일러–매클로린 공식을 유도할 수도 있다.

                  (16a)

                  (16b)

식 (15)와 (16)에 나오는 정적분은 리만–스틸체스 적분(Riemann–Stieltjes integral)으로 표현하기도 한다.

[참고문헌]
[1] L. Euler, "Inventio summae cuiusque seriei ex dato termino generali (Finding the sum of any series from a given general term)," Commentarii academiae scientiarum Petropolitanae (Commentary of the St. Petersburg Scientist Academy), vol. 8, pp. 9–22, Oct. 1735.
[2] C. Maclaurin, A Treatise on Fluxions, Edinburgh: T. W. and T. Ruddimans, 1742.

[다음 읽을거리]

2020년 7월 10일 금요일

베르누이 다항식(Bernoulli Polynomial)

[경고] 아래 글을 읽지 않고 "베르누이 다항식"을 보면 바보로 느껴질 수 있습니다.


성공적인 베르누이 수(Bernoulli number) $B_m$을 함수로까지 확장할 수 있을까? 베르누이 수는 숫자이기 때문에, 베르누이 수의 번호 $m$이 정해지면 베르누이 수 자체는 고정된다. 하지만 매우 성공적인 베르누이 수를 단순한 숫자로 그냥 놓아둘 수는 없다.

[그림 1] 베르누이 다항식의 모습(출처: wikipedia.org)

베르누이 수를 함수 형태로 만들기 위해 다음과 같은 베르누이 수의 생성 함수(generating function)를 생각하자.

                  (1)

식 (1)을 변형하면 다음과 같은 베르누이 다항식(Bernoulli polynomial)을 만들 수 있다. [그림 1]처럼 모든 베르누이 다항식은 정의역에서 항상 연속이다.

                  (2)

여기서 제$m$차 베르누이 다항식 $B_m(x)$는 기존 생성 함수에 추가적인 매개변수 $x$를 넣어서 베르누이 수 $B_m$을 함수로까지 확장한다. 식 (2)에 베르누이 수의 생성 함수인 식 (1)을 넣어서 정리하자.

                  (3)

여기서 $B_m$ = $B_m^-$ = $B_m^+ - \delta_{m1}$, $\delta_{mn}$은 크로네커 델타(Kronecker delta)이다. 식 (2)와 (3)을 비교해보면, 베르누이 다항식은 다음처럼 베르누이 수의 유한 합(finite sum)으로 구성된다.

                  (4)

이와 같이 베르누이 다항식은 숫자로 된 베르누이 수를 함수로 확장시켜서 큰 의미가 있다. 하지만 베르누이 다항식은 함수화라는 의미를 넘어서는 더 큰 개념을 가지고 있다. 적분(integration)과 유한 합을 정확하게 연결하는 매개체가 바로 베르누이 다항식이다. 베르누이 다항식을 잘 적분하면, 오일러–매클로린 공식(Euler–Maclaurin formula)이란 새로운 세계를 만들 수 있다.


   1. 기본(basics)   

[$B(1-x)$의 표현식]

                  (1.1)

[증명]
베르누이 다항식의 여러 성질은 식 (2)에 제시한 생성 함수로부터 쉽게 유도할 수 있다. 예를 들어, 식 (2)에 $1-x$를 대입하면 식 (1.1)이 유도된다.

                  (1.2)
______________________________

[$B_m(x)$의 차]

                   (1.2)

[증명]
식 (2)에 $x+1$과 $x$를 대입해서 서로 뺀 후 정리한다.

                  (1.3)
______________________________


   2. 특정값(specific value)과 극한(limit)   

                  (2.1)

[증명]
식 (2)에 $x$ = $0$ 혹은 $x$ = $1$을 대입해서 베르누이 수의 생성 함수와 비교한다.
______________________________


   3. 미분(differentiation)   

[$B_m(x)$의 미분]

                  (3.1)

[증명]
식 (2)를 $x$에 대해 미분해서 정리한다.

                  (3.2)
______________________________

식 (3.1)을 이용하면 베르누이 다항식의 적분도 쉽게 구할 수 있다.

                  (3.3)

여기서 $C$는 적분 상수이다.


   4. 정적분(definite integral)   

[$B_m(x)$의 정적분(definite integral)]

                  (4.1)

[증명]
식 (3.3)에서 얻은 적분 결과에 식 (2.1)의 넷째식을 대입한다.

                  (4.2)
______________________________


[참고문헌]
[1] N. Larson, The Bernoulli Numbers: a Brief Primer, Whitman College, 2019. (방문일 2020-07-07)

[다음 읽을거리]
1. 오일러–매클로린 공식