스칼라장의 기울기(gradient)

편미분

우리는 이제 multivariate calculus로 들어가고자 한다.

지금까지는 독립변수 하나에 종속 변수가 하나인 함수에 대해서 미분을 해왔지만, multivariate calculus에서는 독립변수가 여러개에 종속변수도 여러 개일 수 있다.

우선은 독립 변수가 2개이고 종속 변수가 하나인 가장 단순한 형태까지만 확장한 multivariate function을 보도록 하자.

쉬운 예로 다음과 같은 함수를 생각할 수 있다.

이 함수를 MATLAB을 이용해 plot하면 다음과 같이 그릴 수 있다.


그림 1. f(x,y) = x^2 + xy + y^2 을 도시한 것.

함수에서 미분의 개념은 기울기를 의미한다.

그런데 우리가 지금까지 알고 있는 기울기를 위의 함수에서 바로 구할 수 있을까? 임의의 점 하나를 찍어 보면 그 점에서 기울기 직선은 하나로 유일하게 결정되지 않는다는 것을 알 수 있다.

편미분이라는 개념이 필요한 이유는 이러한 상황에서 수직인 두 방향으로만 기울기를 구하고 싶다는 이유에서 출발한다고 할 수 있다.

즉, 방향 만으로의 기울기와 방향 만으로의 기울기는 각각 구할 수 는 있기 때문에 또는 를 상수로 놓고 미분함으로써 방향 만으로의 기울기와 방향 만으로의 기울기를 구하는 것이다.

기호로써 함수 방향으로의 편미분은 다음과 같은 기호로 쓸 수 있다.


또는

y의 경우도 마찬가지로


또는

는 함수 방향으로의 편미분을 나타낸다.

Gradient (기울기)

gradient는 방향으로의 편미분 값과 방향으로의 편미분 값을 원소로 하는 벡터를 출력한다.

조금 복잡하게 들릴 수도 있지만 다음과 같이 수식으로 쓰면 이해가 쉽다.

위의 을 다음과 같이 Del (또는 nabla) 연산자를 이용해 쓰기도 한다.

기호일 뿐이니 너무 걱정하지는 말자.

여기 까지 봤을 때, gradient는 어떤 일을 하는가? scalar로 표현되어 있는 함수에서 어떤 벡터 값을 얻어내게 만든다. 즉 입력은 스칼라인데 출력은 벡터가 나오게 되었다.

조금 더 들어가보자. 의 우항에 있는 를 구해보도록 하자.

그러면 의 함수이며 모든 좌표에 대응되는 벡터가 생성된다는 것을 알 수 있다. 다른 말로 하면 gradient는 스칼라 함수로부터 벡터장을 형성하는 연산자이다.

Scalar 평면에서의 gradient

MATLAB을 통해 gradient가 어떻게 생겼나 확인해보도록 하자.

gradient의 출력은 벡터이기 때문에 방향으로의 벡터 element부터 확인해보자.


그림 2. gradient의 x 축 방향으로의 성분만 표시한 그림

그림2는 같은 를 위에서 바라본 그림이다. 각각의 화살표는 gradient의 x 성분만을 의미한다.

그림에서 볼 수 있듯이 x 축 방향으로의 크기만 바뀌는 것을 볼 수 있는데 각각의 x 성분은 모두 x 방향으로의 기울기를 뜻한다.

이번엔 y 방향으로의 벡터 element를 확인해보자.


그림 3. gradient의 y 축 방향으로의 성분만 표시한 그림

위 그림을 잘 보면 y 축 방향으로만 크기가 바뀌는 벡터가 모든 점에서 생성된 것을 알 수 있다. 이 때 각각의 벡터의 크기는 축 방향으로의 기울기를 의미한다.

그렇다면 방향의 벡터 element와 방향의 벡터 element를 모두 한번에 그려주게 되면 어떻게 될까?


그림 4. gradient의 x축 성분과 y축 성분이 합쳐진 전체 벡터를 표시한 그림

그렇다면 그림 4에서 볼 수 있는 각각의 벡터들은 어떤 것을 의미할까?

그것은 해당 point에서 평면의 기울기가 가장 가파른 곳으로의 방향을 의미한다.

Scalar field에서의 gradient

Scalar field는 로 나타낼 수 있다.

Scalar field의 가장 좋은 예로써 온도의 분포를 생각할 수 있다. 방 안의 모든 3차원 좌표를 생각할 수 있으며 그 각각의 좌표에 해당하는 온도를 하나 하나 매핑할 수 있을 것이다.

가령, 3차원 공간안에서 온도가 다음과 같이 정의되었다고 생각해보자.

그렇다면 이 라는 스칼라 함수에 대해서 gradient를 구하면 다음과 같다.

그렇다면 스칼라 필드 는 어떤 모양일까? MATLAB으로 그려보면 다음과 같다.


그림 5. 온도 T의 스칼라 필드를 표현한 그림

그러니까 색깔이 빨간색에 가까울수록 온도가 뜨겁다는 것을 의미한다.

그렇다면 이 스칼라 필드에서의 gradient는 무엇을 의미할까?

그것은 임의의 점 에서 온도의 변화가 가장 큰 방향을 의미한다.


그림 6. 온도 T의 스칼라 필드를 표현한 그림


그림 7. 그림 6의 gradient를 위쪽 (view([0 90])에서 본 그림

※ 매트랩 코드는 아래의 제 깃허브 repo에서 받으실 수 있습니다.

공돌이의 수학정리노트 Github repo 링크