선형대수 방정식 : 수학적 기초지식
공학도를 위한 수치해석 : Steven C. Chapra, Raymond P. Canale 저, 김철.김태국.나양.신동신.이승배 공역, McGraw-Hill Korea, 2002 (원서 : Numerical Method for Engineers, 4th ed), Page 205~214
행렬은 기호로 표시된 요소들의 사각형 모양의
배열로 구성되어 있다. 그림 1 에 있는 것처럼, [A] 는 행렬을 표시하는 간결한 표기법이며,
는 행렬을 구성하는 각각의 요소 (element) 들이다.
이 요소들의 가로 방향의 집합을 행 (row) 이라고
부르며, 세로 방향의 집합을 열 (column) 이라고 부른다. 첫 번째 하첨자
는 요소가 소속되어 있는 행의 위치를 항상 나타내며, 하첨자
는 열을 나타낸다. 예를 들어 요소
는 두 번째 행과 세 번째 열에 위치한다.
그림 1 에 있는 행렬은
개의 행과
개의 열을 가지고 있으며,
의 차원을 갖는다고 말한다. 또 이를
행렬이라고 한다.
다음과 같이 행의 차원이
인 행렬을,

행벡터 (row vector) 라고 한다. 간결하게 표기하기
위해, 각 요소의 첫 번째 하첨자는 생략한다. 행행렬을 다른 종류의 행렬과 구분하기
위해 특별한 표기법을 사용하는 경우도 종종 있다 (한 가지 방법으로는,
와 같이 대괄호의 모서리가 열린 특별한 기호를 사용하기도 한다).
|
Column 3 |
||
|
|
|
|
|
|
|
|
그림 1 행렬
다음과 같이 열의 차원이
인 행렬을

열벡터라고 한다. 표기의 간편성을 위해 두 번째
하첨자를 생략한다. 행벡터에서와 같이, 열행렬을 다른 종류의 행렬과 구분하기 위해
특별한 표기법을 사용하기도 한다. 이를 위해 사용되는 한 가지 방법으로는
와 같이 특별한 괄호를 사용하는 것이다.
인 행렬을 정사각형행렬 (square matrices) 라고 부른다. 예를 들어, 4×4
행렬은 다음과 같다.

와
의 요소로 이루어진 대각선을 행렬의 기본 (principal) 대각선 또는 주 (main)
대각선이라고 한다.
정사각형행렬은 연립선형 방정식을 풀 때 매우 중요한 역할을 한다. 이 경우, 유일한 해가 존재하기 위해서는 방정식의 개수 (행의 개수에 해당함) 와 미지수의 개수 (열의 개수에 해당함) 가 같아야 한다. 결과적으로, 그와 같은 시스템에서는 계수들로 이루어진 정사각형행렬이 얻어지게 된다. 정사각형행렬의 특수한 형태들이 보충설명 1 에 기술되어 있다.
|
보충설명 1 정사각형행렬의 특수한 형태 |
|
중요한 몇 가지 특수한 형태의 정사각형행렬들에 대해서 알아보도록 하자. 대칭행렬 (symmetric matrix) 은 모든
은 3×3 대칭행렬이다. 대각행렬 (diagonal matrix) 은 다음의 예와 같이 대각선을 제외한 모든 요소들이 0 인 행렬이다.
많은 요소들이 0 인 경우, 이를 0 으로 표시하는 대신 빈칸으로 남겨 놓는다는 것에 유의하라. 단위행렬 (identity matrix) 은 다음과 같이 주대각선 상의 모든 요소들이 1 인 대각행렬이다.
여기서 단위행렬을 표시하기 위해 상부삼각행렬 (upper triangular matrix) 은 다음과 같이, 주대각선 하부의 모든 요소들이 0 인 경우이다.
하부삼각행렬 (lower triangular matrix) 은 다음과 같이, 주대각선 상부의 모든 요소들이 0 인 경우이다.
띠행렬 (banded matrix) 은 주대각선을 중심으로 한 띠 (band) 를 제외한 모든 요소가 0 인 행렬이다.
위 행렬은 세 개의 띠넓이 (badwidth) 를 가지는 경우이며, 삼중대각행렬 (tridiagonal matrix) 이라는 특별한 이름으로 불린다. |
앞서 행렬에 대한 정의를 하였으므로, 이를 사용할
때 적용되는 몇 가지 연산법칙을 정의할 필요가 있다. 두 개의
행렬은, 첫 번째 행렬의 모든 요소들이 두 번째 행렬의 모든 요소와 동일할 때,
서로 같다고 한다. 즉, 모든
와
에 대해
이면
이다.
와
두 행렬의 덧셈은 각각의 행렬에서 같은 위치에 있는 요소들을 더함으로써 정의된다.
그 결과로 행렬
는 다음과 같이 얻어진다.

여기서
는
이고,
는
이다.
마찬가지로,
는 다음과 같이, 같은 위치에 있는 요소들을 빼줌으로써 정의된다.

여기서
는
이고,
는
이다.
위 정의로부터 덧셈과 뺄셈은 같은 차원을 갖는 행렬에 대해서만 수행된다는 것을 알 수 있다.
덧셈과 뺄셈은 모두 교환법칙이 성립한다. 즉,

덧셈과 뺄셈은 또한 결합법칙이 성립한다. 즉,

행렬
에 상수
를 곱하면, 그 결과는 다음과 같이
의 모든 요소에
를 곱하는 것과 같이 된다.

는
두 행렬의 곱셈은
로 표시하는데,
의 요소는 다음과 같이 정의된다 (행렬의 곱셉의 개념을 이해하기 위해서는 보충설명
2 를 참조할 것).
(1)

그림 2
여기서
은
의 열의 차원이며,
의 행의 차원이다. 즉,
요소는 첫 번째 행렬의
번째 행의 각각의 요소를 두 번째 행렬의
번째 열의 각각의 요소와 곱한 다음 그 각각의 항들을 더해서 얻는다.
|
보충설명 2 : 두 행렬을 곱하는 간단한 방법 |
|
식 (1) 이 컴퓨터 프로그래밍에 쉽게 이용될 수 있지만, 두 행렬의 곱셈 과정을 시각적으로 보여주는 방법은 아니다. 다음의 내용은 이 연산과정을 조금 더 이해하기 쉽도록 설명하고 있다.
결과
따라서,
이와 같은 방법으로 계산이 진행되면, 다음과 같은 행과 열의 배열을 얻게 되어, 결과는
위에 설명한 간단한 방법은 첫 번째 행렬의 열 수가 두 번째 행렬의 행수가 같지 않으면 곱셈을 수행할 수 없다는 것을 명확히 보여주고 있다. 또한 위 예제는 행렬의 곱셈에서 곱하는 순서가 중요하다는 것을 보여주고 있다 (즉, 행렬의 곱셈에는 교환법칙이 성립하지 않는다). |
이 정의에 의해, 첫 번째 행렬에서 열의 개수가
두 번째 행렬의 행의 개수가 같을 때만 곱셈이 정의된다. 따라서
가
행렬이라면
는
행렬의 차원을 가져야 한다. 이 경우, 곱셈의 결과인
행렬은
의 차원을 갖는다. 그러나, 만일
가
행렬이었다면, 위 곱셈은 수행되어질 수 없다. 그림 2 는 두 행렬의 곱셈이
수행되어질 수 있는지 쉽게 확인해보는 방법을 보여주고 있다.
만일 행렬의 차원에 문제가 없다면, 행렬의 곱셈은 교환법칙을 만족하고,

분배법칙도 성립한다.

또는

그러나, 곱셈의 경우 일반적으로 교환법칙이 성립하지 않는다.

즉, 곱셈의 경우 곱해지는 순서가 중요핟.
그림 3 은
행렬
에
행렬
을 곱한 후, 그 결과를
행렬
에 저장하는 가상코드를 보여주고 있다. 내적 (inner product) 의 결과를
에 저장하지 않고, 임시 변수 sum 에 일단 저장한다. 이처럼 하는 이유는 두
가지 인데, 첫째로 컴퓨터는
의 위치를
번이 아닌,
번만 결정하면 되기 때문에 조금 더 효율적이고, 둘째로, sum 을 배정밀도로
선언하였기 때문에 곱셈 결과에 대한 정밀도가 향상되기 때문이다 (3.4.2 절에서의
내적에 관한 내용 참조).
행렬의 곱셈은 가능하지만, 나눗셈은 정의되지
않는다. 그러나 만일
가 정사각형행렬이며, 특이하지 않다면 (nonsingular), 다음과 같이
의 역행렬 (inverse) 라고 불리는 행렬인
가 존재한다.
(2)
따라서, 어떤 행렬에 역행렬을 곱하는 것은 나눗셈과 유사한데, 이는 어떤 수를 그 자신으로 나누어 1 이 되는 것과 같은 맥락이다. 즉, 어떤 행렬에 그의 역행렬을 곱하면 단위행렬이 된다 (보충설명 1 을 참조).
2 차원 (two-dimensional) 행렬의 역행렬은 다음과 같이 나타낼 수 있다.
(3)
|
SUBROUTINE Mmult (a, b, c, m, n, l) DO i = 1, n DO j = 1, l sum = 0. DO k = 1, m sum = sum + a(i, k)ㆍb(k, j) END DO c(i, j) = sum END DO END DO |
그림 3
2 차 이상의 고차원 행렬의 경우에는 그 공식이 매우 복잡해진다. LU 분해법과 역행렬과 특수행렬과 Gauss-Seidel 법에서는 그와 같은 경우에 역행렬을 구하는 수치기법에 대해 자세히 다룰 것이다.
유용하게 사용될 수 있는 다른 두 가지 행렬의 연산에는 행렬의 전치 (transpose) 와 행렬의 trace 가 있다. 전치행렬은 원행렬의 행과 열을 서로 교환한 경우를 말하는데, 예를 들어, 4×4 행렬의 경우,

일 때, 전치행렬을
라고 하면

다시 말해서, 전치행렬의 요소
는 원래의 행렬의
와 같다.
전치 (transpose) 는 행렬연산에서 매우 다양한 기능을 제공한다. 장점 중의 한 가지로는 열벡터를 행으로 표시할 수 있다는 것인데, 예를 들어, 만일

이라면,

여기서, 하첨자
는 전치를 표시한다. 어떤 문서에서 열벡터를 이와 같이 표시하게 되면 공간을
절약할 수 있다. 전치 또한 많은 수학적 응용을 가지고 있다.
행렬의 trace 는 원행렬의 주대각선 상의 요소들을
다 더한 값이다. 이는
로 표시되며, 다음과 같이 계산된다.

trace 는 제 27 장의 고유값 문제의 설명에서 사용될 것이다.
마지막으로 유용한 행렬연산에는 확장 (augmentation) 이라는 것이 있다. 원행렬에 한 개의 열 (또는 한 개의 이상의 열들) 을 더함으로써 주어진 행렬이 확장되었다고 말한다. 예를 들어 다음과 같이 계수로 된 행렬의 경우,

행렬
를 단위행렬로 확장하고자 하는 경우가 있다 (보충설명 1 참조). 이 경우, 확장된
행렬은 3×6 의 차원을 가지는 행렬이 된다.
|
|
|
이와 같은 표현은 두 개의 행렬에 동일한 연산들을 수행하여야 할 필요가 있을 때 매우 유용하게 사용된다. 즉, 연산을 각각의 행렬에 수행하지 않고, 하나의 확장된 행렬에 연산을 수행할 수 있다.
행렬은 연립선형 방정식을 나타내는 매우 간결한 방법을 제공한다. 예를 들어 식 (1) 은 다음과 같이 표현될 수 있는데,
(4)
여기서
는 다음과 같은 계수를 가지는
행렬이다.

는 상수값을 가지는
열벡터이며,

는 미지수로 된
열벡터이다.

행렬의 곱셈의 정의 [식 (1) 또는 보충설명 2]
에 의하면 PT (1) 과 식 (4) 과 동일하다는 것을 알 수 있다. 또
의 열의 개수
이
의 열의 개수와 같으므로 식 (4) 로 주어지는 행렬의 곱셈은 잘 정의된다.
PT
(1)
행렬연산을 통해 식 (4) 의 해
를 구하는 방법은 다음과 같이 식의 양변에
의 역행렬을 곱하는 것이다.

여기서
는 단위행렬과 같으므로 방정식은 다음과 같이 된다.
(5)
따라서 위 식으로부터
를 구하게 된다. 위 과정은 역함수가 행렬연산에서 하는 나눗셈 과정과 비슷한
역할을 하는 것에 대해 보여주고 있다. 그렇지만 위 방법이 연립 방정식을 푸는 매우
효율적인 방법은 아니다. 즉, 실제 수치 알고리즘에는 다른 기법들이 사용된다. 그러나
LU 분해법과 역행렬에서 언급할 바와 같이, 역행렬 그 자체는 공학 문제의 해결에
매우 중요한 역할을 한다.
마지막으로,
를
를 이용하여 확장하고자 하는 경우가 있다. 예를 들어,
이라면, 그 결과는 3×4 차원을 가지는 행렬이 된다.
|
|
|
이와 같은 형태로 방정식을 표현하는 것은 매우 유용하다고 할 수 있는데, 이는 연립선형 방정식을 푸는데 사용되는 여러 가지 기법들이 좌변행렬의 행에 있는 요소들에 수행할 작업을 그에 해당하는 우변상수 (right hand side constant) 에도 적용하기 때문에, 식 (6) 에서와 같이, 계수행렬 (coefficient matrix) 과 우변벡터 (right-hand-side vector) 에 따로 따로 연산을 수행하지 않고 확장된 행렬에 그 연산을 한 번만 적용하면 되기 때문이다.