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

#7. Fourier Series(1. basic)

by STEMSNU 2015. 11. 8.

네, 다시 돌아왔습니다 ㅋㅋ Fourier series를 함께 차근차근 해볼텐데요, 일단 큰 그림을 머릿속에 넣고 갈겁니다.

Fourier series 에서는, 제일 먼저 주기가 2π인 경우의 특수한 경우를 따져볼거에요. 그 다음에는 그것을 조금 더 일반적으로, 주기가 임의의 상수로 나오는 경우에 대해 따져볼겁니다. 여기까지는 삼각함수를 가지고 하는 얘기입니다.

삼각함수가 아닌, 다른 함수로 확장시켜서 Fourier series 를 사용할 수 있도록 해주는 것이 바로 Sturm-Liouville 이론입니다. 이 이론이 없었다면 우리는 구면좌표계나 원통좌표계에서 나오는 방정식을 풀 수 없었을지도 몰라요.

대충 이 정도의 플롯을 가지고 포스팅을 따라와 주시면 되겠습니다. 그럼, 제일 단순한 경우부터 생각해볼까요?

Fourier series - 주기가 2π

Fourier series 를 가장 이해하기 쉽게 표현하자면, 이렇게 말할 수 있을 겁니다.

  • 주어진 f(x)cosx,sinx의 합으로 표현하고자 하는 노력

이 말을 그대로 수식으로 옮겨볼게요.

f(x)=n=0(ancosnx+bnsinnx)

Fourier series 모양 고치기

f(x)=n=0(ancosnx+bnsinnx)

이 식으로 다시 돌아와 봅시다. 원칙적으로는 이 식이 맞지만, 여러분이 교과서에서 볼 식이랑은 조금 다를 거에요. 왜냐구요?

n=0을 넣은 상태에서는 어떻게 되느냐….
a0cos0+bnsin0
어 그런데… sin0=0이고 cos0=1이니까 n=0일 때는 그냥 a0만 남겠네요.

그러니 결국 좀 더 간단히 표현해주자면,

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

이제 익숙한 표현을 보고 있죠?

sin,cos?

저 식을 보고 의문이 든다면 당연한 겁니다. 왜 굳이?라는 거죠. 예를 들어…
f(x)=x인 경우를 생각해봅시다. 이 함수는 직선함수인데, 굳이 꼬불꼬불 주기 함수인 sin,cos로 표시할 필요가 있냐는거죠.

그 이유는 바로, 우리가 미분방정식 ODE를 풀 때 나오는 해들에 sinx,cosx가 많았다는 사실에서 기인합니다. 기억하나요?
사실 뭐… 우리가 풀었던 방정식의 해에는 ex가 더 많이 나왔던 것은 사실입니다. 하지만 ex는 상당히 다루기가 골룸한 함수일겁니다. x를 조금만 증가시키면 끝없이 위로 올라가버리니까요. 네 뭐, 적분이나 미분을 하기는 쉽습니다만, ex와 가장 연관성이 높은 lnx라는 함수는 적분하기도 상당히….골치가 아픈 놈입니다.
이런 점들 뿐만 아니라, sinx,cosx가 가지는 가장 큰 메리트는, 주기성과 직교성일 것입니다. 삼각함수가 주기를 가지는 것이야, 자명한거고, 직교성이 왜 이렇게 큰 메리트를 가지는지, 바로 아래에서 확인해 보도록 해요!

Fourier series -계수 구하기

orthogonality

f(x)=a0+n=1(ancosnx+bnsinnx)
자 그렇다면, 모르는 계수들을 구해볼겁니다. 바로 orthogonality를 이용해서요! 혹시 뭔지 까먹었나요? 여기서 어떤 내용인지 한 번 확인을 하고 옵시다.

한 마디로 말하자면, 이런 거겠죠?
bar(x)f(x)g(x)dx=0
이미 저 포스팅에서는 r(x)=1,f(x)=sinx,g(x)=cosx일 때 orthogonality 가 성립한다는 사실을 보였습니다. a=0,b=2π일 때에 대해 보였었는데요, 좀 더 자세히 살펴봅시다.

cosnx,cosmx

x 앞에 붙은 계수가 서로 다른 정수인 두 cos함수는 orthogonality 를 보일겁니다. 유도해볼까요?

ππcosnxcosmxdx =12ππcos(n+m)xdx+12ππcos(nm)xdx=12(n+m)[sin(n+m)πsin(n+m)(π)]     +12(nm)[sin(nm)πsin(nm)(π)]

그런데, (n+m),(nm)은 정수입니다. sin에 정수배를 한 π를 곱하면 무조건 0으로 떨어질테니, 저 값은 결국 모두 0이 되겠네요.
ππcosnxcosmxdx=0

  • 주의할 점은, n=m일 경우에는 위에서 함께 전개한 유도과정을 적용할 수 없다는 거죠. 그러면 분모에 0이 들어가게 되니까요! 이 orthogonality 는 nm인 경우에만 성립합니다. n=m인 경우에는 따로 계산을 해줘야 하는 거죠!

sinnx,sinmx

x 앞에 붙은 계수가 서로 다른 정수인 두 sin함수또한 서로 orthogonality 를 보일겁니다.

ππsinnxsinmxdx =12ππcos(nm)xdx+12ππcos(n+m)xdx=12(nm)[sin(nm)πsin(nm)(π)]     +12(n+m)[sin(n+m)πsin(n+m)(π)]
마찬가지 이유로, 전개한 항들은 전부 0으로 날아가겠죠?
ππsinnxsinmxdx=0

  • 마찬가지로, nm인 경우에만 성립하는 orthogonality 입니다.

sinnx,cosmx

sin,cos의 경우에는, n=m이어도 orthogonality가 성립합니다. 일단 nm인 경우부터 유도해볼까요?
ππsinnxcosmxdx =12ππsin(n+m)xdx+12ππsin(nm)xdx=12(n+m)[cos(n+m)πcos(n+m)(π)]     12(nm)[cos(nm)πcos(nm)(π)]
그런데, cos는 안에 π,π가 들어간 결과가 같을테니 괄호안에 있는 녀석들이 전부 0으로 날아가 버릴겁니다. 즉!
ππsinnxcosmxdx =0

그러면 n=m인 경우에는 어떻게 될까요? 삼각함수의 두배공식을 기억하신다면 쉬울겁니다!
sin2nx=2sinnxcosnx

ππsinnxcosnxdx=12ππsin2nxdx=14n[cos2nπcos2n(π)]

네 마찬가지로, cos항이 0으로 함께 날아갈테니, 이 값도 0이 되겠죠?

이제까지 살펴본 세 가지 orthogonality 를 정리해보면 아래와 같습니다.

  1. ππcosnxcosmxdx=0(nm)
  2. ππsinnxsinmxdx=0(nm)
  3. ππsinnxcosmxdx =0

이제 이 성질을 이용해서 계수를 구해볼겁니다.

a0구하기

a0는 제일 쉽습니다. 그냥 Fourier series 정의 식에다가 통째로 적분을 씌우면 되거든요!

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

여기에 π부터 π까지 가는 적분을 씌워봅시다.

ππf(x)dx=ππa0dx+ππ(n=1ancosnx)dx+ππ(n=1bnsinnx)dx=a0ππdx+n=1anππ(cosnx)dx+n=1bnππ(sinnx)dx

ππ(cosnx)dx=ππ(sinnx)dx=0이라는 것 쯤이야 쉽게 보일 수 있을 겁니다. n이 정수니까요. 그러니 뒤에 있는 항들이 통째로 날아가고, 간단하게 정리가 뙇! 됩니다.

ππf(x)dx=a0ππdx=2πa0
결론적으로는,

  • a0=12πππf(x)dx

an구하기

이번에는 양변에 cosmx를 곱해볼게요. 그런데 이 때, m은 뭘 선정하느냐 : 아무거나! 입니다. ㅋㅋㅋㅋ 어떤 정수든 선정해서 곱할거다…정도의 의미를 가진다고 생각하시면 되겠네요 ㅋㅋㅋ

f(x)cosmx=a0cosmx+n=1(ancosnxcosmx+bnsinnxcosmx)
여기에 π부터 π까지 가는 적분을 씌워봅시다.
ππf(x)cosmxdx=ππa0cosmxdx+ππ(n=1ancosnxcosmx)dx+ππ(n=1bnsinnxcosmx)dx=a0ππcosmxdx+n=1anππ(cosnxcosmx)dx+n=1bnππ(sinnxcosmx)dx

엇, 그렇다면….
a0ππcosmxdx0+n=1anππ(cosnxcosmx)dx0,except  n=m+n=1bnππ(sinnxcosmx)dx=0
위에서 열심히 정리한 orthogonality 에 의해, 세 번째 적분이 통째로 날아갑니다. 그리고 첫 번째 적분이 0이 되는 건 쉽구요.
그렇다면, 이제 가운데에 있는 적분만이 남았습니다. mn과 같은 경우가 아니라면 전부 0이 되어 날아갈테니, 남은 항은 아래와 같겠죠.

amππcos2mxdx

이걸 계산해보면 그냥 amπ입니다 ㅋㅋㅋㅋㅋ 계산은 간단하니 생략하고….

정리해서 적어보자면,
ππf(x)cosmxdx=amπ
이렇게 됩니다. 이제 mn으로 바꿔주기만 하면 책에서 보던 그 식이 나오겠죠.

  • an=1πππf(x)cosnxdx

bn구하기

똑같은 과정에 의해서 구할겁니다. 일단 양변에 sinmx를 곱하고,

f(x)sinmx=a0sinmx+n=1(ancosnxsinmx+bnsinnxsinmx)

여기에 π부터 π까지 가는 적분을 씌워봅시다.

ππf(x)sinmxdx=ππa0sinmxdx+ππ(n=1ancosnxsinmx)dx+ππ(n=1bnsinnxsinmx)dx=a0ππsinmxdx+n=1anππ(cosnxsinmx)dx+n=1bnππ(sinnxsinmx)dx

위에 있는 거랑 똑같습니다 ㅋㅋㅋ

a0ππsinmxdx0+n=1anππ(cosnxsinmx)dx=0+n=1bnππ(sinnxsinmx)dx0,except  n=m

따라서 남는 항은 이렇게 나올거고,
bmππsin2mxdx

예상하셨듯 bmπ가 될겁니다. 다시 정리해보면,

ππf(x)sinmxdx=bmπ

짜잔! ㅋㅋㅋ 쉽죠? 우리가 앞으로 할 것들에 비하면 아무것도 아닌 계산량입니다.. 쏘쌛 ㅠㅠ

  • bn=1πππf(x)sinnxdx

정리

정리해보자면, Fourier series 는 아래와 같이 표현됩니다.

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

주어진 함수를 두 삼각함수들의 무한합 형태로 표현하는 것이고, 이 때 각각의 계수를 이렇게 잡아주면 결과가 완성됩니다.

  • a0=12πππf(x)dx
  • an=1πππf(x)cosnxdx
  • bn=1πππf(x)sinnxdx

조금만 더 살펴볼까요? n이 증가할 수록 삼각함수들의 주기가 더 작아집니다. 즉, 더 세부적인 부분에 대한 표현이 가능하다는 거죠. 실제로 n의 증가에 따른 그래프의 모양을 보면 아래와 같습니다. 검은 색이 원래의 함수이고, 색깔이 들어간 그래프가 Fourier series 로 근사한 값입니다.


이미지 출처



그래서 사실 제일 중요한건 초반, 그러니까 n이 작을때의 계수들이 굉장히 중요하게 작용하더라~는 얘기를 할 수 있는거죠.

다음 시간 예고

저 위에 있는 그래프를 다시 보고 와봅시다. 주기가 얼마인가요? ㅋㅋㅋㅋ 잘 안보이겠지만, 3.14 즈음에서 0을 찍고 내려가는 것이 보이나요? 네 그렇습니다. 저 함수는 2π를 주기로 갖는 함수인데요, 하지만 세상에는 2π를 주기로 갖는 함수만 있는 것이 아니기 때문에, 어떻게 일반화를 시킬것이냐…에 대해 얘기를 좀 해보려 합니다. 일단 오늘은 몸풀기 정도로 생각해두고, 다음에 봐요!

댓글