[경고] 아래 글을 읽지 않고 "행렬 노름과 조건수"를 보면 바보로 느껴질 수 있습니다.

[그림 1] 3차원에서 정의한 유클리드 거리(출처: wikipedia.org)
벡터(vector) 의 크기 은 유클리드 거리(Euclidean distance) 혹은 피타고라스 거리(Pythagorean distance)를 이용하여 정의한다. 유클리드 거리는 피타고라스의 정리(Pythagorean theorem)를 [그림 1]처럼 연속적으로 적용해서 만든다.

피타고라스의 정리가 매우 오래 되었기 때문에, 유클리드 거리의 역사도 길다고 오해할지 모른다. 하지만 벡터에는 좌표계(coordinate system)라는 개념이 꼭 필요하므로, 식 (1)과 같은 정의는 데카르트René Descartes(1596–1650)가 데카르트 좌표계(Cartesian coordinate system)를 발명한 1637년데카르트 41세, 조선 인조 시절(삼전도의 굴욕) 이후에나 등장한다. 우리가 현실에서 보는 좌표계는 2차원 혹은 3차원이라서 식 (1)의 정의만 사용해도 충분하다. 하지만 수학자들의 상상력은 끝이 없어서 식 (1)을 차원 유클리드 거리까지 확장한다.


제곱과 제곱근을 사용한 유클리드 노름을 더 일반화해서 정의한 -노름( -norm)도 있다.

차수 가 계속 커지면, 좌표 성분중에서 큰 값이 우세해진다. 그래서 최대 노름(maximum norm) 혹은 무한대 노름(infinity norm)을 다음처럼 정의한다.


사각형으로 도시 계획된 도로를 지나는 택시의 이동 거리와 비슷하다고 해서 식 (6)을 택시 노름이라 부른다. 택시 노름 대신 사각형 도로로 유명한 맨해튼의 거리에 빗대서 맨해튼 노름(Manhattan norm)이라고도 한다.
벡터 노름이 이 되는 벡터는 영 벡터(null vector)라고 한다. 성분이 모두 인 벡터도 영 벡터(zero vector)라고 한다. 여기서 영 벡터의 영어 표현을 보면 다른 용어가 사용됨을 관찰할 수 있다. 우리말 표현은 같더라도 영어로는 벡터 노름이 인 벡터를 영(零) 벡터(zero vector)가 아닌 무공(空) 벡터(null vector)라고 부른다. 우리가 자주 쓰는 -노름에서는 공 벡터가 영 벡터이기 때문에 용어를 섞어쓰더라도 문제는 없다. 하지만 엄밀하게 쓸 때는 꼭 구별해야 한다. 벡터 노름 정의는 여러 개가 있기 때문에, 벡터 노름을 으로 만드는 공 벡터는 영 벡터만 유일하다고 할 수는 없다. 즉, 영 벡터는 항상 공 벡터이지만, 공 벡터라고 해서 영 벡터라는 보장은 없다. 예를 들면, -노름으로 절대값 없이 정의하는 새로운 벡터 노름을 만들 수 있다. 이때 0이 아닌 에 대해, = 로 두고 1-노름처럼 = 를 계산하면 0이 나온다. 하지만 공 벡터인 는 영 벡터가 아니어서, 공 벡터와 영 벡터는 서로 다른 정의가 된다.
벡터 노름은 유클리드 거리를 유추해서 손쉽게 정의할 수 있지만, 행렬 노름의 정의에는 수준이 다른 고민이 숨어있다. 왜냐하면 행렬은 행과 열에 모두 원소가 있기 때문에 단순히 벡터 노름을 변형해서 정의하기 어렵다. 그래서 연립 방정식 = 에 등장하는 행렬의 곱 를 이용해서 행렬을 벡터로 바꾼 후 행렬 노름을 다음처럼 멋드러지게 정의한다.

여기서 는 임의의 모든 열 벡터(column vector)이다. 열 벡터에 따라 벡터 노름 는 달라지므로, 행렬 가 를 기준으로 를 최대로 증폭하는 비율로써 행렬 노름 를 정의한다. 또한 행렬 노름은 벡터 노름을 바탕으로 정의하므로, -노름을 강조해서 다음처럼 식 (7)을 다시 쓸 수 있다.

행렬 노름의 개념은 조건수(條件數, condition number) 정의에 필수적이다. 연립 방정식 = 에서 입력 열 벡터 의 작은 변화 에 대해, 연립 방정식을 풀어서 얻는 출력 열 벡터 의 변화 비율로 조건수를 정의한다. 즉, 조건수는 행렬 연산에 필연적으로 생기는 수치 계산의 오차율을 의미한다. 조건수를 엄밀히 정의하기 위해, 다음과 같은 연립 방정식의 계산 오차 와 를 고려한다.

여기서 불필요하게 생기는 입력 오차 에 의해 해 가 변하는 출력 오차를 라 한다. 식 (9)의 유도 과정을 행렬 노름으로 깔끔하게 표현한다.


식 (11)에 등장한 행렬과 역행렬의 행렬 노름 곱을 행렬 의 조건수 라 한다.

여기서 는 로 표기하기도 한다. 식 (11)에 따라 조건수 는 입력 열 벡터의 변화 비율 이 행렬 에 의해 증폭되어 나타나는 출력 열 벡터의 변화 비율 에 대한 최대 한계를 규정한다. 다만 조건수를 정의할 때에 사용한 행렬 노름은 -노름을 사용하므로, 행렬 가 동일하더라도 차수 에 따라 조건수는 달라질 수 있다.
행렬 노름의 정의에 식 (3)에 나온 유클리드 노름을 선택할 경우는 주로 행렬의 고유치(eigenvalue)와 고유 벡터(eigenvector) 개념을 이용한다. 먼저 대칭 행렬(symmetric matrix)을 만들기 위해 행렬 노름의 제곱을 고려한다.

여기서 = 는 대칭 행렬이다. 대칭 행렬의 고유치는 실수이고 서로 다른 고유치를 가진 대칭 행렬의 고유 벡터는 서로 직교한다. 이 성질을 이용해서 행렬 곱 를 직교하는 고유 벡터의 선형 결합(linear combination)으로 다시 표현한다.

여기서 는 선형 결합의 계수, 는 고유치, 는 에 대한 단위 고유 벡터(unit eigenvector)[ = ]이다. 식 (14)를 식 (13)에 넣어서 행렬 관계를 대수 관계로 바꾼다.

여기서 = 이다. 만약 이 최대 고유치라면, = 을 식 (15)에 대입해서 최대값을 구한다.

따라서 유클리드 노름으로 정의한 행렬 노름의 제곱은 의 최대 고유치와 동일하다.

여기서 는 행렬 의 최대 고유치이다. 고유치의 최대값은 스펙트럼 반경(spectral radius)이라고도 한다. 만약 가 대칭 행렬이면, 식 (17)은 다음과 같이 더욱 간략화된다.

따라서 대칭 행렬인 경우의 조건수는 고유치의 최대값과 최소값의 비율이다.

여기서 는 행렬 의 최소 고유치이다. 식 (19)에 따라 조건수의 최소값은 당연히 이다. 고유치의 최소값이 이면, 조건수는 가장 나빠져서 무한대로 발산한다. 즉, 해를 구할 수 없는 조건인 행렬식이 인 경우는 조건수가 무한대로 가서 해의 계산 오차가 무한히 증가한다. 만약 고유치가 음수인 경우는 식 (19)의 결과에 절대값을 적용해서 계산해야 한다.

행렬 가 대칭이 아닌 경우는 특이값 분해(singular value decomposition, SVD)를 이용한다. 유클리드 노름의 최대값은 특이값(singular value)이므로, 최대와 최소 특이값을 구해서 행렬 노름과 조건수를 명확히 정의한다.


댓글 없음 :
댓글 쓰기
욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.