(1) 행렬의 정의와 연산

일러스트레이터에서 할 수 있는 도형의 변환(크기조절, 회전, 대칭이동, 기울이기 등)은 모두 일차변환입니다.
이 장에서는 일차변환을 나타내는 데 사용되는 행렬의 기초에 대하여 설명합니다.


1. 점의 상등과 연산

두 점 A(2, 3), B(2, 3)은 같은 위치에 있습니다.
그러면 두 점 A, B는 서로 같다고 할 수 있습니다.

두 점 A, B가 서로 같다는 것을 기호로
A=B
와 같이 나타냅니다.

차원이 같은 점끼리는 서로 더하거나 뺄 수 있습니다.
같은 자리에 있는 성분끼리 더하거나 빼면 됩니다.
예를 들어, 점 (2, 1)과 점 (5, 3)을 더하면 (2, 1) + (5, 3) = (2+5. 1+3) = (7, 4)입니다.

점의 실수배도 정의할 수 있습니다. 점 P를 k배 하는 것은 점 P의 각 성분을 k배 하는 것과 같습니다.
예를 들어, 점 (5, 2, 1)을 2배 하면 2×(5, 2, 1) = (2×5, 2×2, 2×1) = (10, 4, 2)입니다.

위의 세 과정은 벡터의 상등, 덧셈, 실수배와 동일합니다. 점은 사실 벡터이기 때문입니다.
이제부터는 벡터와 점을 완전히 동일한 것으로 취급할 것입니다.


2. 행렬의 정의와 연산

여러 개의 숫자를 직사각형 모양으로 배열한 것을 행렬(matrix)이라고 합니다.
아래 그림은 세로로 3개, 가로로 4개의 숫자를 나열한 것을 나타내 것입니다.

하나의 가로줄행(row)이라 하며, 하나의 세로줄열(column)이라 합니다.

맨 위의 가로줄부터 차례로 제1행, 제2행, ...이라 하며, 맨 왼쪽의 세로줄부터 차례로 제1열, 제2열, ...이라 합니다.
제i행과 제j열이 만나는 부분에 있는 값을 행렬의 i행 j열 성분 또는 행렬의 (i, j)성분이라고 합니다.
이것을 밑 첨자를 이용하여 aij와 같이 나타냅니다.
위에서 예시로 든 행렬에서 2행 1열의 성분은 1이고, 3행 2열의 성분은 2입니다.
마찬가지로 a24=0이고 a33=3, a12=2입니다.

가로줄의 개수를 행의 개수라 하고, 세로줄의 개수를 열의 개수라고 합니다.
행의 개수가 m이고 열의 개수가 n인 행렬을 m×n 행렬(m by n matrix)이라고 합니다.
특히, 행의 개수와 열의 개수가 같은 행렬을 정사각행렬이라고 합니다.
n×n 행렬n차 정사각행렬이라고 합니다.
행의 개수와 열의 개수가 모두 같은 행렬끼리는 서로 비교하거나 덧셈, 실수배를 할 수 있습니다.

두 행렬 A, B의 행과 열의 개수가 서로 같고, 모든 성분도 같으면 두 행렬 A, B는 서로 같다고 말하며, 기호로
A=B
로 나타냅니다. 두 행렬 , 는 모두 2×3 행렬이고, 모든 성분이 서로 같으므로 A=B입니다.

행의 개수와 열의 개수가 같은 행렬끼리는 서로 더하거나 뺄 수 있습니다.
점의 덧셈에서처럼 같은 자리에 있는 성분끼리 더하거나 빼면 됩니다.

예를 들어, 행렬 과 행렬 를 더하면
입니다.

행렬의 실수배도 정의할 수 있습니다.
행렬 A를 k배 하는 것은 행렬 A의 각 성분을 k배 하는 것과 같습니다. 예를 들어, 를 2배 하면
입니다.

위의 세 과정은 점의 상등, 덧셈, 실수배와 유사합니다. 점과 마찬가지로 행렬도 벡터이기 때문입니다.


n차원의 점(벡터)를 n×1 행렬로 표현할 수도 있습니다. 가장 왼쪽 성분부터 위쪽에서 아래쪽으로 나열하면 됩니다.

점 (2, -1)을 행렬로 표현하면 이고, 점 (1, 0, -2)를 행렬로 표현하면 입니다.
점의 상등, 덧셈, 실수배를 n×1 행렬과 관련지어 생각해도 됩니다.

이처럼 1열의 행렬로 점(벡터)를 표현하는 표현법을 열벡터 표현이라고 합니다.
마찬가지로, 1행의 행렬로 점(벡터)를 표현하는 표현법을 행벡터 표현이라고 합니다.

모든 성분이 0인 행렬을 영행렬이라고 부르며, 기호 O로 나타냅니다.


3. 행렬의 곱셈

차원이 같은 행벡터와 열벡터의 곱을 다음과 같이 정의할 수 있습니다.
(※곱셈 순서는 반드시 (행벡터)×(열벡터)의 순서가 되어야 합니다.)

우변이 실수인 것, 그리고 두 벡터의 차원이 같다는 것에 주목하십시오.
두 벡터의 차원이 다르면 행벡터와 열벡터의 곱은 정의되지 않습니다.

이번에는 n차 정사각행렬의 곱셈에 대하여 알아보겠습니다.
아래의 두 4×4 행렬을 자세히 살펴보면, 4×4 행렬은 4개의 행벡터로 이루어져 있다고 볼 수도 있고, 4개의 열벡터로 이루어져 있다고 볼 수도 있습니다.
왼쪽 행렬에서 임의의 행벡터를 선택하고, 오른쪽 행렬에서 임의의 열벡터를 선택하면 서로 다른 16개의 (행벡터)×(열벡터) 쌍을 만들 수 있습니다.

여기서, 왼쪽 행렬의 m번째 행벡터오른쪽 행렬의 n번째 열벡터로 얻은 (행벡터)×(열벡터)의 값을
(m, n) 성분으로 하는 새로운 4×4행렬을 생각할 수 있습니다.
예를 들어, 이 행렬의 (3, 2) 성분은 다음과 같습니다.

같은 작업을 15번 반복하면 나머지 ??를 채워서 4×4 행렬을 얻을 수 있습니다.

이것을 두 행렬의 곱으로 정의합니다.
n×n 행렬 두 개를 곱하면 그 결과 또한 n×n 행렬입니다.

이런 곱셈이 가능한 이유는 왼쪽에 곱해진 행렬의 행벡터와 오른쪽에 곱해진 행렬의 열벡터의 곱이 정의되기 때문입니다.
즉, 왼쪽 행벡터의 차원과 오른쪽 열벡터의 차원이 같기만 하면 정사각행렬이 아닌 행렬끼리의 곱도 정의할 수 있습니다.
왼쪽에 곱한 행렬의 열의 개수와 오른쪽에 곱한 행렬의 행의 개수가 같으면 두 행렬의 곱셈이 정의됩니다.

아래의 2×3 행렬과 3×2 행렬은 왼쪽에 곱해진 행렬의 열의 개수(3)와 오른쪽에 곱해지는 행렬의 행의 개수(3)가 같기 때문에 곱을 정의할 수 있습니다.

왼쪽 행렬의 행의 개수가 2이고 오른쪽 행렬의 열의 개수가 2이므로 그 결과는 2×2 행렬이 될 것입니다.
이를 일반화하면, m×n 행렬과 n×l 행렬의 곱은 m×l 행렬입니다.

맨 처음의 4×4 행렬 예시에서, 오른쪽에 있던 행렬을 왼쪽으로, 왼쪽에 있던 행렬을 오른쪽으로 옮겨서 두 행렬이 곱해지는 위치를 서로 바꾸면 아래 그림과 같습니다.

아까와는 전혀 다른 행벡터와 열벡터의 쌍이 만들어졌습니다.
각각의 (행벡터)×(열벡터) 결과값 역시 아까와는 다를 것입니다.
그러므로, 행렬에서는 곱셈에 대한 교환법칙이 성립하지 않습니다.


4. 단위행렬과 역행렬

행과 열이 같은 성분은 1이고, 나머지 성분은 모두 0인 n차 정사각행렬 En은 다음과 같은 성질이 있습니다.
임의의 n차 정사각행렬 An에 대하여, AnEn=EnAn=An
예를 들어, n=3인 경우, 즉, A3과 E3이 각각

인 경우

이 성립합니다.

En을 왼쪽에 곱하나 오른쪽에 곱하나, 그 결과는 원래의 행렬과 같습니다.
이런 성질을 가진 특수한 행렬 E를 단위행렬(Identity Matrix)이라고 합니다.
n×n 단위행렬n차 단위행렬이라고 합니다.
단위행렬을 행렬의 곱셈에 대한 항등원이라고 부르기도 합니다.


어떤 행렬 A와 행렬 B를 곱한 결과가 단위행렬이 되는 경우가 있습니다.
예를 들어, 두 행렬 A, B가

인 경우,

으로, 곱의 결과가 단위행렬입니다.
이와 같이, 두 정사각행렬의 곱의 순서에 관계 없이 그 결과가 단위행렬이 되도록 할 수 있습니다.

어떤 행렬 A와 특정한 행렬의 곱의 결과가 단위행렬이면, 그 행렬을 행렬 A의 역행렬(Inverse Matrix)이라고 합니다.

위 예시에서, 행렬 B는 행렬 A의 역행렬이고, 행렬 A는 행렬 B의 역행렬입니다. (서로 역행렬 관계에 있다고 말합니다.)
행렬 A의 역행렬은 A-1으로 나타냅니다. 즉, A-1=B이고 B-1=A입니다.

행렬의 역행렬은 존재하지 않을 수도 있습니다.
예를 들어, 모든 성분이 1인 이차정사각행렬의 역행렬을 구하기 위해서 아래의 식에서 a,b,c,d에 대한 연립방정식을 풀면

으로, 이 연립방정식의 해는 없습니다. a+b=1인 동시에 a+b=0일 수 없기 때문입니다.

일반적으로, 이차정사각행렬의 역행렬은 다음과 같습니다.

ad-bc=0이면 행렬 A의 역행렬은 존재하지 않습니다.

역행렬이 존재하는 행렬을 정칙행렬(Nonsingular Matrix)이라 하고, 역행렬이 존재하지 않는 행렬을 비정칙행렬(Singluar Matrix)이라고 합니다.