본문 바로가기
AI 수학/최적화

벡터 함수를 벡터로 미분하기 : 자코비안

by 깊은대학 2020. 7. 16.

벡터 x=[x1x2...xn]T 의 구성요소를 변수로 하는 다변수 스칼라 함수 f(x1,x2,,xn) 을 간단히 f(x) 로 표기했다. 동일한 벡터를 변수로 갖는 스칼라 함수가 여럿 있다면 f(x), g(x), h(x), ... 이렇게 구별할 수 있을 것이다.

그런데 함수가 많다면 함수 이름으로 사용할 알파벳이 동날 것이므로, 보통 함수에 아래 첨자를 써서 그 함수들을 구별한다. 만약 스칼라 함수가 m 개 있다면, f1(x), f2(x), ..., fm(x) 로 표기한다. 아래 첨자가 다르면 서로 다른 함수다.

벡터 함수는 2개 이상의 스칼라 함수를 구성요소로 하는 벡터를 말한다. 벡터 x 를 변수로 하는 벡터 함수를 f(x)로 표기한다.

 

f(x)=[f1(x)f2(x)fm(x)]=[f1(x1,x2,...,xn)f2(x1,x2,...,xn)fm(x1,x2,...,xn)]

 

이렇게 표기하면 다변수-다함수가 마치 변수가 한 개, 함수도 한 개인 단변수-단함수인 것처럼 보기가 편해진다.

다음은 벡터 함수의 예다. 극좌표계 (r,θ)를 직교 좌표계 (x,y)로 바꾸는 벡터 함수다.

 

f(x)=[f1(r,θ)f2(r,θ)]=[rcosθrsinθ]

 

여기서 x=[rθ] 이고, f1=x, f2=y 이다.

 

 

벡터 함수 f 를 벡터 x 에 대해 미분한다는 표기인 dfdx 는 다음과 같이 정의한다.

 

dfdx=[f1x1f2x1fmx1f1x2f2x2fmx2f1xnf2xnfmxn]

 

정의에 의하면 dfdx 는 열의 개수가 m , 행의 개수가 n 인 행렬이다. m 은 스칼라 함수의 개수, n 은 벡터의 구성요소 개수다. 벡터 함수의 벡터 미분인 dfdx 자코비안 행렬(Jacobian matrix)이라고 한다.

자코비안 행렬의 정의를 보면 행렬의 첫번째 열은 첫번째 스칼라 함수 f1 의 그래디언트, 두번째 열은 두번째 스칼라 함수 f2 의 그래디언트인 것을 알 수 있다. 이와 같이 자코비안 행렬의 j 번째 열은 j 번째 스칼라 함수 fj 의 그래디언트이다.

책이나 논문에 따라서는 행과 열을 바꾸어서 자코비안을 정의하기도 한다. 쓰임새에 따라서 장단점이 있으니 둘 중 하나의 정의를 선택한 후 일관성 있게 사용하면 된다.

예를 들어 보자. 극좌표계 (r,θ) 를 직교 좌표계 (x,y) 로 바꾸는 벡터 함수의 자코비안 행렬 dfdx 는 다음과 같이 계산된다.

 

dfdx=[f1rf2rf1θf2θ]=[cosθsinθrsinθrcosθ]

 

 

댓글