푸리에 계수 계산 도구
임의의 함수의 푸리에 계수(a₀·aₙ·bₙ)를 수치 적분으로 구하는 무료 도구입니다. f(x)의 식과 주기 구간, 원하는 차수를 입력하면 계수 표를 얻을 수 있고, 재구성한 푸리에 급수 전개를 원래 함수와 겹쳐 그래프로 확인할 수 있습니다.
푸리에 계수 계산 도구란
임의의 함수의 푸리에 계수를 수치 적분으로 구하는 도구입니다. f(x)의 식, 한 주기에 해당하는 구간, 원하는 최고 차수를 입력하면 상수항 a₀와 각 차수의 aₙ·bₙ를 표로 얻을 수 있고, 그 계수로 재구성한 푸리에 급수 전개가 원래 함수와 겹쳐 그래프에 그려집니다. 사각파나 삼각파처럼 닫힌 형태의 계수가 알려진 대표 파형은 푸리에 급수 전개 시각화 도구가 담당하므로, 이 페이지는 교과서에 없는 식을 직접 시험해 보기 위한 도구입니다.
적분에는 심프슨 법을 사용하며 기본적으로 한 주기를 2000등분합니다. 따라서 표시되는 계수는 엄밀해가 아니라 근삿값입니다. 매끄러운 함수라면 유효 숫자 여섯 자리 정도까지 일치하지만, 절댓값처럼 꺾인 점이 있는 함수나 구간의 끝에서 값이 뛰는 함수에서는 분할 수를 늘리는 편이 정확합니다. 분할 수는 10에서 20000까지 지정할 수 있으니 숫자가 더 이상 움직이지 않을 때까지 올려 보세요.
푸리에 계수 계산 도구 사용법
- 함수를 입력합니다 f(x)의 식을 넣습니다. 변수는 x, 원주율은 pi로 씁니다. 자주 쓰는 예는 버튼으로 바로 넣을 수 있습니다.
- 주기 구간을 정합니다 왼쪽 끝과 오른쪽 끝을 넣습니다. 여기도 식으로 쓸 수 있어 -pi나 2*pi를 그대로 입력할 수 있습니다. 구간의 너비가 그대로 주기 T가 됩니다.
- 차수를 고릅니다 몇 차까지의 계수를 구할지 슬라이더로 지정합니다. 1에서 50까지 고를 수 있습니다.
- 결과를 읽습니다 계수 표와, 원래 함수 위에 급수를 겹친 그래프가 나옵니다. 잔차 항목이 작을수록 그 차수까지로 원래 함수를 잘 재현한 것입니다.
더 잘 활용하기 위한 팁
- 구간의 끝에서 값이 뛰는 함수(예: f(x) = x)에서는 도약 근처에서 급수가 지나치게 커집니다. 차수를 늘려도 사라지지 않으므로 잔차 숫자만이 아니라 그래프의 모양도 함께 확인해 주세요.
- 원래 0이 되어야 할 계수도 수치 적분에서는 1e-16 정도의 값으로 나옵니다. 표에서는 절댓값이 1e-10보다 작은 것을 0으로 표시하므로, 비어 있어야 할 열에 그보다 큰 값이 늘어선다면 분할 수를 올려 보세요.
- 우함수(f(−x) = f(x))라면 모든 bₙ가, 기함수라면 a₀와 모든 aₙ가 0이 됩니다. 대칭성을 확인하는 데 그대로 쓸 수 있습니다.
- 사각파·삼각파·톱니파·반파 정류의 계수를 확인하고 싶다면, 닫힌 형태의 식을 쓰는 푸리에 급수 전개 시각화 도구가 정확한 값을 내줍니다.
푸리에 계수 계산 도구의 활용 장면
연습 문제 답 맞추기
손으로 구한 a₀·aₙ·bₙ가 맞는지를 차수별로 숫자로 대조할 수 있습니다. 부호를 놓친 실수나 1/n²를 1/n로 잘못 쓴 실수는 여기서 바로 드러납니다.
교과서에 없는 함수를 시험하기
exp(-x^2)나 x*sin(x)처럼 손으로 적분하기 번거로운 함수도 계수를 바로 얻을 수 있습니다.
대칭성의 효과를 확인하기
우함수·기함수·반파 대칭 함수를 번갈아 넣어 가며 어떤 계수가 사라지는지 실험할 수 있습니다. 대칭성에 관한 결론을 암기가 아니라 확인으로 다룰 수 있습니다.
주기를 바꿨을 때의 영향을 보기
같은 식이라도 구간의 너비가 바뀌면 각주파수가 달라집니다. −1〜1일 때와 −pi〜pi일 때 계수가 어떻게 달라지는지 비교할 수 있습니다.
푸리에 계수 계산에 나오는 용어
- 푸리에 계수
- a₀·aₙ·bₙ를 아울러 부르는 말입니다. 각각 원래 함수에 코사인이나 사인을 곱해 한 주기에 걸쳐 적분하고, 주기의 절반으로 나눈 값에 해당합니다.
- 주기 T
- 입력한 구간의 너비입니다. 푸리에 급수는 함수가 이 너비로 반복된다고 보므로, 구간을 어떻게 잡느냐가 결과를 좌우합니다.
- 각주파수
- ω = 2π/T를 말합니다. n차 고조파는 nω의 각주파수를 가지며, 급수에서 cos(nωx)·sin(nωx)의 형태로 나타납니다.
- 심프슨 법
- 구간을 짝수 개로 나누고 세 점씩 포물선으로 근사해 적분하는 수치 적분법입니다. 오차가 분할 폭의 네제곱에 비례하므로 분할을 두 배로 하면 오차는 약 16분의 1이 됩니다.
- 진폭과 위상
- aₙcos와 bₙsin을 하나의 코사인 A·cos(nωx + φ)으로 합쳤을 때의 크기와 가로 방향 이동입니다. A = √(aₙ² + bₙ²), φ = atan2(−bₙ, aₙ)로 구합니다.
- 잔차
- 원래 함수와 재구성한 급수의 차입니다. 이 페이지에서는 적분에 사용한 절점에서의 평균 제곱근을 표시하며, 요청한 차수까지로 얼마나 재현했는지를 가늠하는 지표가 됩니다.
푸리에 계수 계산에 대해 자주 묻는 질문
여담 ― 술통의 부피에서 FFT까지, 수치 적분의 긴 여정
이 도구가 쓰는 심프슨 법은 1743년에 공식을 소개한 영국 수학자 토머스 심프슨의 이름에서 왔습니다. 그런데 같은 발상은 그보다 100년도 더 전에 요하네스 케플러가 이미 쓰고 있었고, 용도는 천체 역학이 아니라 와인통의 부피를 어림하는 일이었습니다. 독일어권에서는 지금도 이를 「케플러의 술통 규칙」이라 부르기도 합니다. 곡선으로 둘러싸인 면적을 포물선으로 근사해 더해 나간다는 생각은 그만큼 오래전부터 실무에 뿌리내려 있었던 셈입니다.
푸리에 계수를 수치로 구하는 이야기는 그대로 이산 푸리에 변환으로 이어집니다. 데이터 점이 N개일 때 단순하게 계산하면 N²번의 곱셈이 필요하고, 이를 N log N으로 낮춘 것이 1965년 쿨리와 튜키의 고속 푸리에 변환(FFT)입니다. 그런데 이 논문이 나온 뒤, 가우스가 1805년 무렵에 본질적으로 같은 알고리즘을 적어 두었다는 사실이 발견되었습니다. 가우스는 이를 발표하지 않았고 사후 전집에 실렸을 뿐이어서, 150년 넘게 아무도 알아보지 못한 채 잠들어 있었습니다.
수치 적분의 오차를 어림하는 일은 실무에서 「어디에서 끊을지」의 판단과 곧바로 이어집니다. 심프슨 법의 오차는 분할 폭의 네제곱에 비례하므로, 분할을 두 배로 하면 오차는 약 16분의 1이 됩니다. 다만 이는 피적분 함수가 충분히 매끄러운 경우의 이야기이고, 절댓값처럼 미분할 수 없는 점이 있으면 이 어림은 무너집니다. 이 도구에 abs(x)를 넣고 분할 수를 바꿔 보면, 매끄러운 함수만큼 순조롭게 정밀도가 올라가지 않는 것을 확인할 수 있습니다. 이론의 전제가 실제로 충족되고 있는지를 숫자의 움직임에서 읽어 내는 연습이 되기도 합니다.