Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
지난 연재물 - 수학 & 통계학/[상미분방정식] 참새와 함께하는 공학수학 - ODE 편

#7. Fourier Series(5-1. Fourier-Legendre series)

by STEMSNU 2016. 2. 7.
  • 식이 길어서 잘릴수도 있습니다! 창을 최대 크기로 키워주세요~

그림 출처

오랜만입니다. 오랜만인 이유는, 너무 포스팅이 길어질 것 같아서 간보다가 한 달이 지나버렸네요ㅠㅠㅠㅠㅠ 드디어 Sturm-Liouville 을 지나, 보다 더 확장된 Fourier series 들, 그러니까 삼각함수가 아닌 다른 orthogonal 한 함수들을 넣어서 fourier series를 만들어 볼 겁니다. 일단 기초부터 시작해볼까요?

Fourier series의 general form

삼각함수를 넣어서 정의했던 fourier series는 아래와 같은 모양이었습니다.

f(x)=a0+n=1(ancosnx+bnsinnx)

이제 sin,cos은 지겨우니까, 다른 아이를 한 번 넣어보려고 합니다. 일단 ym이라고 하고 넣어볼까요? ym은 요렇게 orthogonal 한 함수라고 가정합니다.

bar(x)ymyndx=0

f(x)=n=0anyn(x)

이제 모르는 계수 am을 정하기 위해서, 우리가 예전에 했던 일들을 그대로 해볼겁니다. 우리가 제일 처음에 orthogonality를 활용해서 계수를 구할 때 양변에 함수를 그대로 곱했던 거 기억하죠? an을 구하기 위해 cosmx, bn을 구하기 위해 sinmx를 곱했던 것 말이에요. 그러니까 orthogonality를 최대한 활용해보기 위해서 f(x) 의 양변에 r(x)ym(x)를 곱해봅니다.

r(x)f(x)ym(x)=n=0anr(x)yn(x)ym(x)

그리고 적분을 씌우는거죠!
bar(x)f(x)ym(x)dx=ban=0anr(x)yn(x)ym(x)dx

우변을 잘 살펴보면, n=m인 경우를 제외하면 다 0으로 날아갈겁니다. 그러니…
bar(x)f(x)ym(x)dx=ambar(x)ym(x)ym(x)dx

즉, 우리는 am의 형태를 아래와 같이 표현할 수 있겠다는 겁니다.

am=bar(x)f(x)ym(x)dxbar(x)y2m(x)dx

썩 마음에 드는 깔끔한 식은 아니지만, 어쨌든 공식화가 되었으니 한결 다루기가 편해질 것 같습니다. 그렇다면, 이제 ym에 우리가 원하는(?) 함수인, Legendre와 Bessel을 넣어보겠습니다.

Fourier-Legendre series를 하기 전에..

Legendre series가 뭐였는지는 기억 하나요? 여기서 식을 정리하고, 여기서해를 구해봤었습니다. 잠시 remind를 하자면,

(1x2)d2ydx22xdyx+n(n+1)y=0
꼴의 2차 ODE를 풀 때,
y=m==0amxm
으로 두고 푸는 방법이었습니다. 대충 정리를 해봤더니,

y=a0(1n(n+1)2!x2+(n2)n(n+1)(n+3)4!x4...)+a1(x(n1)(n+2)3!x3+(n3)(n1)(n+2)(n+4)5!...)

로 정리가 되더라는 겁니다. 그래서, 우리는 다항식으로 정리되는 부분을 Pn이라 했고, 그렇지 못한 부분을 Qn이라고 두었죠. 특히 다항식으로 떨어지는 부분인 Pn을 정리해봤더니, 계수가…

an2m=(1)m(2n2m)!2nm!(nm)!(n2m)!
이라고 나왔고, 그래서 n차항 부터 내림차순으로 2m씩 빠지면서 쭉~ 전개가 되는 모습을 볼 수 있었죠. 그래서, Pn은 결국 ‘다항식 형태’로 정리가 되는 ‘orthogonal’한 함수들이라는 사실을 결론적으로 말할 수 있었습니다. 그렇다면, Fourier-Legendre series를 전개하기 시작해볼까요?

Fourier-Legendre series

Legendre를 위의 ym 자리에 대입해 볼겁니다. 그렇다면, 일단 식의 모양은….

f(x)=n=0anPn=a0P0+a1P1+.....

이렇게 만들어질겁니다. 그리고 계수를 구하면, r(x)=1이니까

am=11f(x)Pm(x)dx11P2m(x)dx

이렇게 들어갈테죠. 자 그런데, Pm은 왠지 규칙이 있을 것 같습니다. 그리 쉽게 얻어지는 규칙은 아니고, 좀 생소한 식을 가져와야 하는데요 ㅠㅠㅠ

Pn(x)=12nn!dndxn(x21)n
이라는 식입니다. ‘Rodrigues formula for Legendre polymonial’이라고 검색하면 증명을쉽게 얻을 수 있을 겁니다. 여기서는 일단 저렇다고 ‘납득’을 한 채로 증명을 시작합시다!

Pn(x)대입하기

일단 그대로 대입을 한 번 해봅시다.
11P2n(x)dx=122n(n!)211dndxn(x21)ndndxn(x21)ndx

그대로 적분을 하는 것은 좀 어려워 보이니까, 우변에 있는 적분항을 부분적분해줍시다.

11dndxn(x21)ndndxn(x21)ndx=[dn1dxn1(x21)ndmdxm(x21)m]1111dn+1dxn+1(x21)ndn1dxn1(x21)ndx
너무나도 자명하게, 왼쪽항은 통째로 0입니다. 그러니 결국,
11dndxn(x21)ndndxn(x21)ndx=11dn+1dxn+1(x21)ndn1dxn1(x21)ndx

이런 관계식이 성립할거고, 이 식을 n번 전개시켜나가면 이런 모양이 나올거라고 추측할 수 있습니다.

(1)n11(x21)nd2ndx2n(x21)ndx
그런데 또, 2n번 미분하는 항은 결국 최고차항 빼고는 다 0으로 사라져버릴테니,
d2ndx2n(x21)n=(2n)!
이런 관계식이 성립합니다.

결국 정리해보면,
11P2n(x)dx=(1)n(2n)!(n!)222n11(x21)ndx

적분항 계산하기

그럼 이제 우리에게 남은 과제는,
11(x21)ndx
를 계산하는 것입니다. x=sina로 치환한 다음 계산을 해보면, 매우 높은 차수의 cos대한 적분을 하게 됩니다. 귀찮으니, 우리는 프로그램에서 결과를 가져옵시다.

11(x21)ndx=(1)nΓ(n+1)πΓ(n+3/2)

오오.반가운 Gamma function 입니다! Γ(n+1)=n!인 것은 기억하고 있죠? 기억을 더듬어 공식들을 가져와 봅시다.

1Γ(n+3/2)n!22n=2π(2n+1)!

라는 사실을 우리는 이미 증명해둔 바가 있습니다. 그러니

1Γ(n+3/2)=n!22n+1π(2n+1)!
를 그대로 넣고 계산을 한 번 해봅시다!

11(x21)ndx=(1)nΓ(n+1)πΓ(n+3/2)=(1)n(n!)222n+1(2n+1)!

최종 결과

아직 끝나지 않았어요! 이제 적분항을 다시 대입해야할 때입니다.
11P2n(x)dx=(1)n(2n)!(n!)222n(1)n(n!)222n+1(2n+1)!=22n+1

결국

am=11f(x)Pm(x)dx11P2m(x)dx=2m+1211f(x)Pm(x)dx

라는 최종 결과식이 얻어집니다.

예를 들어

f(x)=sinπx를 근사하는 예제를 한 번 봅시다. 일단 P0 P5까지는 다 옮겨 적어와 봅시다.

P0=1P1=xP2=3x212P3=5x33x2P4=35x430x2+38P5=63x570x3+15x8

이제 항을 하나씩…하나씩..넣기 전에, 잠시 짝수항에 대한걸 관찰하고 갑시다.

am=11f(x)Pm(x)dx11P2m(x)dx=2m+1211f(x)Pm(x)dx
이었는데, sin이라는 함수는 기함수(odd function)입니다. 즉, 자기 혼자 있는 상태에서 저런 적분을 하면 그대로 0이 되어버리는 거죠! 기함수를 우함수(even function)과 곱할 경우에는 그대로 기함수니까, 역시나 저 적분은 0이 될 겁니다. 그러니, P0.P2,P4가 있는 a0,a2,a4들은 전부 0으로 날아가겠네요. 그러니 a1,a3,a5....만 한 번 구해봅시다.

a1=3211xsinπxdx=3π=0.9549a3=7411(5x33x)sinπxdx=5(π215)π3=1.1582a5=11(63x570x3+15x)sinπxdx=11(945105π2+π4)π5=0.2193

이정도로 쭉 구해질 거고, a7부터는 갑자기 작아지기 시작해서 절댓값이 102보다 아래로 떨어져버립니다. 그러니, 근사값에 가장 큰 영향을 미치는 녀석은 앞의 세 항일건데, 좀 더 지대한 영향을 미치는 아이는 a3일겁니다.

어라?

보통 가장 지대한 영향을 미치는 아이는 a1 또는 a0일 거라고 쉽게 예상해버리기가 쉽습니다. 하지만, 이번 경우에는 sinx와 가장 유사한 모양을 가진 함수가 P0=1이나 P1=x가 아닌, 2차항을 가지는 P2였습니다. 하지만 이건 계산과정 상 0으로 가는 항이니까, 좀 더, 제일 유사한 모양(3차 함수)을 가지는 P3이 미치는 영향이 제일 커지는 거죠. sinx라는 곡선을 근사하기 위해서 1차 함수나 상수함수를 들고 오는 데에는 한계가 있을테니까요. ‘근사’를 하는데에 있어서 가지고 있어야 할 직관이라고 할 수 있겠습니다!

마무리

Fourier-Bessel까지 끝내보려고 했는데, 글이 너무 길어질 것 같아서 ㅠㅠ 독자분들의 편의를 위해 조금 나눠보았습니다. Fourier-Bessel series에 대한 이야기는 다음 포스팅에서 조만간 이어 하도록 하죠! 오늘보다 조금 더 복잡하기 때문에 할 얘기가 별로 없습니다(?). 그럼 다음 포스팅에서 봐요!

댓글