특정한 형태의 행렬

기본적인 행렬

영행렬(null matrix)

  • 모든 원소가 0인 행렬
    • \(A = B\) 이면 \(A - B = \phi\)
(A1 <- matrix(c(2, 3, 6, 0, -4, 1), 2))
##      [,1] [,2] [,3]
## [1,]    2    6   -4
## [2,]    3    0    1
(B1 <- matrix(c(2, 3, 6, 0, -4, 1), 2))
##      [,1] [,2] [,3]
## [1,]    2    6   -4
## [2,]    3    0    1
(C1 <- matrix(c(2, 2, 6, 0, -4, 1), 2))
##      [,1] [,2] [,3]
## [1,]    2    6   -4
## [2,]    2    0    1
A1 - B1
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0

정방행렬(square matrix)

  • 행렬의 차수(dim)가 \(r\times c\)일 때, \(r = c\)이면, 정방행렬
(A2 <- matrix(c(3, 1, -2, 4, 0, 6, 4, 2, 5, -3, 0, 10, -4, 5, 12, 6), 4))
##      [,1] [,2] [,3] [,4]
## [1,]    3    0    5   -4
## [2,]    1    6   -3    5
## [3,]   -2    4    0   12
## [4,]    4    2   10    6
diag(A2)
## [1] 3 6 0 6
dim(A2)
## [1] 4 4

대각행렬(diagonal matrix)

  • 정방행렬에서 모든 비대각원소가 0일 때, 즉 \(i\ne j\)인 모든 \(i,\ j\)에 대하여, \(a_{ij} = 0\).
(A3 <- diag(c(3, 5, -4, 7)))
##      [,1] [,2] [,3] [,4]
## [1,]    3    0    0    0
## [2,]    0    5    0    0
## [3,]    0    0   -4    0
## [4,]    0    0    0    7

상삼각행렬(upper triangular matrix)

  • 대각원소의 아래에 있는 모든 원소가 0, 즉 \(i > j\)인 모든 \(i,\ j\)에 대하여, \(a_{ij} = 0\).
(A4 <- matrix(c(1, 0, 0, 0, 2, 0, 0, 0, 3, -1, 3, 0, 4, 2, 0, 5), 4))
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    0    0   -1    2
## [3,]    0    0    3    0
## [4,]    0    0    0    5
Matrix::isTriangular(A4)
## [1] TRUE
## attr(,"kind")
## [1] "U"

하삼각행렬(lower triangular matrix)

  • 대각원소의 dnl에 있는 모든 원소가 0, 즉 \(i < j\)인 모든 \(i,\ j\)에 대하여, \(a_{ij} = 0\).
(A5 <- matrix(c(1, 3, 0, 2, 0, -2, 0, 3, 0, 0, 3, -1, 0, 0, 0, 5), 4))
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0    0
## [2,]    3   -2    0    0
## [3,]    0    0    3    0
## [4,]    2    3   -1    5
Matrix::isTriangular(A5)
## [1] TRUE
## attr(,"kind")
## [1] "L"

항등행렬(identity matrix)

  • 대각원소의 값이 모두 1인 대각행렬. R에서 \(n\) 차원의 항등행렬은 diag(n) 으로 표시함.
    • 임의의 행렬 \(A\)에 대하여 곱셈이 가능하면, \(AI = IA = A\)가 성립.
(I3 <- diag(3))
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
3*I3
##      [,1] [,2] [,3]
## [1,]    3    0    0
## [2,]    0    3    0
## [3,]    0    0    3

대칭행렬(symemtric matrix)

  • \(A = a_{ij}\)에서 \(i\ne j\)인 모든 \(i,\ j\)에 대하여 \(a_{ij} = a_{ji}\)이면 대칭행렬.
    • \(A = A^t\) 일 때, \(A\)는 대칭행렬.
(R <- matrix(c(3.5, 0.6, 2.1, 0.6, 4.5, 1.9, 2.1, 1.9, 6.8), 3))
##      [,1] [,2] [,3]
## [1,]  3.5  0.6  2.1
## [2,]  0.6  4.5  1.9
## [3,]  2.1  1.9  6.8

대칭행렬들의 곱

  • \(A = A^t\), \(B = B^t\)일 경우, \((AB)^t = B^t A^t = BA\), \(AB = BA\)일 때만 \(AB\)가 대칭행렬임.
(A6 <- matrix(c(1, 2, 2, 3), 2))
##      [,1] [,2]
## [1,]    1    2
## [2,]    2    3
(B6 <- matrix(c(3, 7, 7, 6), 2))
##      [,1] [,2]
## [1,]    3    7
## [2,]    7    6
A6 %*% B6
##      [,1] [,2]
## [1,]   17   19
## [2,]   27   32
t(A6 %*% B6)
##      [,1] [,2]
## [1,]   17   27
## [2,]   19   32
B6 %*% A6
##      [,1] [,2]
## [1,]   17   27
## [2,]   19   32

\(A\ A^t\)\(A^tA\)의 성질

  • 어떤 행렬과 그 전치와의 곱은 항상 존재하며 대칭.
    • \((A\ A^t)^t = {(A^t)}^t A^t = A\ A^t\), \((A^tA)^t = A^t(A^t)^t = A^tA\)
    • \(A\)가 정방행렬인 경우에만 두 행렬 \(A\ A^t\)\(A^tA\)가 같은 차수를 가짐.
(A7 <- matrix(c(1, 3, 2, 0, -1, 1), 2))
##      [,1] [,2] [,3]
## [1,]    1    2   -1
## [2,]    3    0    1
A7 %*% t(A7)
##      [,1] [,2]
## [1,]    6    2
## [2,]    2   10
t(A7) %*% A7
##      [,1] [,2] [,3]
## [1,]   10    2    2
## [2,]    2    4   -2
## [3,]    2   -2    2
  • \(A\ A^t\)\(\{i,\ j\}\)원소들은 \(A\)\(i\)번째 행과 \(j\)번째 행의 내적.
    • 즉, \(A\)의 차수가 \(r\times c\)일 때, \(\{A\ A^t\}_{ij} = \sum_{k=1}^c a_{ik}a_{jk}\).
    • \(A\ A^t\)\(i\)번째 대각원소들은 \(i\)번째 행의 원소들을 제곱하여 합한 것, \(\{A\ A^t\}_{ii} = \sum_{k=1}^ca_{ik}^2\)
  • 임의의 실수행렬 \(A\)에 대하여 \(A^t A = 0\)이면 \(A = 0\)이다.

  • 임의의 실수행렬 \(A\)에 대하여 \(tr(A^t A) = 0\)이면 \(A = 0\)이다.

  • 실수행렬 \(P\), \(Q\), \(X\)에 대하여 곱셈이 가능하다면,
    • \(P\ X\ X^t = Q\ X\ X^t\)이면, \(P\ X = Q\ X\)이다.

벡터들의 곱

  • 두 벡터의 외적은 반드시 대칭이 되는 것은 아님.
    • 차수가 같은 두 벡터의 외적은 정방행렬이나 대칭일 필요는 없으며, 차수가 다른 두 벡터의 외적은 정방행렬조차 아님.
(x1 <- matrix(c(1, 0, 2), 3))
##      [,1]
## [1,]    1
## [2,]    0
## [3,]    2
(y1 <- matrix(c(2, 2, 1), 3))
##      [,1]
## [1,]    2
## [2,]    2
## [3,]    1
(z1 <- matrix(c(3, 2), 2))
##      [,1]
## [1,]    3
## [2,]    2
x1 %*% t(y1)
##      [,1] [,2] [,3]
## [1,]    2    2    1
## [2,]    0    0    0
## [3,]    4    4    2
y1 %*% t(x1)
##      [,1] [,2] [,3]
## [1,]    2    0    4
## [2,]    2    0    4
## [3,]    1    0    2
t(y1 %*% t(x1))
##      [,1] [,2] [,3]
## [1,]    2    2    1
## [2,]    0    0    0
## [3,]    4    4    2
x1 %*% t(z1)
##      [,1] [,2]
## [1,]    3    2
## [2,]    0    0
## [3,]    6    4
z1 %*% t(x1)
##      [,1] [,2] [,3]
## [1,]    3    0    6
## [2,]    2    0    4

외적의 합

  • \(a_j\)\(A\)\(j\)번째 열, \(b_j^t\)\(B\)\(j\)번째 행,
    • \(A\ B = \sum_{j=1}^ca_jb_j^t\).
(A8 <- matrix(1:6, 3))
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6
(B8 <- matrix(7:10, 2, byrow = TRUE))
##      [,1] [,2]
## [1,]    7    8
## [2,]    9   10
A8 %*% B8
##      [,1] [,2]
## [1,]   43   48
## [2,]   59   66
## [3,]   75   84
# A8[, 1] %*% B8[1, ]
# A8[, 2] %*% B8[2, ]
A8[, 1] %*% B8[1, , drop = FALSE]
##      [,1] [,2]
## [1,]    7    8
## [2,]   14   16
## [3,]   21   24
A8[, 2] %*% B8[2, , drop = FALSE]
##      [,1] [,2]
## [1,]   36   40
## [2,]   45   50
## [3,]   54   60
A8[, 1] %*% t(B8[1, ]) + A8[, 2] %*% t(B8[2, ])
##      [,1] [,2]
## [1,]   43   48
## [2,]   59   66
## [3,]   75   84
  • \(A\ A^t\)\(A\)의 각 열과 그 자신의 외적들의 합.
(A9 <- matrix(1:6, 2, byrow=TRUE))
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
t(A9)
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6
A9 %*% t(A9)
##      [,1] [,2]
## [1,]   14   32
## [2,]   32   77
A9[, 1] %*% t(A9[, 1])
##      [,1] [,2]
## [1,]    1    4
## [2,]    4   16
A9[, 2] %*% t(A9[, 2])
##      [,1] [,2]
## [1,]    4   10
## [2,]   10   25
A9[, 3] %*% t(A9[, 3])
##      [,1] [,2]
## [1,]    9   18
## [2,]   18   36
A9[, 1] %*% t(A9[, 1]) + A9[, 2] %*% t(A9[, 2]) + A9[, 3] %*% t(A9[, 3])
##      [,1] [,2]
## [1,]   14   32
## [2,]   32   77

기초벡터(elementary vector)

  • 차수가 \(n\)인 항등행렬 \(I_n = \sum_{i=1}^n e_i e_i^t\), \(e_i\)\(I_n\)\(i\)번째 열.
  • \(E_{ij} = e_i e_j^t\) : \((i,\ j)\)번째 원소만이 1이고 나머지는 0인 행렬
  • \(I_n = \sum_{i=1}^{n}E_{ii}\)
  • \(e_i^tA = a_i^t\)\(A\)\(i\)번째 행. \(A\ e_j = a_j\)\(j\)번째 열.
(A10 <- matrix(c(2, 5, 3, 7), 2))
##      [,1] [,2]
## [1,]    2    3
## [2,]    5    7
(e2 <- matrix(0:1, 2))
##      [,1]
## [1,]    0
## [2,]    1
t(e2) %*% A10
##      [,1] [,2]
## [1,]    5    7
A10[2, ]
## [1] 5 7
A10 %*% e2
##      [,1]
## [1,]    3
## [2,]    7
A10[, 2, drop = FALSE]
##      [,1]
## [1,]    3
## [2,]    7

모든 원소가 같은 행렬

  • 합벡터(summing vector) : 모든 원소가 1.
(one.4 <- matrix(rep(1, 4), 4))
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
## [4,]    1
(x11 <- matrix(c(3, 6, 8, -2), 4))
##      [,1]
## [1,]    3
## [2,]    6
## [3,]    8
## [4,]   -2
t(one.4) %*% x11
##      [,1]
## [1,]   15
t(x11) %*% one.4
##      [,1]
## [1,]   15
(one.3 <- matrix(rep(1, 3), 3))
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
(X12 <- matrix(c(2, -5, 4, -1, -3, 5), 3))
##      [,1] [,2]
## [1,]    2   -1
## [2,]   -5   -3
## [3,]    4    5
t(one.3) %*% X12
##      [,1] [,2]
## [1,]    1    1
  • 합 벡터와 자신의 내적은 벡터의 차수
    • 합 벡터들의 외적은 모든 원소가 1인 행렬
    • \(1_3\ 1_2^t = J_{3\times2}\)
    • \(J_n = 1_n\ 1_n^t\) => \(J_n^2 = n\ J_n\).
    • \(\bar{J_n} = \frac{1}{n}\ J_n\) => \(\bar{J_n}^2 = \bar{J_n}\).
    • \(C_n = I_n - \bar{J_n} = I_n - \frac{1}{n} J_n\) => \(C = C^t = C^2, C\ 1 = 0, C\ J = J\ C = 0\).
  • \(x^t = [x_1, x_2, \cdots, x_n]\)에 대하여 적용.
    • \(\bar{x} = \frac{1}{n} 1^t x\)
    • \(x^t C = x^t - \bar{x}\ 1^t = \{x_i-\bar x\}\)
    • \(x^t C \ x = x^t x - n\ \bar{x}^2 = \sum_{i=1}^n(x_i - \bar{x})^2\)

멱등행렬(idempotent matrix)

  • 정방행렬 \(K\)에 대하여 \(K^2 = K\)를 만족하면 멱등행렬.
    • \(I-K\)도 멱등행렬, \(K-I\)는 아님.
    • \(C_n = I_n - \frac{1}{n}J_n\)은 멱등행렬.
    • \(AGA = A\)를 만족하는 \(G\)에 대해서 \(GA\)는 멱등행렬. (일반화역행렬)
  • \(A^2 = 0\)이면 멱영행렬(nilpotent matrix)
  • \(A^2 = I\)이면 멱항행렬(unipotent matrix)
(A13 <- matrix(c(1, 2, -1, 2, 4, -2, 5, 10, -5), 3))
##      [,1] [,2] [,3]
## [1,]    1    2    5
## [2,]    2    4   10
## [3,]   -1   -2   -5
(B13 <- matrix(c(1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, 0, 5, -4, 0, 1), 4))
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    3    5
## [2,]    0    1    2   -4
## [3,]    0    0   -1    0
## [4,]    0    0    0    1
A13 %*% A13
##      [,1] [,2] [,3]
## [1,]    0    0    0
## [2,]    0    0    0
## [3,]    0    0    0
B13 %*% B13
##      [,1] [,2] [,3] [,4]
## [1,]    1    0    0   10
## [2,]    0    1    0   -8
## [3,]    0    0    1    0
## [4,]    0    0    0    1

직교행렬(orthogonal matrix)

정직교벡터

  • \(x\)의 norm : \(||\ x\ || = \sqrt{x^tx}\)
    • 정규벡터 : norm이 1인 벡터. \(u = \frac{x}{||\ x\ ||}\)는 항상 정규벡터
x14 <- c(2, 4, 3, 1)
# norm(x14, "F")
norm(matrix(x14, 4), "F")
## [1] 5.477226
x14^2
## [1]  4 16  9  1
sum(x14^2)
## [1] 30
sqrt(sum(x14^2))
## [1] 5.477226
  • 같은 차수의 벡터 \(x\), \(y\)에 대하여 \(x^ty = 0\)일 때, \(x\), \(y\)는 서로 직교.
(x15 <- c(1, 2, 2, 4))
## [1] 1 2 2 4
(y15 <- c(6, 3, -2, -2))
## [1]  6  3 -2 -2
x15 %*% y15
##      [,1]
## [1,]    0
  • 두 정규벡터가 직교할 때 그 두 벡터를 정직교벡터라 함. \(u^u = 1, v^tv =1, u^v = 0\).
(u16 <- 1/6*c(1, 1, 3, 3, 4))
## [1] 0.1666667 0.1666667 0.5000000 0.5000000 0.6666667
(v16 <- c(-0.1, -0.9, -0.1, -0.1, 0.4))
## [1] -0.1 -0.9 -0.1 -0.1  0.4
u16 %*% u16
##      [,1]
## [1,]    1
v16 %*% v16
##      [,1]
## [1,]    1
u16 %*% v16
##      [,1]
## [1,]    0
  • 정직교집합 : 집합에 있는 모든 벡터들이 정규벡터이고, 서로 다른 벡터끼리 직교.
    • 행렬 \(P_{r\times c}\)의 행들이 정직교집합을 이룰 때, 정직교행들을 가진다고 함. 이 때 \(P\ P^t = I_r\) 성립. 역이 항상 성립하지는 않음.
(P17 <- matrix(c(1, 0, 0, 1, 0, 0), 2))
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
P17 %*% t(P17)
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1
t(P17) %*% P17
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    0
  • 직교행렬 : 행렬 \(P\)가 정방행렬이며, 정직교 행과 정직교 열을 가짐. \(P\)는 정방행렬이고, \(P\ P^t = I\), \(P^t P = I\).
    • 두 직교행렬 \(A\)\(B\)의 곱 \(A\ B\)도 직교행렬
(P18 <- 1/sqrt(6)*matrix(c(sqrt(2), sqrt(3), 1, sqrt(2), -sqrt(3), 1, sqrt(2), 0, -2), 3))
##           [,1]       [,2]       [,3]
## [1,] 0.5773503  0.5773503  0.5773503
## [2,] 0.7071068 -0.7071068  0.0000000
## [3,] 0.4082483  0.4082483 -0.8164966
round(t(P18) %*% P18, digits=5)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
P18 %*% t(P18)
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1

2차 형식(quadratic forms)

  • 2차 형식 : \(x^t A x\)

양(반)정치 행렬(positive (semi)definite matrix)

  • \(x\ne0\)인 모든 벡터 \(x\)에 대하여 \(x^tA\ x > 0\)일 때 행렬 \(A\)는 양정치 행렬.

  • \(x\ne0\)인 모든 벡터 \(x\)에 대하여 \(x^tA\ x >= 0\)이고, 어떤 \(x\ne0\)에 대하여 \(x^tA\ x = 0\)일 때 행렬 \(A\)는 양반정치 행렬. \(C = I - \frac{1}{n}J\) : 양반정치 행렬
    • 같은 값을 갖는 항상 대칭인 행렬 \(A\)를 찾을 수 있음. \(\frac{1}{2}(A + A^t)\).

자료 저장

save.image("chapter_3_class.rda")