Loading [MathJax]/jax/output/CommonHTML/jax.js

함수의 내적을 적분꼴로 쓰는 이유

Posted by wbpark
2017. 9. 11. 08:00 작가생각

함수에서 내적을 정의할 때, 두 함수의 곱의 적분하여 나타내는 경우가 있습니다. 오늘은 함수의 내적이 왜 곱의 적분 꼴로 표현되는지 살펴보겠습니다. 수학적으로 엄밀하게 증명하기보다는 '어떻게 이런 발상을 한 거지?'에 초점을 맞추려고 합니다. 생각할 거리를 소개하는 차원으로 쓴 글이기 때문에 과정이 엄밀하지 못할 수 있습니다. 정확하고 엄밀한 과정에 대해 궁금하신 분은 힐버트 공간에 대해 공부해보시는 것을 추천합니다.

fg=f(x)g(x)dx

기본 아이디어

함수를 벡터에 대응시켜 내적을 정의한다.

1. n차원 벡터를 만들기 위해 함수의 정의역을 n등분한다.

2. n번째 구간의 대표값을 n번째 원소로 하는 벡터를 생각한다.

3. 벡터를 내적한 값이 수렴하도록 각 항에 구간의 크기를 곱한다.

4. n 값을 무한으로 보내면, 내적한 값은 적분 값으로 수렴한다. 


 


예를 들어보겠습니다. f(x)=x 함수를 0x1에서 벡터로 나타내면 다음과 같습니다. 편의상 대표값은 구간 내의 최댓값하겠습니다.

 

f=(12,22), f=(13,23,33) or ... f=(1n,2n,...nn)

 

대략 이런 규칙으로 함수를 벡터로 표현하는 것입니다. 같은 방법으로 g(x)를 표현하고 내적합니다.

 

f=(f1.f2,f3...fn)

 

g=(g1.g2,g3...gn)

 

fg=f1g1+f2g2+f3g3+...fngn

fg=nk=1fkgk

 

(1) 식은 수정이 필요합니다. 왜냐하면, n 값이 커질수록 급수가 발산하기 때문입니다. 적당히 수렴시키기 위해 각 항에 구간의 크기를 곱해줍니다. 

fg=nk=1fkgkdxk

fg=xnx0f(x)g(x)dx

(3) 식을 구간 [x0,xn]에서 정의된 함수의 내적이라고 합니다 . 정의역을 전체 실수로 확장하면 이상적분을 합니다.

fg=f(x)g(x)dx

마치며

함수를 벡터로 대응시켜 함수에서 '내적'을 정의해보았습니다. 여담이지만 (4) 식의 형태는 라플라스 변환, 푸리에 변환, Convolution 등을 계산할 때도 사용하는 식입니다. 벡터공간에서 어떤 벡터를 기저(basis)의 합으로 나타낼 때 '내적'연산이 필요한 것처럼, 어떤 함수를 변환하기 위해서 (4) 식이 필요하기 때문에, 굳이 (4) 식을 함수의 내적이라고 부르는 것 같습니다. 방금의 명제는 필자의 개인적인 생각이기 때문에 틀릴 수 있습니다.


여담으로, 함수를 벡터로 대응시켜 생각하는게 조금 이상해 보인다면, 도수 분포도를 이용하여 연산을 정의했다고 생각해보시면, 내적(곱연산)이 어떤 연산을 하는 것인지 보다 직관적으로 와닿을 수 있을 겁니다. 

'작가생각' 카테고리의 다른 글

기타의 원리 : 조율 연주 울림  (0) 2017.07.10