2011년 6월 11일 토요일

행렬(行列, Matrix)

[경고] 아래 글을 읽지 않고 "행렬"을 보면 바보로 느껴질 수 있습니다.
1. 좌표계 기반 벡터


[선형 대수학 소개]

[그림 1] $m \times n$ 행렬의 정의(출처: wikipedia.org)

[그림 1]과 같이 숫자를 사각형으로 배치하고 꺽쇠로 닫으면 행렬(行列, matrix)이라 한다. '에이, 이게 뭐야! 나도 할 수 있겠네!'라고 생각할 수 있지만 우리가 보는 [그림 1]의 행렬은 현대 수학 중에서 가장 중요한 부분이다. 그래서, 행렬의 어원도 어머니(mother), 자궁(womb)을 뜻하는 라틴어(Latin) 마트릭스(matrix)이다. 다양한 수학 이론의 자궁(matrix) 역할을 하는 개념을 행렬(matrix)이라 생각할 수 있다. 미분적분(微分積分學, calculus)이 중요하다는 사람도 있지만 컴퓨터(computer)를 고려하면 단연 중요한 부분은 행렬 이론이다. 미분적분학은 연속 함수(連續函數, continuous function)를 다루기 때문에 컴퓨터로 처리하려면 반드시 이산화(離散化, discretization)를 해야 한다. 그러면 그다음의 처리 과정은 대부분 행렬 기반으로 처리된다. 문제를 풀기 위해 반복 기법을 이용할 수도 있지만 해답의 정확도와 속도면에서는 행렬이 월등하다. 반복이 필요한 현대 암호학에서도 행렬은 빼놓을 수 없는 부분이다. 단, 행렬의 계산 속도가 빨라야 한다. 보통 초보자가 설계한 코드로는 많이 부족하다. 그래서, 컴퓨터를 고려한 현대 수학에서는 행렬이 대세이다. 빠른 행렬 코드를 가지고 있어야 수학 분야 선진국이라 할 수 있다. 애석하게도 대한민국은 행렬을 많이 사용하지만 새로운 행렬 코드 개발에는 매우 인색해서 한국산(Made in Korea)은 아직 없다. 현재 많이 사용하는 공개된 행렬 코드는 미국산(Made in USA)LAPACK(Linear Algebra Package)이다.

[그림 2] 에셜론에서 운영하는 하드웨어 시스템으로 믿고 있는 장치(출처: wikipedia.org)

하지만 LAPACK이 현재 존재하는 행렬 코드중에서 최고라고 할 수는 없다. 절대 공개되지 않는 빠른 행렬 코드는 반드시 존재한다. 대표적인 예가 미국이 운영하고 있다고 믿고 있는 에셜론(Echelon)이다. 에셜론이라는 말은 계층 혹은 사다리꼴 형태로 번역할 수 있는 말이다. 이 말이 수학에서 쓰인다면 연립 방정식(聯立方程式, simultaneous equations)을 쉽게 풀 수 있도록 사다리꼴 형태로 바꾼 모양을 의미한다. 연립 방정식과 행렬의 관계를 이해하기 위해 다음 과정을 사용한다. 먼저 어떤 시스템 특성을 아래 연립 방정식으로 근사화할 수 있다고 가정한다.

                          (1)

[그림 1]과 같은 행렬 정의에 의해 식 (1)은 다음 행렬로 동일하게 표현할 수 있다.

                          (2)

여기서 $\bf x$와 $\bf b$는 열 벡터(column vector), 행렬 ${\bf A}$의 차원(dimension)은 3행 3열 혹은 $3 \times 3$이라 정의한다. 식 (1)보다는 식 (2)가 대수(代數, algebra)적으로 잘 정리된 느낌이 든다. 식 (2)는 다음과 같은 붙임 행렬(augmented matrix)로 표현할 수도 있다.

                           (3)

식 (3)의 붙임 행렬을 잘 조작하면 동등한 특성을 가진 다음 붙임 행렬을 생성할 수 있다.

                          (4)

식 (4)의 붙임 행렬을 식 (3)의 사다리꼴 형태(echelon form)라고 부른다. 이 명칭은 행렬의 생긴 모양이 [그림 3]과 같은 사다리꼴(trapezoid)과 같아서 붙여졌다.

[그림 3] 사다리꼴의 모양(출처: wikipedia.org)

식 (2)의 미지수 개수가 몇 개 안된다면, 어떤 알고리즘(algorithm or algorism)을 쓰든지 계산 속도는 큰 차이 없다. 하지만 미지수가 수천개 혹은 수십만개인 경우는 문제의 수준이 달라진다. 식 (3)의 왼쪽 행렬($\bf A$)의 특성을 파악해서 식 (4)와 같은 사다리꼴 형태를 만들 수 있는 특별한 알고리즘을 찾아야 한다. 이와 같이 사다리꼴 형태 찾는 알고리즘이 행렬 이론 적용의 핵심이다. 또한 사다리꼴 형태의 유용성을 음미하면서 [그림 2]에 보인 에셜론이란 이름의 의미를 또렷하게 파악할 수 있다. 결국 사다리꼴 형태의 마지막식을 시작으로 식 (4)의 답을 아래처럼 손쉽게 계산한다.

                       (5)

이런 정도 이해를 바탕으로 행렬 연산을 하나하나 정의한다. 행렬 연산에서는 행렬 ≡ 연립 방정식이라는 유추만 기억하면 된다. 왜냐하면 [그림 1]과 같은 행렬은 식 (1)과 같은 연립 방정식을 우아하게 표현하기 위해 1850년실베스터 36세, 조선 철종 원년에 실베스터James Joseph Sylvester(1814–1897)가 도입한 개념이기 때문이다. 행렬을 사용하기 위한 사칙 연산은 다음과 같이 정의된다.

  • 곱셈
[그림 4] 행렬의 곱셈 정의(출처: wikipedia.org)

행렬은 식 (1)과 같은 연립 방정식을 멋지게 풀기 위해 도입한 개념이므로 연산 정의는 식 (2)와 같이 곱셈부터 시작한다. 행렬 곱셈인 [그림 4]의 과정을 수식으로 쓰면 아래와 같다.

                       (6)

여기서 $a_{ik}, b_{kj}, c_{ij}$는 행렬 ${\bf A}, {\bf B}, {\bf C}$의 원소이다. 예를 들어, $a_{ik}$는 행렬 $\bf A$의 $i$번째 행, $k$번째 열의 원소이다.

  • 덧셈과 뺄셈
행렬의 덧셈과 뺄셈은 식 (1)과 같은 연립 방정식을 서로 더하거나 빼는 과정을 의미한다. 그래서, 다음과 같이 덧셈과 뺄셈을 정의한다.

                        (7)

  • 상수배
행렬의 상수배는 식 (1)과 같은 연립 방정식을 상수로 곱하는 과정을 의미해서 아래로 정의한다.

                        (8)

  • 나눗셈
지금까지 논의한 곱셈과 상수배 정의를 이용하면 행렬의 나눗셈을 표현할 수 있다. 행렬의 나눗셈을 구하면 식 (1)의 연립 방정식 해답을 구할 수 있다. 식 (6)과 같은 곱셈을 기반으로 나눗셈을 정의한다.

                        (9)

식 (6)에 적당한 행렬 ${\bf A}^{-1}$을 곱해서 식 (9)와 같이 나눗셈을 정의할 수 있다. 적당한 행렬 ${\bf A}^{-1}$은 행렬 $\bf A$와 곱해져서 단위 행렬(單位行列], unit matrix) 혹은 항등 행렬(恒等行列], identity matrix)을 만들 수 있어야 한다. 단위 행렬은 대각선 원소가 1이고 이외는 모두 0인 정방 행렬(正方行列, square matrix: 행과 열의 수가 같음)을 의미한다. 단위 행렬인 경우는 아래 관계식이 성립한다.

                        (10)

식 (10)을 이용하면 단위 행렬의 원소 $I_{ij}$는 크로네커 델타(Kronecker delta)를 이용해 쉽게 표현할 수 있다.

                       (11)

식 (9)의 마지막식[${\bf A}^{-1}{\bf A}$ = ${\bf I}$]처럼 어떤 행렬 $\bf A$에 곱해져서 단위 행렬을 만들 수 있는 행렬은 행렬 $\bf A$의 역행렬(逆行列, inverse matrix)이라 부른다[1]. 행렬 $\bf A$의 원소를 이용해서 역행렬을 계산한다. 식 (9)의 마지막식[${\bf A}^{-1}{\bf A}$ = ${\bf I}$]을 참고하면 아래 관계가 반드시 성립해야 한다.

                       (12)

여기서 행렬 $\bf A$의 원소는 $a_{ij}$, $\bf A$의 역행렬[${\bf A}^{-1}$] 원소는 $A_{ij}$라 정의한다. 표기법상 행렬[$\bf A$]은 알파벳을 굵고 진하게 쓰고 행렬의 원소[$a_{ij}$]는 이런 장식없이 그냥 쓴다. 그냥 봐서는 역행렬 원소 $A_{ij}$를 구할 수 없다. 정보가 좀 필요하다. 뭔가 하면 행렬식(行列式, determinant)이다. 행렬식의 영어 의미는 식 (1)과 같은 연립 방정식의 답을 구할 수 있는가 결정해주는 판별식이다. 이름은 행렬식이지만[영어는 행렬식이 아닌 판별식임을 기억한다.] 행렬이 제안되기 훨씬 이전에 제안되어 충분한 연구가 진행된 개념이다. 그러므로, 행렬 증명에 행렬식을 쓰더라도 문제는 없다. 행렬식은 행(行, row)에 대한 라플라스 전개(Laplace expansion)를 이용해 다음처럼 표현할 수 있다.

                       (13)

여기서 $C_{ij}$는 행렬 $\bf A$의 여인자(餘因子, cofactor), $M_{ij}$는 원소 $a_{ij}$의 소행렬식(小行列式, minor)이다. 행렬 원소 $a_{ij}$의 여인자 $C_{ij}$는 $\operatorname{cof}(a_{ij})$라고 표기하기도 한다. 예시로써 소행렬식 $M_{23}$을 아래와 같이 계산할 수 있다.

                      (14)

즉, $M_{23}$은 2행과 3열 원소 전체를 식 (14)처럼 삭제한 후 계산하는 행렬식이다. 다시 식 (12)로 돌아가서 식 (12)와 (13)을 비교한다. 그러면 아주 놀라운 사실을 발견할 수 있다. 역행렬의 원소를 여인자가 되도록 하면 대각선에서는 값이 있고 나머지에서는 0이 되도록 할 수 있다.

                       (15)

식 (15)에서 $i \ne j$인 경우가 0이 됨은 당연하다. 왜냐하면, $i \ne j$인 경우 여인자 $C_{ki}$는 $j$열 원소를 포함하고 있고 $a_{kj}$도 $j$열 원소를 가지므로 $C_{ki}$와 $a_{kj}$의 열이 서로 중복되어 행렬식 관점에서 당연히 0이 되어야 한다. 반대로 $i$ = $j$ 경우는 여인자 $C_{ki}$가 $i$열 원소를 배제하고 있으므로 0이 될 필요는 없다. 이렇게 쉽게 역행렬을 정의할 수 있는 이유는 행렬식이 매우 잘 정의되었기 때문이다. 따라서 역행렬은 행렬식을 이용하여 다음으로 정의할 수 있다.

                       (16)

식 (9)와는 다르게 역행렬을 반대편에도 곱한다.

                       (17)

식 (17) 증명에는 열(列, column)에 대한 라플라스 전개도 동일하다는 행렬식의 성질을 이용해야 한다.

행렬의 나눗셈 정의를 통해 역행렬의 다양한 성질을 아래와 같이 증명할 수 있다.

           (18)

              (19)    

역행렬은 매우 유용한 개념이기 때문에, 주어진 행렬에 대한 역행렬은 딱 하나만 있으면 좋겠다. 우리의 희망대로 역행렬의 유일성(uniqueness of inverse matrix)이 있는지 알아본다. 먼저 역행렬이 하나 더 존재한다고 가정한다. 기존 역행렬 ${\bf A}^{-1}$와 다른 새로운 역행렬을 $\bf B$라 한다. 그러면 다음 행렬 관계가 성립한다.

                       (20)

식 (20)에 의해 하나 더 존재하는 역행렬 $\bf B$는 ${\bf A}^{-1}$과 동일하다. 이와 같이 역행렬의 유일성은 매우 쉽게 증면된다. 행렬의 연산자적 특성을 알아보기 위해 행렬의 교환 법칙과 결합 법칙을 살펴본다.

                        (21)

                       (22)

행렬의 곱셈 정의인 식 (6)을 고려하면 교환 법칙이 일반적으로 성립하지는 않음을 쉽게 증명할 수 있다. 결합 법칙 증명을 위해 식 (22)의 좌변과 우변을 식 (6)으로 표현한다.

                       (23)

스칼라(scalar)의 분배 법칙으로 인해 식 (23)의 첫째식과 둘째식은 항상 같다. 그래서, 행렬의 결합 법칙이 증명된다. 식 (23)과 동일한 방법으로 식 (24)의 행렬 분배 법칙도 증명 가능하다.

                        (24)

행렬 이론에 등장하는 다양한 행렬을 모양이나 특성에 따라 정의한다. 식 (10)의 항등 행렬(identity matrix) $\bf I$를 일반화하면 아래와 같이 대각 행렬(diagonal matrix) $\bf D$를 정의할 수 있다.

                       (25)

대각 행렬은 대각선 방향으로만 원소가 있기 때문에 행렬의 사칙 연산이 매우 간단해진다.

          (26)

대각 행렬은 단위 행렬의 일반화로 볼 수 있다.
식 (4)와 같은 사다리꼴 형태의 행렬은 삼각 행렬(三角行列, triangular matrix)이라 한다. 삼각 행렬은 원소가 놓여있는 위치에 따라 상삼각 행렬(上三角行列, upper triangular matrix) $\bf U$와 하삼각 행렬(下三角行列, lower triangular matrix) $\bf L$로 구분한다.

                       (27)

                       (28)

삼각 행렬의 대각선 원소가 모두 $0$이면, 이 행렬은 더 구체적으로 엄격 삼각 행렬(strictly triangular matrix)이라 한다. 엄격 삼각 행렬은 엄격 상삼각 행렬(strictly upper triangular matrix)엄격 하삼각 행렬(strictly lower triangular matrix)이 가능하다. 또한 수치 계산이 용이한 사다리꼴 형태로 만든다는 뜻은 행렬 구조를 상삼각 행렬이나 하삼각 행렬로 바꾸기를 의미한다.
행렬 이론에서 중요한 또 하나의 행렬은 대칭 행렬(對稱行列, symmetric matrix) ${\bf A}_\text{sym}$ 혹은 $\bf S$이다. 물리학에서 나타나는 행렬은 대칭성을 가지는 경우가 대부분이다. 대칭 행렬을 정의하기 위해 전치 행렬(자리 바꿈 행렬, 轉置行列, transpose) ${\bf A}^T$를 생각한다.

                        (29)

전치 행렬이 가진 재미있는 성질은 행렬 곱셈에서 나타난다. 식 (6)의 행렬 곱셈 정의를 이용해 행렬 곱의 전치 행렬을 아래와 같이 계산한다.

                       (30)

식 (30)과 (18)을 이용하면 전치 행렬의 역행렬을 아래와 같이 정의할 수 있다.

                        (31)

전치 행렬 개념을 이용하면 식 (16)으로 정의한 역행렬을 좀더 우아하게 표현할 수 있다.

                        (32)

여기서 ${\rm adj}({\bf A})$는 행렬 $\bf A$의 딸림 행렬 혹은 수반 행렬(adjugate or adjoint matrix)이다. 전치 행렬은 식 (29)처럼 행렬의 행과 열을 서로 바꾸기 때문에 대칭 행렬을 다음과 같이 정의할 수 있다.

                        (33)

대칭 행렬과 비슷하지만, 다음 관계를 만족하는 행렬 ${\bf A}_\text{skew}$는 반대칭 행렬(反對稱行列, antisymmetric matrix)혹은 꼬인 대칭 행렬(skew-symmetric matrix)이라 한다.

                       (34)

식 (34)에 의해 반대칭 행렬의 대각선 원소(diagonal element)는 항상 0이다. 행과 열 번호를 바꾼 비대각선 원소(off-diagonal element)를 보면, 원소의 크기는 같고 부호는 반대이다. 또한 임의의 행렬 $\bf A$는 대칭 행렬과 반대칭 행렬의 합으로 분해할 수 있다.

                       (35)

대칭과 반대칭 행렬은 일반 행렬의 특별한 경우라고 생각할 수도 있지만, 식 (35)는 행렬 속에 숨은 본질이 대칭성과 반대칭성이라는 함의를 보여준다.

[그림 5] 행 벡터의 예시(출처: wikipedia.org)

[그림 6] 열 벡터의 예시(출처: wikipedia.org)

행렬은 벡터(vector)의 모임이라 생각할 수 있다. [그림 5]처럼 동일한 행을 가진 원소는 행 벡터(row vector), [그림 6]처럼 동일한 열을 가지면 열 벡터(column vector)가 된다. 행 벡터의 차원은 $1 \times n$, 열 벡터의 차원은 $m \times 1$이다. [그림 5]와 같이 행 벡터를 $m$개 쌓으면, [그림 1]에 있는 차원이 $m \times n$인 행렬을 만들 수 있다. 마찬가지로 [그림 6]처럼 열 벡터를 $n$개 붙이면 $m \times n$ 행렬이 된다. [그림 6]에 소개한 행 혹은 열 벡터를 이용하면, 2차원인 행렬 원소를 [그림 7]처럼 일관되게 1차원 순서로 정렬할 수 있다. 행 벡터를 우선하여 번호를 붙이는 방식은 행 우선 순서(row-major order)라 부른다. 열 벡터를 기준으로 번호를 붙이면 열 우선 순서(column-major order)가 된다. 쉽게 말해 행과 열 우선 순서는 각각 행렬을 행과 열 벡터의 배열(array)로 본다. 포트란(Fortran: IBM 수학 공식 번역 체계, The IBM Mathematical Formula Translating System)으로 작성한 LAPACK에서는 주로 열 우선 순서[= 열 벡터의 배열]로 행렬의 원소를 저장한다. 그래서 열 우선 순서를 포트란 순서(Fortran order)로 부르기도 한다. 반면에 C 언어(C language)의 2차원 배열(array)은 행 벡터의 배열인 행 우선 순서로 자료를 저장한다. 예를 들어, i행 j열의 원소 a[i][j]는 지시자(pointer)인 행 벡터 a[i]를 찾아간 후 j번째 원소에 접근한다. 이런 관점에서 행 우선 순서를 포트란 순서에 대비되는 C 순서(C order)로 명명할 수 도 있다.

[그림 7] 행 혹은 열 우선 순서(출처: wikipedia.org)

행렬은 벡터를 포함하므로, 벡터 곱셈(vector multiplication)벡터 내적(dot product) $\bar x \cdot \bar y$와 벡터 외적(cross product) $\bar x \times \bar y$를 행렬로 표현할 수 있다. 실수와 복소 영역에서 $n$차원 벡터의 벡터 내적 혹은 점곱은 행렬을 이용해 다음처럼 각각 재정의할 수 있다.

                       (36a)

                       (36b)

여기서 $\bf x$, $\bf y$는 $n$차원 열 벡터, $(\cdot)^*$는 켤레 복소수(complex conjugate)를 의미한다. 마찬가지로 3차원 위치 벡터(position vector)에 대한 벡터 외적 혹은 교차곱을 행렬의 곱으로 다시 표현할 수 있다.

                       (37)

여기서 $\bf x$, $\bf y$는 3차원 열 벡터, ${\bf C}({\bf x})$는 $\bf x$로 만든 교차곱 행렬(cross-product matrix)이다. 벡터 곱셈 중에서 행렬을 생성하는 연산으로 외적(外積, outer product) $\bar x \otimes \bar y$가 있다.

                       (38)

여기서 벡터 내적의 행렬 곱셈 순서를 바꾸면 외적 모양이 되며, 외적의 대각합(trace)은 다시 벡터 내적으로 나온다. 외적에 대비되게 벡터 외적 혹은 교차곱의 연산 결과는 항상 벡터로 유지된다.
식 (25)와 같은 대각 행렬은 아니지만 유사한 특성을 가진 행렬은 대각 지배 행렬(diagonally dominant matrix)이라 한다[2]. 대각 지배 행렬은 모든 행에 대해 다음 부등식이 성립한다.

                       (39)

여기서 $a_{ij}$는 행렬 $\bf A$의 원소, $\bf A$의 차원은 $n \times n$이다. 식 (39)에서 등식이 빠져서 대각선 원소가 나머지 원소의 합보다 항상 크면 엄격 대각 지배 행렬(strictly diagonally dominant matrix)이라 한다.

                       (40)

식 (40)과 구별되는 식 (39)의 조건을 만족하는 행렬은 약한 대각 지배 행렬(weakly diagonally dominant matrix)이라고도 한다. 엄격 대각 지배 행렬은 당연히 약한 대각 지배 행렬도 된다. 대각 지배 행렬은 행과 열 개수가 매우 큰 행렬의 역행렬이나 행렬식(determinant) 특성을 판정할 때 유용한 개념이다. 예를 들어, 엄격 대각 지배 행렬은 항상 역행렬이 존재하고 행렬식도 $0$이 아니다. 즉, 대형 행렬의 행렬식을 직접 계산할 필요 없이 식 (40)처럼 대각선 원소와 나머지 비대각선 원소의 합만 구해도 행렬식이 $0$인지 아닌지 쉽게 파악할 수 있다. 또한 대형 행렬로 구성된 연립 방정식을 풀 때 많이 쓰는 행렬의 반복법(iterative method of matrix)에도 대각 지배 행렬 개념이 유용하다. 반복을 통해 근사하는 현재 연립 방정식 해의 수렴성은 고유치(eigenvalue)의 크기나 대각 지배 행렬 등으로 판정할 수 있다.
행렬의 대각합(對角合, trace) $\operatorname{tr}({\bf A})$은 말 그대로 모든 대각선 원소 $a_{ii}$의 단순 합으로 정의한다.

                       (41)

여기서 $a_{ij}$는 행렬 $\bf A$의 원소, $\bf A$의 차원은 $n \times n$이다. 유치해보이는 대각합은 재미난 성질을 많이 가지고 있다. 대각합이 놀랍도록 신기하게 쓰이는 경우는 행렬의 고유치(eigenvalue)이다. 행렬의 모든 고유치의 합은 대각합과 정확히 같아진다. 근 찾기(root finding or searching)로 구하는 고유치의 합이 행렬의 대각합과 같기 때문에, 고유치의 특성을 식 (41)로 유추할 수 있다.

여러 방식으로 정의한 다양한 종류의 행렬은 스칼라(scalar) 혹은 벡터(vector)와 확연히 다른 다음과 같은 성질을 가지고 있다. 


   1. 기본(basics)   

[행렬 항등식]

                       (1.1)

                       (1.2)

[반대각 행렬(anti-diagonal matrix)]

                       (1.3a)

                       (1.3b)

                       (1.3c)

여기서 ${\bf J}$는 교환 행렬(exchange matrix), $\bf I$는 단위 행렬이다. 대각 행렬이 대각선(diagonal)에만 원소를 가지는 성질과 비슷하게, 반대각 행렬(anti-diagonal matrix) ${\bf D}_\text{anti}$는 반대각선(anti-diagonal)에 원소가 배치되고 나머지 위치는 모두 0이다.

[반전치 행렬(anti-transpose)]

                       (1.4a)

                       (1.4b)

여기서 $n$은 행 혹은 열 개수, ${\bf A}^\bot$는 $\bf A$의 반전치 행렬(anti-transpose)이다. 반전치 행렬은 대각선이 아닌 반대각선(anti-diagonal)을 대칭선으로 삼아 원소를 전치한다.

                       (1.5)

[증명]
식 (1.5)의 좌변에 식 (1.4a)를 적용한 후 다시 식 (30)으로 간략화한다.
______________________________

행렬 곱의 반전치 연산은 식 (30)처럼 전치 연산과 동일하게 작용한다.

[직각 대칭 행렬(persymmetric matrix)]

                       (1.6a)

                       (1.6b)

여기서 $n$은 행 혹은 열 개수이다. 교환 행렬 $\bf J$는 반대각 행렬 ${\bf D}_\text{anti}$의 특별한 경우이며, 대칭이면서 직각 대칭도 된다. 그래서 $\bf J$를 곱해 대칭 행렬 $\bf S$를 직각 대칭 행렬(persymmetric matrix)로 바꿀 수 있다. 대칭 행렬 $\bf S$가 대각선[↘]에 대해 대칭이라면, 직각 대칭 행렬 ${\bf S}_\text{per}$은 대각선에 직각인 반대각선[↙] 기준으로 대칭이다. 직각 대칭 행렬의 유명한 예는 퇴플리츠 행렬(Toeplitz matrix)이다.

[쌍대칭 행렬(bisymmetric matrix)]

                       (1.7)

대칭과 직각 대칭을 동시 만족하는 행렬은 쌍대칭 행렬(bisymmetric matrix)이 된다. 단위와 교환 행렬은 쌍대칭 행렬의 대표적 예이다. 대칭 퇴플리츠 행렬(symmetric Toeplitz matrix)도 쌍대칭 행렬에 속한다.


   2. 대칭 행렬(symmetric matrix)   

[대칭 행렬 연산]
(a) 대칭 행렬 ${\bf A}, {\bf B}$에 대해 ${\bf A} \pm {\bf B}$도 대칭 행렬이다. 또한 $k{\bf A}$도 대칭 행렬이다.
(b) 대칭 행렬 ${\bf A}, {\bf B}$에 대해 ${\bf AB} + {\bf BA}$도 대칭 행렬이다.
(c) 대칭 행렬 ${\bf A}$의 거듭제곱 ${\bf A}^m$도 대칭 행렬이다.
(d) 대칭 행렬 ${\bf A}$의 역행렬 ${\bf A}^{-1}$도 대칭 행렬이다.
(e) 대칭 행렬 ${\bf A}, {\bf B}$가 ${\bf AB} = {\bf BA}$를 만족하면, $({\bf AB})^m = {\bf A}^m {\bf B}^m$이 성립한다.
(f) 대칭 행렬 ${\bf A}, {\bf B}$에 대해 ${\bf AB} = {\bf BA}$ $\Leftrightarrow$ $({\bf AB})^T = {\bf AB}$가 성립한다.
여기서 $k$는 스칼라이다.

[명제 (a)의 증명]
비대각선 원소에 대해 $a_{ij} \pm b_{ij}$ = $a_{ji} \pm b_{ji}$가 성립하므로, ${\bf A} \pm {\bf B}$는 대칭 행렬이다. 비슷하게 스칼라 $k$를 곱한 행렬 $k {\bf A}$의 비대각선 원소를 비교하면, $k {\bf A}$도 정확히 대칭 행렬이 된다.

[명제 (b)의 증명]
주어진 행렬에 전치 행렬을 취하고 식 (30)을 이용해서 계산하면 다음과 같다.

                  (2.1)

[명제 (c)의 증명]
행렬 ${\bf A}^2$ = ${\bf AA}$에 전치 행렬을 적용하면, $({\bf A}^2)^T$ = ${\bf A}^T {\bf A}^T$ = ${\bf AA}$이 성립한다. 이 과정을 계속 반복해서 더 높은 차수의 거듭제곱 관계식을 증명한다.

[명제 (d)의 증명]
역행렬의 전치 행렬에 대해, 식 (31)과 유사한 행렬 연산을 차례대로 사용한다.

                  (2.2)

[명제 (e)의 증명]
행렬의 곱 $\bf AB$의 제곱에 대해 $({\bf AB})^2$ = $\bf ABAB$ = $\bf AABB$ = ${\bf A}^2 {\bf B}^2$이 타당하다. 비슷한 방식으로 행렬의 곱에 대한 고차 거듭제곱은 각 행렬의 고차 거듭제곱의 곱으로 확장된다.

[명제 (f)의 증명]
교환 법칙의 우변을 이중 전치 행렬로 바꾸면 명제의 오른쪽 식이 증명된다.

                  (2.3)

마찬가지로 대칭 행렬의 곱 $\bf AB$에 대해 전치 행렬 연산을 써서 명제의 왼쪽 식을 유도한다.

                  (2.4)
______________________________

명제 (e)에서 조심할 부분이 하나 있다. 행렬 ${\bf A}, {\bf B}$가 대칭 행렬이라 하더라도 ${\bf AB}$가 대칭 행렬이라는 보장은 없다. 따라서 명제 (e)는 대칭 행렬 ${\bf AB}$에 대한 거듭제곱 관계식이 아니고, 두 대칭 행렬 ${\bf A}, {\bf B}$의 곱에 대한 공식이다.

[$2 \times 2$ 대칭 행렬 곱의 대칭성]

                  (2.5)

[증명]
두 행렬을 곱한 후, 대칭성 조건을 비교해서 증명한다.
______________________________

만약 $a$ = $c$, $e$ = $g$라면, $b, f$에 관계없이 대칭성이 성립한다. 또한 식 (2.5)와 대칭 행렬 연산의 특성에 의해 식 (2.5)에 나온 두 행렬의 곱은 교환 법칙도 만족한다.

[직각 대칭 행렬]

                       (2.6a)

                       (2.6b)

                       (2.6c)

여기서 ${\bf S}$와 ${\bf S}_\text{per}$는 각각 대칭 및 직각 대칭 행렬, $\bf B$는 대칭이면서 동시에 직각 대칭인 쌍대칭 행렬이다. 교환 행렬 $\bf J$를 ${\bf S}_\text{per}$의 우측에 곱해도 대칭과 직각 대칭 관계를 만족한다.

[직각 대칭 행렬 연산]
(a) 직각 대칭 행렬 ${\bf A}$의 역행렬 ${\bf A}^{-1}$도 직각 대칭 행렬이다.

[명제 (a)의 증명]
역행렬 ${\bf A}^{-1}$은 $({\bf JS})^{-1}$ = ${\bf S}^{-1} {\bf J}$를 만족한다. 여기서 $\bf S$는 대칭 행렬이다. 대칭 행렬 $\bf S$의 역행렬은 다시 대칭 행렬이므로, ${\bf A}^{-1}$는 직각 대칭 행렬이다.
______________________________


   3. 대각 행렬(diagonal matrix)   

[교환 법칙]
행렬 $\bf A$는 대각 행렬  $\Leftrightarrow$  ${\bf DA} = {\bf AD}$
여기서 대각 행렬 $\bf D$의 대각선 원소 $d_i$는 항상 서로 다르다[혹은 지표 $i \ne j$이면, $d_i \ne d_j$이다].

[증명]
행렬 $\bf A$가 대각 행렬인 경우는 $\bf DA$와 $\bf AD$의 대각선 원소를 구해 비교하여서 명제의 오른쪽 식을 증명한다. 두 행렬 $\bf D$, $\bf A$가 교환 법칙을 만족하면, 비대각선 원소에 대해 다음 관계가 성립한다.

                       (3.1)

따라서 명제의 왼쪽 식이 유도된다.
______________________________

단위 행렬 $\bf I$처럼 대각선 원소 $d_i$가 모두 같다면, 행렬 $\bf A$는 대각 행렬이란 조건이 사라지고 임의의 행렬일 수 있다.

[반대각 행렬(anti-diagonal matrix)]

                       (3.2)

교환 행렬 $\bf J$가 곱해지는 위치에 따라 반대각 행렬의 원소가 나열되는 방향이 바뀐다.


   4. 대각합(trace)   

[행렬 원소의 곱]

                       (4.1)

여기서 $a_{ij}, b_{ij}$는 행렬 ${\bf A}, {\bf B}$의 원소, ${\bf A}, {\bf B}$의 차원은 $n \times n$이다.

[증명]
두 정방 행렬의 곱은 다음 성질을 가진다.

                       (4.2)

식 (4.2)의 오른쪽 식에서 $j$ = $k$ 조건을 만족하도록 모든 대각선 원소를 모으면 식 (4.1)이 된다.
______________________________

식 (4.1)에 의해 두 행렬 원소를 각각 곱해서 모두 더한 결과는 행렬 곱의 대각합과 완전히 동일하다.


[참고문헌]
[2] R. S. Varga, "On recurring theorems on diagonal dominance," Linear Algebra and its Applications, vol. 13, no. 1–2, pp. 1–9, 1976.

[다음 읽을거리]