Chapter 4. 행렬 응용

- 무엇을 행렬이라 하는가?

- 행렬의 연산에는 어떤 것이 있는가?

- 선형시스템을 구성하여 풀 수 있는가

- Gauss-Jordan 제거법의 용도는?

- 역행렬을 구할 수 있는가?

- 고유치 및 고유벡터는 어디에 활용되나?

- 고유치 중에서 제일 큰 값은?

- 주어진 값에 제일 가까운 고유치는?

- 행렬의 100승을 구하시오.

이번 장에서는 다음의 문제를 접하면서 행렬의 필요성을 인지하도록 하자.

미지수 [eqn: x _{1} ,`x _{2} ,` CDOTS ,`x _{n}]에 관한 일차방정식은 다음과 같은 형식을 갖는 방정식이다.

[eqn: a _{1} x _{1} +a _{2} x _{2} + CDOTS +a _{n} x _{n} =b],

이때 계수들 [eqn: a _{1} ,`a _{2} ,` CDOTS ,`a _{n}]과 상수항 [eqn: b]는 일반적으로 실수이다. 이러한 일차방정식이 다음과 같이 여러 개 모여 있는 것을 일차연립방정식( system of linear equations)이라 한다.

[eqn: a _{11} x _{1} +a _{12} x _{2} + CDOTS +a _{1n} x _{n} =b _{1}]

[eqn: a _{21} x _{1} +a _{22} x _{2} + CDOTS +a _{2n} x _{n} =b _{2}]

[eqn: VDOTS]

[eqn: a _{m1} x _{1} +a _{m2} x _{2} + CDOTS +a _{mn} x _{n} =b _{m}]

일차연립방정식에서 중요한 점은 여러 개의 일차방정식을 동시에 만족하는 근을 구해야 한다는 점이다. 이러한 근은 선형계에 있는 계수들의 값 또는 상수항의 값에 따라 달라짐을 알 수 있으며, 근을 구하는 과정에서 다루는 것은 이러한 숫자들 만이다. 또한 이러한 수들의 나열은 다음과 같은 특정 형식을 이루고 있음을 알 수 있다.

[eqn: a _{11} ``````a _{12} CDOTS `a _{1n} ``]

[eqn: a _{21} ``````a _{22} CDOTS `a _{2n} ```]

[eqn: VDOTS]

[eqn: a _{m1} ``````a _{m2} CDOTS `a _{mn} ```]

이러한 수들의 나열은 사각형 형태의 영역에 존재하게 되는데 이러한 규칙을 잘 활용한다면 보다 쉬운 연산을 적용해서 원하는 결과인 방정식의 근을 찾을 수 있을 것이다. 이러한 수들의 사각형 형태 나열을 행렬이라 한다.

4.1 행렬의 정의

행렬(行列, matrix)은 수를 네모꼴로 배열한 것으로, 늘어놓은 수들을 괄호로 묶어 표현한다. 연립방정식을 행렬로 표현한 뒤 행렬의 성질을 이용하여 쉽게 해를 구할 수도 있다.

행렬의 가로줄을 한자어로 행이라고 하고, 세로줄을 열이라고 한다. 여기에서 행렬이라는 이름이 유래했다.

예) [eqn: A= LEFT [ matrix{1&2&3#3&2&1} RIGHT ]]

위의 예에서 행렬 A는 두 개의 행 세 개의 열로 이루어져 있다. 어떤 행렬이 m개의 행과 n개의 열로 구성되어 있으면, m by n 행렬, 또는 m×n 행렬이라고 쓴다. m과 n은 차원(次元, dimension)이라고 한다. [eqn: a _{ij}]는 A행렬의 i번째 행, j번째 열에 있는 원소를 뜻한다.벡터를 1행 행렬 또는 1열 행렬로 생각할 수도 있다. 수를 1x1 행렬로 생각할 수도 있다.

일반적으로 행렬을 표현할 때는 대문자 [eqn: A,`B]형태로 사용하며 원소를 사용하는 경우 다음과 같이 크기와 함께 표현한다.

[eqn: A= LEFT [ matrix{1&2&3#3&2&1} RIGHT ]]인 경우, [eqn: A=(a _{ij} ) _{2 TIMES 3}]

4.2 행렬의 종류

[영행렬]

행렬의 모든 원소가 0인 행렬을 말한다. 행렬의 덧셈에 관한 항등원 역할을 한다.

[eqn: bmatrix{0&0&0&0#0&0&0&0#0&0&0&0#0&0&0&0}], [eqn: bmatrix{0&0#0&0#0&0}]

[정방행렬]

행과 열의 수가 동일한 행렬을 말하며 실수를 나타내는 1x1 행렬도 이에 속한다.

[eqn: A _{n TIMES n} = bmatrix{a _{11}&a _{12}&CDOTS &&a _{1n}#a _{21}&a _{22}&CDOTS &&a _{2n}#VDOTS &VDOTS &DDOTS &&VDOTS #&&&DDOTS &a _{n-1n}#a _{n1}&a _{n2}&CDOTS &a _{nn-1}&a _{nn}}]

[단위행렬]

정방행렬 중에서 대각선에 위치한 모든 원소의 값이 1이며 나머지 원소에서는 0을 원소의 값으로 갖는 행렬을 말한다. 행렬의 곱셈에 대한 항등원 역할을 한다.

[eqn: I _{5 TIMES 5} = bmatrix{1&0&0&0&0#0&1&0&0&0#0&0&1&0&0#0&0&0&1&0#0&0&0&0&1}]

[윗삼각행렬]

정방행렬 중에서 대각선 아래에 위치한 모든 원소의 값이 0인 행렬을 말한다.

[eqn: `` bmatrix{1&``3&``0&``0&9#0&``1&``7&``0&0#0&```0&``0&``8&-1#0&``0&``0&``1&0#0&``0&``0&``0&1}]

[아래삼각행렬]

정방행렬 중에서 대각선 위에 위치한 모든 원소의 값이 0인 행렬을 말한다.

[eqn: `` bmatrix{1&``0&``0&``0&``0#1&``1&``0&``0&0#1&```3&``4&``0&0#2&``4&``3&``1&0#4&``5&``6&``1&1}]

4.3 행렬의 연산

[덧셈]

두 행렬의 덧셈 연산을 수행하기 위해서는 두 행렬의 크기가 동일하여야 하며, 크기 조건을 만족하는 경우 다음과 같이 정의된다.

[eqn: (A+B) _{ij} =`A _{ij} +B _{ij}]

예제)

[eqn: bmatrix{1&3&7#1&0&0#1&2&2} + bmatrix{0&0&5#7&5&0#2&1&1} = bmatrix{1+0&3+0&`7+5#1+7&0+5&0+0#1+2&2+1&2+1} = bmatrix{1&3&12#8&5&0#3&3&3}]

예제)

[eqn: bmatrix{1&3&7#1&0&0#1&2&2} + bmatrix{3&6#1&9#2&4} =?]

[뺄셈]

두 행렬의 뺄셈 연산을 수행하기 위해서는 두 행렬의 크기가 동일하여야 하며, 크기 조건을 만족하는 경우 다음과 같이 정의된다.

[eqn: (A-B) _{ij} =`A _{ij} -B _{ij}]

예제)

[eqn: bmatrix{1&3&7#1&0&0#1&2&2} - bmatrix{0&0&5#7&5&0#2&1&1} = bmatrix{1-0&3-0&`7-5#1-7&0-5&0-0#1-2&2-1&2-1} = bmatrix{```1&`3&````2#-6&-5&````0#-1&````1&````1} ```]

[실수배]

한 행렬에 숫자를 곱하는 연산은, 각 원소에 그 수를 곱하는 방식으로 정의한다.

[eqn: (kA) _{ij} =`k(A _{ij} )]

예제)

[eqn: 2 bmatrix{1&3&7#1&0&0#1&2&2} = bmatrix{2` TIMES 1&2` TIMES 3&2` TIMES 7#2` TIMES 1&2` TIMES 0&2` TIMES 0#2` TIMES 1&2` TIMES 2&2` TIMES 2} = bmatrix{2&6&14#2&0&0#2&4&4}]

[곱셈]

행렬에서의 곱셈 연산은 행렬간의 곱으로 정의된다. 우선 곱셈이 정의되려면 곱셈의 앞에 있는 행렬의 열의 개수와 곱셈의 뒤에는 오는 행렬의 행의 개수가 동일하여야 한다.

예를 들면 다음은 곱셈이 정의되는 경우이다.

[eqn: A _{3 TIMES 4} `B _{4 TIMES 2}] , [eqn: A _{3 TIMES 1} `B _{1 TIMES 2}]

그러나 다음은 곱셈이 정의되지 않는 경우이다.

[eqn: A _{3 TIMES 2} `B _{3 TIMES 2}] , [eqn: A _{3 TIMES 3} `B _{4 TIMES 4}]

곱셈이 정의될 수 있는 조건을 만족하는 경우, 다음의 규칙을 따라 곱셈은 정의된다.

[eqn: C _{m TIMES p} =A _{m TIMES n} B _{n TIMES p}]

[eqn: C _{ij} =A _{i1} B _{1j} `+`A _{i2} B _{2j} + CDOTS +A _{IN } B _{nj} = sum _{k=1} ^{n} A _{ik} B _{kj}]

예제)

[eqn: bmatrix{1&0&2#-1&3&1} bmatrix{3&1#2&1#1&0} = bmatrix{(1 TIMES 3+0 TIMES 2+2 TIMES 1)&(1 TIMES 1+0 TIMES 1+2 TIMES 0)#(-1 TIMES 3+3 TIMES 2+1 TIMES 1)&(-1 TIMES 1+3 TIMES 1+1 TIMES 0)} = bmatrix{5&``````1#4&`````2}]

[eqn: bmatrix{3&1#2&1#1&0} bmatrix{1&0&2#-1&3&1} = bmatrix{(3 TIMES 1+1 TIMES (-1))&(3 TIMES 0+1 TIMES 3)&(3 TIMES 2+1 TIMES 1)#(2 TIMES 1+1 TIMES (-1))&(2 TIMES 0+1 TIMES 3)&(2 TIMES 2+1 TIMES 1)#(1 TIMES 1+0 TIMES (-1))&(1 TIMES 0+0 TIMES 3)&(1 TIMES 2+0 TIMES 1)} = bmatrix{2&3&7#1&3&5#1&0&1}]

[전치]

주어진 행렬의 열과 행을 바꾸는 연산이다.

예제)

[eqn: A= bmatrix{1&4#2&5#3&6}]       [eqn: A ^{T} = bmatrix{1&2&3#4&5&6}]

행렬의 전치 연산은 다음과 같은 성질을 가지고 있다.

① [eqn: (A ^{T} ) ^{T} =A]

② [eqn: (A+B) ^{T} =A ^{T} +B ^{T}]

③ [eqn: (AB) ^{T} =B ^{T} A ^{T}]

[eqn: (A _{} B _{} ) ^{T} =C ^{T}]

[eqn: C`` _{ij} ^{T} ^{} =C _{``ji} = sum _{k=1} ^{n} A _{jk} B _{ki} = sum _{k=1} ^{n} B _{ki} A _{jk} = sum _{k=1} ^{n} B _{ik} ^{T} A _{kj} ^{T}]

[연산의 성질]

① 행렬의 곱셈에 대해서 교환법칙이 성립되지 않는다.

[eqn: AB != BA]

② 행렬의 곱셈에 대해서 결합법칙은 성립한다.

[eqn: (AB)C=A(BC)]

③ 행렬의 덧셈에 대한 항등원은 영행렬이다.

[eqn: A+0=0`+A=A]

④ 행렬의 곱셈에 대한 항등원은 단위행렬이다.

[eqn: AI=IA=A]

⑤ 두 행렬의 곱이 영행렬이라면 두 행렬은 모두 영행렬이라 말할 수 없다.

예제)

[eqn: bmatrix{1&````2#1&`````2} bmatrix{`````2&````2#-1&````-1} = bmatrix{0&````0#0&````0} `]

4.4 선형 시스템

n 개의 일차방정식으로 구성된 일차연립방정식을 풀어 보도록 하자.

[eqn: a _{11} x _{1} +a _{12} x _{2} + CDOTS +a _{1n} x _{n} =b _{1}]

[eqn: a _{21} x _{1} +a _{22} x _{2} + CDOTS +a _{2n} x _{n} =b _{2}]

[eqn: VDOTS]

[eqn: a _{n1} x _{1} +a _{n2} x _{2} + CDOTS +a _{nn} x _{n} =b _{n}]

일차연립방정식의 선형시스템을 다음의 행렬의 곱으로 표현할 수 있음을 알 수 있다.

[eqn: AX=B],

[eqn: A= bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}}], [eqn: X= LEFT [ matrix{x _{1}#x _{2}#VDOTS #x _{n}} RIGHT ]], [eqn: B= LEFT [ matrix{b _{1}#b _{2}#VDOTS #b _{n}} RIGHT ]]

이때 행렬 A를 계수행렬(coefficient matrix)라고 하며, 우변의 열 벡터 B를 상수벡터(constant vector)라고 한다. 상수벡터가 0 벡터가 아닌 경우의 선형시스템을 비동차(non-homogeneous) 선형시스템라고 하며, 0 벡터인 경우는 동차(homogeneous) 선형시스템이라 한다.

일차연립방정식을 푸는 과정을 이해하기 위하여 보다 간단한 예를 사용하겠다.

[eqn: cases{3x+2y-3z=-13&#4x-3y+6z=7&#1x+0y-1z=-5&}]              [eqn: bmatrix{3&2&-3#4&-3&6#1&0&-1} bmatrix{x#y#z} = bmatrix{-13#7#-5}]

① 첫 번째 방정식과 세 번째 방정식의 위치를 바꾸어도 일차연립방정식의 근에는 변화가 없음을 알 수 있다. [eqn: E _{13}]

[eqn: cases{1x+0y-1z=-5&#4x-3y+6z=7&#3x+2y-3z=-13&}]               [eqn: bmatrix{1&0&-1#4&-3&6#3&2&-3} bmatrix{x#y#z} = bmatrix{-5#7#-13}]

② 첫 번째 방정식에 (-4)를 곱하고 두 번째 방정식과 더한 결과를 두 번째 방정식으로 대체하더라도 근에는 변화가 없다. [eqn: E _{12} ^{-4}]

[eqn: cases{1x+0y-1z=-5&#0x-3y+10z=27&#3x+2y-3z=-13&}]                [eqn: bmatrix{1&0&-1#0&-3&10#3&2&-3} bmatrix{x#y#z} = bmatrix{-5#27#-13}]

③ 첫 번째 방정식에 (-3)를 곱하고 세 번째 방정식과 더한 결과를 세 번째 방정식으로 대체하더라도 근에는 변화가 없다. [eqn: E _{13} ^{-3}]

[eqn: cases{1x+0y-1z=-5&#0x-3y+10z=27&#0x+2y+0z=2&}]                [eqn: bmatrix{1&0&-1#0&-3&10#0&2&0} bmatrix{x#y#z} = bmatrix{-5#27#2}]

④ 세 번째 방정식에 1/2를 곱한 결과를 세 번째 방정식으로 대체하더라도 근에는 변화가 없다. [eqn: E _{3} ^{1/2}]

[eqn: cases{1x+0y-1z=-5&#0x-3y+10z=27&#0x+1y+0z=1&}]                [eqn: bmatrix{1&0&-1#0&-3&10#0&1&0} bmatrix{x#y#z} = bmatrix{-5#27#1}]

⑤ 두 번째 방정식과 세 번째 방정식의 위치를 바꾸어도 일차연립방정식의 근에는 변화가 없다. [eqn: E _{23}]

[eqn: cases{1x+0y-1z=-5&#0x+1y+0z=1&#0x-3y+10z=27&}]                [eqn: bmatrix{1&0&-1#0&1&0#0&-3&10} bmatrix{x#y#z} = bmatrix{-5#1#27}]

⑥ 두 번째 방정식에 3을 곱하여 세 번째 방정식과 더한 결과를 세 번째 방정식으로 대체하여도 근에는 변화가 없다. [eqn: E _{23} ^{3}]

[eqn: cases{1x+0y-1z=-5&#0x+1y+0z=1&#0x+0y+10z=30&}]                [eqn: bmatrix{1&0&-1#0&1&0#0&0&10} bmatrix{x#y#z} = bmatrix{-5#1#30}]

⑦ 세 번째 방정식에 1/10를 곱한 결과를 세 번째 방정식으로 대체하더라도 근에는 변화가 없다.  [eqn: E _{3} ^{1/10}]

[eqn: cases{1x+0y-1z=-5&#0x+1y+0z=1&#0x+0y+1z=3&}]                [eqn: bmatrix{1&0&-1#0&1&0#0&0&1} bmatrix{x#y#z} = bmatrix{-5#1#3}]

⑧ 세 번째 방정식과 첫 번째 방정식을 더 하여 첫 번째 방정식으로 대체하여도 근에는 변화가 없다. [eqn: E _{31} ^{1}]

[eqn: cases{1x+0y+0z=-2&#0x+1y+0z=1&#0x+0y+1z=3&}]                [eqn: bmatrix{1&0&0#0&1&0#0&0&1} bmatrix{x#y#z} = bmatrix{-2#1#3}]

그러므로 일차연립장정식의 근은 다음과 같다.

[eqn: bmatrix{x#y#z} = bmatrix{-2#1#3}]

이 과정에서 다음과 같은 내용을 알게 되었다.

1. 방정식을 푸는 과정에서 계수와 상수로만 해결할 수 있다.

2. 방정식에 상수를 곱하거나, 다른 방정식과 자리를 바꾸거나, 상수를 곱하여 다른 방정식에 더하더라도 일차연립방정시의 근에는 변화가 없다는 것이다.

[첨가행렬] Augmented Matrix

[eqn: [A|B]= bmatrix{a _{11}&a _{12}&CDOTS &a _{1n``} ``b _{1}#a _{21}&a _{22}&CDOTS &a _{2n} ```b _{2}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn} ```b _{n}}]

예제)

[eqn: bmatrix{3&2&-3#4&-3&6#1&0&-1} bmatrix{x#y#z} = bmatrix{-13#7#-5}]  ==> [eqn: `` bmatrix{```3&```2&`-3&`-13#```4&-3&```````6&````7#```1&```0&-1&-5}]

[기본행 연산]

다음과 같은 세 가지 연산을 기본행 연산이라 한다.

① [eqn: i] 번째 행과 [eqn: j] 번째 행을 교환한다. ([eqn: E _{ij}])

② [eqn: i] 번째 행에 0 이 아닌 실수 a를 곱한다. ([eqn: E _{i} ^{a}])

③ [eqn: i] 번째 행에 0 이 아닌 실수 a를 곱하여 [eqn: j] 번째 행에 더한다. ([eqn: E _{ij} ^{a}])

[eqn: `` bmatrix{```3&```2&`-3&`-13#```4&-3&```````6&````7#```1&```0&-1&-5}]

[eqn: E _{13}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```4&-3&```````6&````7#```3&```2&-3&-13}]

[eqn: E _{12} ^{-4}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&-3&```````10&````27#```3&```2&-3&-13}]

[eqn: E _{13} ^{-3}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&-3&```````10&````27#```0&```2&0&2}]

[eqn: E _{3} ^{1/2}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&-3&```````10&````27#```0&``1&0&1}]

[eqn: E _{23} ^{}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&1&```````0&````1#```0&``-3&10&27}]

[eqn: E _{23} ^{3}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&1&```````0&````1#```0&``0&10&30}]

[eqn: E _{3} ^{1/10}] =>[eqn: `` bmatrix{```1&```0&`-1&`-5#```0&1&`0&``1#```0&``0&1&3}]

[eqn: E _{31} ^{1}] =>[eqn: `` bmatrix{```1&```0&````0&``-2#```0&````1&```0&````1#```0&````0&``1&```3}]

[가우스 소거법] Gauss Elimination Method

n 개로 구성된 연립일차방정식이 있다고 하자.

이때 [eqn: a _{11}]이 0 이 아니라고 가정한다. 만약 [eqn: a _{11} =0] 이면 [eqn: a _{i1} != 0] 인 I 번째 행과 [eqn: E _{1i}] 연산을 수행한다.

이때

[eqn: a _{22} ^{prime } =a _{22} -a _{12} {a _{21}} over {a _{11}} ,```` CDOTS ,`a _{2n} ^{prime } =a _{2n} -a _{1n} {a _{21}} over {a _{11}} ,`b _{2} ^{'} =b _{2} -b _{1} {a _{21}} over {a _{11}}]

[eqn: a _{32} ^{prime } =a _{32} -a _{12} {a _{31}} over {a _{11}} ,```` CDOTS ,`a _{3n} ^{prime } =a _{3n} -a _{1n} {a _{31}} over {a _{11}} ,`b _{3} ^{prime } =b _{3} -b _{1} {a _{31}} over {a _{11}}]

[eqn: VDOTS]

[eqn: a _{n2} ^{prime } =a _{n2} -a _{12} {a _{n1}} over {a _{11}} ,```` CDOTS ,`a _{nn} ^{prime } =a _{nn} -a _{1n} {a _{n1}} over {a _{11}} ,`b _{n} ^{prime } =b _{n} -b _{1} {a _{n1}} over {a _{11}}]

이때

[eqn: a _{33} ^{'' } =a _{33} ^{prime } -a _{23} ^{prime } {a _{32} ^{prime }} over {a _{22} ^{prime }} ,```` CDOTS ,`a _{3n} ^{'' } =a _{3n} ^{prime } -a _{2n} ^{prime } {a _{32} ^{prime }} over {a _{22} ^{prime }} ,`b _{3} ^{prime prime } =b _{3} ^{prime } -b _{2} ^{prime } {a _{32} ^{prime }} over {a _{22} ^{prime }}]

[eqn: VDOTS]

[eqn: a _{n3} ^{'' } =a _{n3} ^{prime } -a _{23} ^{prime } {a _{n2} ^{prime }} over {a _{22} ^{prime }} ,```` CDOTS ,`a _{nn} ^{'' } =a _{nn} ^{prime } -a _{2n} ^{prime } {a _{n2} ^{prime }} over {a _{22} ^{prime }} ,`b _{n} ^{prime prime } =b _{n} ^{prime } -b _{2} ^{prime } {a _{n2} ^{prime }} over {a _{22} ^{prime }}]

이와 같은 과정을 다음과 같은 일반식을 사용하여 계속 처리하면 위삼각행렬을 구할 수 있다.

[eqn: a _{nn} ^{n-1} =a _{nn} ^{n-2} -a _{n-1n} ^{n-2} {a _{nn-1} ^{n-2}} over {a _{n-1n-1} ^{n-2}} ,````b _{n} ^{n-1} =b _{n} ^{n-2} -b _{n-1} ^{n-2} {a _{nn-1} ^{n-2}} over {a _{n-1n-1} ^{n-2}}]

다음과 같은 형태의 연립일차방정식을 얻게 된다.

n 번째 근부터 대입을 하도록 한다.

[eqn: x _{n} = {b _{n} ^{n-1}} over {a _{nn} ^{n-1}}]

[eqn: x _{n-1} = {b _{n-1} ^{n-2} -a _{n-1`n} ^{n-2} ```x _{n}} over {a _{n-1n-1} ^{n-2}}]

[eqn: x _{n-2} = {(b _{n-2} ^{n-3} -(a _{n-2`n-1} ^{n-3} ```x _{n-1} +a _{n-2n} ^{n-3} x _{n} ))} over {a _{n-1n-1} ^{n-3}}]

[eqn: VDOTS]

[eqn: x _{i} =(b _{i} ^{i-1} - sum _{j=i+1} ^{n} a _{ij} ^{i-1} x _{j} )/a _{ii} ^{i-1}]

[eqn: VDOTS]

[eqn: x _{1} =(b _{1} ^{} - sum _{j=2} ^{n} a _{1j} ^{} x _{j} )/a _{11} ^{}]

[과제] 가우스 소거법을 C-언어로 구현하시오.

4.5 역행렬

[곱셈의 항등원]

임의의 정방행렬 A에 곱한 결과가 원래 행렬 A가 되도록 하는 행렬 B를 곱샘의 항등원이라 한다.

[eqn: AB=A]

[eqn: A= bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}}], [eqn: B= bmatrix{b _{11}&b _{12}&CDOTS &b _{1n}#b _{21}&b _{22}&CDOTS &b _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #b _{n1}&b _{n2}&CDOTS &b _{nn}}]

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}} bmatrix{b _{11}&b _{12}&CDOTS &b _{1n}#b _{21}&b _{22}&CDOTS &b _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #b _{n1}&b _{n2}&CDOTS &b _{nn}} = bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}}]

따라서 행렬 B는 다음과 같은 단위행렬 I 가 되어야 함을 알 수 있다.

[eqn: bmatrix{b _{11}&b _{12}&CDOTS &b _{1n}#b _{21}&b _{22}&CDOTS &b _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #b _{n1}&b _{n2}&CDOTS &b _{nn}} = bmatrix{1&0&CDOTS &0#0&1&CDOTS &0#VDOTS &VDOTS &DDOTS &VDOTS #0&0&CDOTS &1}]

[곱셈의 역원]

주어진 정방행렬 A에 대한 곱셈의 역원 B는 다음과 같은 성질을 만족하여야 한다.

[eqn: AB=BA=I].

일반적으로 행렬 A의 곱셈에 대한 역원을 A의 역행렬이라 하고 [eqn: A ^{-1}]라고 표기한다.

이러한 역행렬은 언제 필요할까를 생각해보자. 이에 대한 해답을 구하기 위해서 연립일차방정식의 해를 구하는 과정을 다시 한 번 살펴보도록 한다.

n 개의 일차방정식으로 구성된 일차연립방정식을 풀어 보도록 하자.

[eqn: a _{11} x _{1} +a _{12} x _{2} + CDOTS +a _{1n} x _{n} =b _{1}]

[eqn: a _{21} x _{1} +a _{22} x _{2} + CDOTS +a _{2n} x _{n} =b _{2}]

[eqn: VDOTS]

[eqn: a _{n1} x _{1} +a _{n2} x _{2} + CDOTS +a _{nn} x _{n} =b _{n}]

일차연립방정식의 선형시스템을 다음의 행렬의 곱으로 표현할 수 있음을 알 수 있다.

[eqn: AX=B],

[eqn: A= bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}}][eqn: A= bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}}], [eqn: X= LEFT [ matrix{x _{1}#x _{2}#VDOTS #x _{n}} RIGHT ]], [eqn: B= LEFT [ matrix{b _{1}#b _{2}#VDOTS #b _{n}} RIGHT ]]

여기에서 행렬 A에 대한 역행렬을 알고 있다면 방정식의 근인 X는 다므과 같은 행렬 연산을 사용하여 구할 수 있다. 먼저 양변에 역행열 [eqn: A ^{-1}]을 왼쪽방향에서 곱한다.

[eqn: A ^{-1} (AX)=A ^{-1} B]

곱셈의 결합법칙 성립에 따라 다음과 같은 식을 얻을 수 있다.

[eqn: (A ^{-1} A)X=A ^{-1} B]

역행렬의 성질에 따라 다음과 같은 식으로 전환된다.

[eqn: IX=A ^{-1} B]

곱셈의 항등원의 성질에 따라 다음과 같은 식으로 전환된다.

[eqn: X=A ^{-1} B]

앞으로 공부하여야 하는 분야로서는 역행렬이 갖고 있는 유용한 성질을 살펴보고, 이러한 역행렬을 효율적으로 구하는 과정을 학습하여야 한다.

[질문 1] 행렬 A의 역행렬은 항상 존재하는가?

(답변) 존재하지 않는 경우도 있다.

다음 행렬의 역행렬은 ?

[eqn: A= bmatrix{1&2#1&2}]

[질문 2] 역행렬의 존재 여부를 미리 확인할 수 있는 방법은?

(답변) 행렬식을 이용하면 된다. 행렬식에 대해서는 추후 설명하도록 한다.

[질문 3] 역행렬이 존재한다면 유일한가?

(답변) 유일함을 다음과 같이 증명하도록 한다.

[Proof]

행렬 B, C 가 모두 A의 역행렬이라 하자. 그러면

[eqn: AB=I=BA],   [eqn: AC=I=CA]

이다. 그러면

[eqn: B=BI=B(AC)=(BA)C=IC=C]

이다. 그러므로 A의 역행렬들은 같은 행렬이 되며 따라서 유일하다.

[질문 3] 행렬 A와 행렬 B의 곱인 AB의 역행렬이 존재한다면, 다음 식이 성립할까요?

[eqn: (AB) ^{-1} =B ^{-1} A ^{-1}]

(답변)  성립한다.

[Proof]

B가 A의 역행렬이라 함은 en 행렬을 곱해서 단위행렬이 되면 되므로, [eqn: AB] 와 [eqn: B ^{-1} A ^{-1}]를 곱해서 그 결과를 확인해 본다.

[eqn: AB(B ^{-1} A ^{-1} )=A(BB ^{-1} )A ^{-1} =AIA ^{-1} =AA ^{-1} =I]

[eqn: (B ^{-1} A ^{-1} )AB=B ^{-1} (A ^{-1} A)B=B ^{-1} IB=B ^{-1} B=I]

그러므로

[eqn: (AB) ^{-1} =B ^{-1} A ^{-1}]

[역행렬 구하기]

[eqn: B=A ^{-1}]이라면 다음과 같은 식을 만족한다.

이 식은 다음과 같은 n 개의 연립방정식이라 생각할 수 있다.

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}} bmatrix{b _{11}#b _{21}#VDOTS #b _{n1}} = bmatrix{1#0#VDOTS #0}]

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}} bmatrix{b _{12}#b _{22}#VDOTS #b _{n2}} = bmatrix{0#1#0#VDOTS #0}]

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}} bmatrix{b _{13}#b _{23}#VDOTS #b _{n3}} = bmatrix{0#0#1#0#VDOTS }]

[eqn: VDOTS]

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}#a _{21}&a _{22}&CDOTS &a _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}} bmatrix{b _{1n}#b _{2n}#VDOTS #b _{nn}} = bmatrix{0#0#VDOTS #0#1}]

그러므로 n 개의 첨가행렬을 만들고 가우스소거법을 적용하면 행렬 B를 구할 수 있을 것이다. 그런데 이러한 첨가행렬의 정방행렬의 부분이 동일하므로 n 개를 한번에 다룰 수 있다면 편리할 것이다. 그래서 다음과 같은 첨가행렬을 생각해 본다.

[eqn: bmatrix{a _{11}&a _{12}&CDOTS &a _{1n}&1&0&CDOTS &0#a _{21}&a _{22}&CDOTS &a _{2n}&0&1&CDOTS &0#VDOTS &VDOTS &DDOTS &VDOTS &VDOTS &VDOTS &DDOTS &VDOTS #a _{n1}&a _{n2}&CDOTS &a _{nn}&0&0&CDOTS &1}]

그렇다면 여기에서 기본행 연산을 수행하여 다음 형태의 첨가행렬을 구하게 된다면

[eqn: bmatrix{1&0&CDOTS &0&c _{11} _{}&c _{12}&CDOTS &c _{1n}#0&1&CDOTS &0&c _{21}&c _{22}&CDOTS &c _{2n}#VDOTS &VDOTS &DDOTS &VDOTS &VDOTS &VDOTS &DDOTS &VDOTS #0&0&CDOTS &1&c _{n1}&c _{n2}&CDOTS &c _{nn}}]

첨가 영역에 있는 행렬이 우리가 찾고자하는 A의 역행렬임을 알 수 있다.

[eqn: bmatrix{b _{11}&b _{12}&CDOTS &b _{1n}#b _{21}&b _{22}&CDOTS &b _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #b _{n1}&b _{n2}&CDOTS &b _{nn}} = bmatrix{c _{11}&c _{12}&CDOTS &c _{1n}#c _{21}&c _{22}&CDOTS &c _{2n}#VDOTS &VDOTS &DDOTS &VDOTS #c _{n1}&c _{n2}&CDOTS &c _{nn}}]

[Gauss-Jordan Elimination]

예제)

(과정)

[행렬식]