[경고] 아래 글을 읽지 않고 "발산의 의미"를 보면 바보로 느껴질 수 있습니다.
1. 미분법의 의미
2. 좌표계 기반 벡터
3. 적분법의 의미
구배(勾配, gradient) 연산자는 미분 개념만 익히고 있으면 쉽게 이해가 되나 발산 연산자는 다소 난해하다.
처음에는 이해가 잘 안되더라도 겸손한 마음으로 아래 내용을 읽어보자.
讀書百遍 義自見: 잘 모르는 책도 100번을 읽으면 자연히 뜻을 알게 된다.
식 (1)에 제시한 발산 연산자는 폭탄이 터지거나 샘물이 솟거나 하는 현상을 정량적으로 표현하기 위해 도입한 벡터 연산자이다.

여기서 벡터 A = (Ax, Ay, Az)로 정의한다.
[그림 1] 폭탄의 폭발 모습(출처: wikipedia.org)
[그림 1]은 폭탄의 폭발 모습을 보여준다. 갑자기 없던 폭발이 생긴 경우 이를 수학적으로 기술하려면 식 (1)의 발산 연산자를 사용하면 된다. 식 (1)은 미분 연산이므로 저게 폭탄 폭발과 무슨 관계가 있을까 처음에는 잘 이해가 되지 않는다. [그림 1]을 설명하는 좀더 쉬운 [그림 2]를 보자.

[그림 2] 폭발을 발산 연산자로 설명
[그림 1]의 상황을 편의상 2차원(x-y 좌표축)으로 가정하여 이를 발산 연산자로 설명한 것이 [그림 2]이다. x축 방향을 따라 Ax 성분의 변화를 조사하면 식 (2) 관점에서는 x축 방향 발산을 측정한 것이 된다. [그림 2]의 x축 변화를 벡터적으로 보면 x = a보다 작을 때는 -ΔAx, x = a보다 크면 +ΔAx가 된다 (녹색화살표 하나를 ΔAx로 간주). 그러면 x축에 대한 Ax의 변화는 ΔAx- (-ΔAx) = 2ΔAx가 된다. 이 값을 x축의 변화인 Δx로 나누면 식 (1)과 비슷하게 2*ΔAx/Δx가 된다.
마찬가지로 y축 방향 Ay의 변화율도 계산해보자.
y = b보다 작으면 값이 없고 y = b보다 크면 3ΔAy가 된다(빨간색화살표를 ΔAy로 간주). 이때 Ay의 변화는 3ΔAy - 0 = 3ΔAy이다. 이 값을 Δy로 나누면 3*ΔAy/Δy가 된다.
x, y축에 대한 변화율을 모두 합치면 (x, y) = (a, b)에서의 총발산은 2*ΔAx/Δx + 3*ΔAy/Δy이 된다. 총발산값이 0보다 크기 때문에 발산이 있다.
이런 이유로 발산 연산자는 원천 검출기(source detector)로 생각할 수 있다. 여기서 원천은 [그림 1]의 폭발처럼 무언가가 없던 것이 방사선 형태로 출현하는 것이다.
음의 원천도 생각할 수 있다. 음의 원천은 양의 원천의 반대이므로 무언가 있던 것이 방사선 형태로 사라지는 것이다. 예를 들면 흐르던 물이 하수구로 빠지던가 씽크대에 담겨있던 물이 배수구로 빠지는 현상을 음의 원천으로 설명할 수 있다.


[그림 3] 양전하(+)와 음전하(-)(출처: wikipedia.org)
[그림 3]처럼 전하(電荷, electric charge) 입장에서 보면 양의 원천과 음의 원천은 분명하다. 양전하의 전기력선은 폭발이나 샘물이 터지는 것처럼 원점에서 방사선 형태로 뻗어나온다. 음전하의 전기력선은 물이 하수구로 빠지는 것처럼 방사선이 원점으로 사라지는 모양을 가진다.
이런 벡터들의 생성과 소멸을 방사선 형태로 분석하는 도구가 발산 연산자이다. 벡터함수에 발산 연산자를 적용하면 원천 검출기로 동작하여 [그림 3]과 같은 방사선 형태의 생성(양의 원천)과 소멸(음의 원천)을 계산할 수 있다.

[그림 4] 체적과 표면적의 방향 정의(출처: wikipedia.org)
발산 연산자를 체적적분(體積積分, volume integral)에 적용하면 발산 정리(divergence theorem) 혹은 가우스 정리(Gauss' theorem)를 얻을 수 있다.
[발산 정리]

여기서 dv(= dxdydz)는 체적미분소(differential volume), 벡터 da는 면적미분소(differential surface)이다. 벡터 da의 방향은 [그림 4]와 같이 체적을 뚫고 나가는 방향으로 잡는다. 식 (2)에서 적분기호에 동그라미가 있는 것은 [그림 7] 왼쪽의 닫힌 표면적(체적을 모두 포함하는 표면적)을 의미한다.
[증명]
식 (2)를 증명하기 위해 [그림 5]와 같은 체적차분 ΔV(= ΔxΔyΔz)를 고려하자. 당연히 ΔV의 극한은 미분소 dv가 된다.

[그림 5] 데카르트 좌표계상의 체적차분
식 (2)의 우변을 차분관점으로 ΔyΔz 평면에 대해 기술하면 식 (3)과 같다.

식 (3)의 극한을 취하면 식 (4)와 같은 미분소를 정의할 수 있다.

[추가 설명] 식 (3)은 면적적분 관점으로 봐야한다. 면적적분에서 벡터가 향하는 방향은 항상 바깥쪽이다(x축 왼쪽에서는 -x 방향, x축 오른쪽에서는 +x 방향으로 결정). 왜 이렇게 하냐고? 수학자들이 한 약속이다. 면적벡터는 항상 중심에서 바깥으로 향하는 방향으로 정한다.(1-1) 또한, 면적벡터 x는 x축 방향으로 면적을 뚫고 나가는 방향이므로 당연히 면적의 크기는 y-z 평면의 크기인 Δy×Δz가 된다. 이 다음에 미분의 정의를 아래와 같이 도입한다.
(1-2)
(1-3)
[추가 설명] 식 (4)는 테일러 급수(Taylor series)를 이용해서도 아래와 같이 구할 수 있다. 하지만 식 (3)의 차분으로 충분한 것을 굳이 테일러 급수까지 쓸 필요는 없다.(2-1)

식 (5)를 모든 체적에 대해 모두 모으면 적분이 되므로 식 (2)가 증명된다.
수학적으로 엄밀히 정의하려면 식 (3)에 대해 리만 적분을 적용해서 식 (4)를 거치지 않고 식 (6)과 같은 적분을 만들어야 한다.

식 (3)의 우변을 체적적분하면 식 (6)이 얻어지므로 식 (2)의 좌변은 쉽게 증명된다.
하지만, [그림 4]와 같은 주어진 체적에 대한 표면적분은 한 번 더 생각해야 한다.
이를 이해하기 위해 [그림 6]을 보자. 두 개의 체적미분소를 합치면 그림에서처럼 체적이 두배가 된다. 하지만, 표면적은 원래 체적미분소 표면적의 두 배가 되면 안되고(식 (2)의 우변은 체적 v를 둘러싼 전체 표면적 s에 대한 표면적분이다) 체적미분소를 합친 [그림 6]의 우측에 그린 큰 직육면체의 표면적이 되어야 한다.
예를 들어 [그림 6]의 좌측 직육면체가 정육면체이고 한 면의 면적을 1이라 하면 좌측의 두 정육면체의 표면적은 2 x 6 = 12가 된다. 하지만, 우측의 직육면체의 표면적은 10이 되어야 한다. 즉, 단순히 표면적을 합치기만 해서는 이 문제를 해결할 수 없다.
그러면, 어떻게 해야 이런 표면적을 정의할 수 있을까?

[그림 6] 면적적분의 영역 합성
이걸 해결하려 도입한 것이 [그림 4]와 같이 표면적을 뚫고 나가는 면적벡터이다. [그림 6]의 좌측에 있는 두 개의 체적미분소는 화살표로 표시한 부분에서 서로 만나고 있다. 이 부분이 서로 상쇄가 되면 식 (2)의 우변이 증명된다.
위의 예시처럼 좌측 표면적 12가 우측 표면적 10(= 12 - 2)이 되기 위해서는 서로 만나는 표면적 크기인 2가 없어지면 된다.
체적미분소가 만나는 지점에서는 벡터 A의 크기와 방향은 같지만 정의에 의해 면적벡터(녹색화살표와 빨간색화살표)의 방향은 크기는 같고 방향은 서로 반대가 된다. 이 두 표면적을 서로 더하면 벡터적으로 상쇄가 되어 표면적에 기여하지 않으므로 식 (2)의 우변이 증명된다.
______________________________

[그림 7] 닫힌 표면적(왼쪽)과 열린 표면적(오른쪽)(출처: wikipedia.org)
식 (2)의 발산 연산자의 적분을 정의할 때는 [그림 7] 왼쪽의 닫힌 표면적(closed surface)를 사용하고 회전 연산자의 적분을 정의할 때는 [그림 7] 오른쪽의 열린 표면적(open surface)을 사용한다.
발산 연산자가 0이 되는 벡터함수 A은 어떤 형태를 가질 것인가?
아래에 이 의문에 대한 명쾌한 답이 있다.
아래 내용은 회전 연산자를 이해하지 못하면 따라갈 수 없으므로 회전의 의미를 먼저 읽어보아야 한다.
[발산 연산자의 영인자(零因子, nullity) ≡ 회전 연산자]
발산이 0인 벡터함수는 반드시 회전 연산자로만 표현된다.

[증명]
발산 연산자의 영인자 특성에 의해 벡터함수 A가 어떤 벡터함수 B의 회전으로만 표현되면 당연히 A의 발산은 0이 된다.

거꾸로 발산이 0이라면 이 벡터함수는 회전 연산자로만 표현될 것인가?
이 질문에 답하기 위해 먼저 문제를 단순화하자.

여기서 A = (Ax, Ay, Az), C = (Cx, 0, 0), D = (Dx, Dy, 0)이다.
발산 연산자의 특성으로 인해 임의의 3차원 벡터함수 A는 2차원 벡터함수 D로 언제나 변경가능하다.
그래서, 증명의 초점을 2차원 벡터함수 D로 한정하자.

여기서 h(z, x)는 편미분에 대한 적분상수이다. 식 (10)에서 Dx = ∂g/∂y라 가정하면

여기서 g = g(x, y, z)이며 적분상수 h(z, x)는 고려하지 않았다.
다음으로 적분상수 h(z, x)를 생각하자. h(z, x)는 어떤 벡터함수 E의 회전으로 표현할 수 있는가?
먼저 회전 연산자 정의인 식 (12)를 고려하자.

식 (12)에서 E = (f, 0, 0)이며 f(z, x)는 z, x의 함수라고 가정하면 h(z, x) = ∂f(z, x)/∂z를 얻을 수 있다.
그러므로, 식 (13)이 성립해서 발산이 0인 임의의 벡터함수는 회전 연산자로만 표현할 수 있다.
