\(\vec{u}=\begin{bmatrix}2\\1\\4\end{bmatrix}\), \(\vec{v}=\begin{bmatrix}1\\-1\\3\end{bmatrix}\), \(\vec{w}=\begin{bmatrix}3\\2\\5\end{bmatrix}\), \(a_1\vec{u}+a_2\vec{v}+a_3\vec{w}=\vec{b}\) 를 만족하는 \(a_1, a_2, a_3\)?
source("./adjoint.R")
(u <- c(2, 1, 4))
## [1] 2 1 4
(v <- c(1, -1, 3))
## [1] 1 -1 3
(w <- c(3, 2, 5))
## [1] 3 2 5
(X <- cbind(u, v, w))
## u v w
## [1,] 2 1 3
## [2,] 1 -1 2
## [3,] 4 3 5
det(X)
## [1] 2
adjoint(X)
## [,1] [,2] [,3]
## [1,] -11 4 5
## [2,] 3 -2 -1
## [3,] 7 -2 -3
adjoint(X)/det(X)
## [,1] [,2] [,3]
## [1,] -5.5 2 2.5
## [2,] 1.5 -1 -0.5
## [3,] 3.5 -1 -1.5
solve(X)
## [,1] [,2] [,3]
## u -5.5 2 2.5
## v 1.5 -1 -0.5
## w 3.5 -1 -1.5
(b1 <- c(5, 9, 5))
## [1] 5 9 5
(adjoint(X)/det(X)) %*% b1
## [,1]
## [1,] 3
## [2,] -4
## [3,] 1
solve(X, b1)
## u v w
## 3 -4 1
solve(X, b1)[1]*u + solve(X, b1)[2]*v + solve(X, b1)[3]*w
## [1] 5 9 5
(b2 <- c(2, 0, 6))
## [1] 2 0 6
(adjoint(X)/det(X)) %*% b2
## [,1]
## [1,] 4.000000e+00
## [2,] -8.881784e-16
## [3,] -2.000000e+00
round((adjoint(X)/det(X)) %*% b2, digits = 2)
## [,1]
## [1,] 4
## [2,] 0
## [3,] -2
solve(X, b2)
## u v w
## 4 0 -2
solve(X, b2)[1]*u + solve(X, b2)[2]*v + solve(X, b2)[3]*w
## [1] 2 0 6
(b3 <- c(0, 0, 0))
## [1] 0 0 0
(adjoint(X)/det(X)) %*% b3
## [,1]
## [1,] 0
## [2,] 0
## [3,] 0
solve(X, b3)
## u v w
## 0 0 0
solve(X, b3)[1]*u + solve(X, b3)[2]*v + solve(X, b3)[3]*w
## [1] 0 0 0
\(\vec{v_1}=\begin{bmatrix}1\\1\\1\end{bmatrix}\), \(\vec{v_2}=\begin{bmatrix}2\\2\\0\end{bmatrix}\), \(\vec{v_3}=\begin{bmatrix}3\\0\\0\end{bmatrix}\).
선형독립인 벡터 집합을 찾아내는 문제. 세개의 벡터인 경우는 선형독립 여부만 판단하면 됨. 정방행렬들이므로 행렬식의 존재여부로 판단.
(u2 <- c(1, 1, 1))
## [1] 1 1 1
(v2 <- c(2, 2, 0))
## [1] 2 2 0
(w2 <- c(3, 0, 0))
## [1] 3 0 0
(X2 <- cbind(u2, v2, w2))
## u2 v2 w2
## [1,] 1 2 3
## [2,] 1 2 0
## [3,] 1 0 0
det(X2)
## [1] -6
(u3 <- c(2, -1, 3))
## [1] 2 -1 3
(v3 <- c(4, 1, 2))
## [1] 4 1 2
(w3 <- c(8, -1, 8))
## [1] 8 -1 8
(X3 <- cbind(u3, v3, w3))
## u3 v3 w3
## [1,] 2 4 8
## [2,] -1 1 -1
## [3,] 3 2 8
det(X3)
## [1] 0
2*u3 + v3
## [1] 8 -1 8
4 개의 벡터 중 1, 2개로는 \(R^3\)를 생성할 수 없으므로 3개일 때 집중. 3개씩은 모두 선형독립이므로 \(R^3\) 생성 가능. solve(X, )
의 결과는 나머지 한 벡터가 다른 세 개의 벡터의 선형결합으로 나타날 때 계수를 찾아준 것임.
(u4 <- c(1, 3, 3))
## [1] 1 3 3
(v4 <- c(1, 3, 4))
## [1] 1 3 4
(w4 <- c(1, 4, 3))
## [1] 1 4 3
(t4 <- c(6, 2, 1))
## [1] 6 2 1
(X4 <- cbind(u4, v4, w4))
## u4 v4 w4
## [1,] 1 1 1
## [2,] 3 3 4
## [3,] 3 4 3
det(X4)
## [1] -1
adjoint(X4)
## [,1] [,2] [,3]
## [1,] -7 1 1
## [2,] 3 0 -1
## [3,] 3 -1 0
adjoint(X4)/det(X4)
## [,1] [,2] [,3]
## [1,] 7 -1 -1
## [2,] -3 0 1
## [3,] -3 1 0
solve(X4)
## [,1] [,2] [,3]
## u4 7 -1.000000e+00 -1
## v4 -3 2.220446e-16 1
## w4 -3 1.000000e+00 0
round(solve(X4), digits = 2)
## [,1] [,2] [,3]
## u4 7 -1 -1
## v4 -3 0 1
## w4 -3 1 0
(adjoint(X4)/det(X4)) %*% t4
## [,1]
## [1,] 39
## [2,] -17
## [3,] -16
solve(X4, t4)
## u4 v4 w4
## 39 -17 -16
adjoint(X4) %*% t4
## [,1]
## [1,] -39
## [2,] 17
## [3,] 16
solve(X4, t4)[1]*u4 + solve(X4, t4)[2]*v4 + solve(X4, t4)[3]*w4
## [1] 6 2 1
(X5 <- cbind(u4, v4, t4))
## u4 v4 t4
## [1,] 1 1 6
## [2,] 3 3 2
## [3,] 3 4 1
det(X5)
## [1] 16
adjoint(X5)
## [,1] [,2] [,3]
## [1,] -5 23 -16
## [2,] 3 -17 16
## [3,] 3 -1 0
adjoint(X5)/det(X5)
## [,1] [,2] [,3]
## [1,] -0.3125 1.4375 -1
## [2,] 0.1875 -1.0625 1
## [3,] 0.1875 -0.0625 0
solve(X5)
## [,1] [,2] [,3]
## u4 -0.3125 1.4375 -1
## v4 0.1875 -1.0625 1
## t4 0.1875 -0.0625 0
(adjoint(X5)/det(X5)) %*% w4
## [,1]
## [1,] 2.4375
## [2,] -1.0625
## [3,] -0.0625
solve(X5, w4)
## u4 v4 t4
## 2.4375 -1.0625 -0.0625
adjoint(X5) %*% w4
## [,1]
## [1,] 39
## [2,] -17
## [3,] -1
solve(X5, w4)[1]*u4 + solve(X5, w4)[2]*v4 + solve(X5, w4)[3]*t4
## [1] 1 4 3
(X6 <- cbind(u4, w4, t4))
## u4 w4 t4
## [1,] 1 1 6
## [2,] 3 4 2
## [3,] 3 3 1
det(X6)
## [1] -17
adjoint(X6)
## [,1] [,2] [,3]
## [1,] -2 17 -22
## [2,] 3 -17 16
## [3,] -3 0 1
adjoint(X6)/det(X6)
## [,1] [,2] [,3]
## [1,] 0.1176471 -1 1.29411765
## [2,] -0.1764706 1 -0.94117647
## [3,] 0.1764706 0 -0.05882353
solve(X6)
## [,1] [,2] [,3]
## u4 0.1176471 -1.000000e+00 1.29411765
## w4 -0.1764706 1.000000e+00 -0.94117647
## t4 0.1764706 -9.796086e-18 -0.05882353
(adjoint(X6)/det(X6)) %*% v4
## [,1]
## [1,] 2.29411765
## [2,] -0.94117647
## [3,] -0.05882353
solve(X6, v4)
## u4 w4 t4
## 2.29411765 -0.94117647 -0.05882353
adjoint(X6) %*% v4
## [,1]
## [1,] -39
## [2,] 16
## [3,] 1
solve(X6, v4)[1]*u4 + solve(X6, v4)[2]*w4 + solve(X6, v4)[3]*t4
## [1] 1 3 4
(X7 <- cbind(v4, w4, t4))
## v4 w4 t4
## [1,] 1 1 6
## [2,] 3 4 2
## [3,] 4 3 1
det(X7)
## [1] -39
adjoint(X7)
## [,1] [,2] [,3]
## [1,] -2 17 -22
## [2,] 5 -23 16
## [3,] -7 1 1
adjoint(X7)/det(X7)
## [,1] [,2] [,3]
## [1,] 0.05128205 -0.43589744 0.56410256
## [2,] -0.12820513 0.58974359 -0.41025641
## [3,] 0.17948718 -0.02564103 -0.02564103
solve(X7)
## [,1] [,2] [,3]
## v4 0.05128205 -0.43589744 0.56410256
## w4 -0.12820513 0.58974359 -0.41025641
## t4 0.17948718 -0.02564103 -0.02564103
(adjoint(X7)/det(X7)) %*% u4
## [,1]
## [1,] 0.43589744
## [2,] 0.41025641
## [3,] 0.02564103
solve(X7, u4)
## v4 w4 t4
## 0.43589744 0.41025641 0.02564103
adjoint(X7) %*% u4
## [,1]
## [1,] -17
## [2,] -16
## [3,] -1
solve(X7, u4)[1]*v4 + solve(X7, u4)[2]*w4 + solve(X7, u4)[3]*t4
## [1] 1 3 3
\(\vec{x_1}=\begin{bmatrix}1\\2\\1\end{bmatrix}\), \(\vec{x_2}=\begin{bmatrix}-1\\3\\2\end{bmatrix}\), \(\vec{x_3}=\begin{bmatrix}-13\\-1\\2\end{bmatrix}\), \(\vec{x_4}=\begin{bmatrix}1\\1\\0\end{bmatrix}\).
(u8 <- c(1, 2, 1))
## [1] 1 2 1
(v8 <- c(-1, 3, 2))
## [1] -1 3 2
(w8 <- c(-13, -1, 2))
## [1] -13 -1 2
(t8 <- c(1, 1, 0))
## [1] 1 1 0
X8 <- cbind(u8, v8, w8)
det(X8)
## [1] 0
\(a_1\vec{x_1}+a_2\vec{x_2}=\vec{x_3}\)를 풀어주면 \(a_1=-8, a_2=5\) 임을 쉽게 파악.
(X9 <- cbind(u8, v8, t8))
## u8 v8 t8
## [1,] 1 -1 1
## [2,] 2 3 1
## [3,] 1 2 0
det(X9)
## [1] -2
adjoint(X9)
## [,1] [,2] [,3]
## [1,] -2 2 -4
## [2,] 1 -1 1
## [3,] 1 -3 5
adjoint(X9)/det(X9)
## [,1] [,2] [,3]
## [1,] 1.0 -1.0 2.0
## [2,] -0.5 0.5 -0.5
## [3,] -0.5 1.5 -2.5
\(a_1\vec{x_1}+a_2\vec{x_2}+a_3\vec{x_4}=\begin{bmatrix}a\\b\\c\end{bmatrix}\) 를 정리하면
\(\begin{bmatrix}1&-1&1\\2&3&1\\1&2&0\end{bmatrix}\begin{bmatrix}a_1\\a_2\\a_3\end{bmatrix}=\begin{bmatrix}a\\b\\c\end{bmatrix}\) 를 풀어주면,
\(\begin{bmatrix}a_1\\a_2\\a_3\end{bmatrix}=\begin{bmatrix}1&-1&1\\2&3&1\\1&2&0\end{bmatrix}^{-1}\begin{bmatrix}a\\b\\c\end{bmatrix}=(-1/2)\begin{bmatrix}-2&2&4\\1&-1&1\\1&-3&5\end{bmatrix}\begin{bmatrix}a\\b\\c\end{bmatrix}=\begin{bmatrix}a-b+2c\\-a/2+b/2-c/2\\-a/2+3b/2-5c/2\end{bmatrix}\)
(X10 <- cbind(c(2, -1, 4), c(3, 6, 2), c(2, 10, -4)))
## [,1] [,2] [,3]
## [1,] 2 3 2
## [2,] -1 6 10
## [3,] 4 2 -4
det(X10)
## [1] -32
(X11 <- cbind(c(3, 1, 1), c(2, -1, 5), c(4, 0, -3)))
## [,1] [,2] [,3]
## [1,] 3 2 4
## [2,] 1 -1 0
## [3,] 1 5 -3
det(X11)
## [1] 39
(u10 <- c(6, 0, -1))
## [1] 6 0 -1
(v10 <- c(1, 1, 4))
## [1] 1 1 4
(X12 <- cbind(u10, v10))
## u10 v10
## [1,] 6 1
## [2,] 0 1
## [3,] -1 4
위의 R 코드는 \(\vec{u}=\begin{bmatrix}6\\0\\-1\end{bmatrix}, \vec{v}=\begin{bmatrix}1\\1\\4\end{bmatrix}\), \(X=\begin{bmatrix}\vec{u}&\vec{v}\end{bmatrix}\) 라고 설정하는 과정이다. 여기서 \(\vec{a}=\begin{bmatrix}a_1\\a_2\end{bmatrix}\) 했을 때, \(a_1\begin{bmatrix}6\\0\\-1\end{bmatrix}+a_2\begin{bmatrix}1\\1\\4\end{bmatrix}=X\vec{a}\)이므로, \(X\vec{a}=\vec{0}\)의 해가 \(\vec{a}=\vec{0}\)임을 보이면 된다. 이를 위하여 \(X\)의 어느 \(2\times2\) 서브매트릭스, \(X_{2\times2}\)라 하자, 를 택하더라도 역행렬이 존재하여 \(\vec{a}=X_{2\times2}^{-1}\vec{0}=\vec{0}\) 이고, 이 \(\vec{a}=0\)은 나머지 한 식도 만족시키기 때문에 결국 \(\vec{a}=0\)이고, \(\vec{u}\)와 \(\vec{v}\)는 선형독립이다.
det(X12[1:2, ])
## [1] 6
adjoint(X12[1:2, ])
## [,1] [,2]
## [1,] 1 -1
## [2,] 0 6
solve(X12[1:2, ])
## [,1] [,2]
## u10 0.1666667 -0.1666667
## v10 0.0000000 1.0000000
det(X12[c(1, 3), ])
## [1] 25
adjoint(X12[c(1, 3), ])
## [,1] [,2]
## [1,] 4 -1
## [2,] 1 6
solve(X12[c(1, 3), ])
## [,1] [,2]
## u10 0.16 -0.04
## v10 0.04 0.24
det(X12[2:3, ])
## [1] 1
adjoint(X12[2:3, ])
## [,1] [,2]
## [1,] 4 -1
## [2,] 1 0
solve(X12[2:3, ])
## [,1] [,2]
## u10 4 -1
## v10 1 0
\(\vec{u}=\begin{bmatrix}1\\3\\3\end{bmatrix}, \vec{v}=\begin{bmatrix}0\\1\\4\end{bmatrix},\vec{w}=\begin{bmatrix}5\\6\\3\end{bmatrix},\vec{t}=\begin{bmatrix}7\\2\\-1\end{bmatrix}\), \(X=\begin{bmatrix}\vec{u}&\vec{v}&\vec{w}&\vec{t}\end{bmatrix}\) 라 하고, \(\vec{a}=\begin{bmatrix}a_1\\a_2\\a_3\end{bmatrix}\) 라 하여 \(a_1\vec{u}+a_2\vec{v}+a_3\vec{w}=\vec{t}\), 즉 \(X_{[,1:3]}\vec{a}=\vec{t}\) 등을 풀어보면 된다. (단, \(X_{[,1:3]}\) 는 \(X\)의 1, 2, 3번째 열로 구성된 행렬)
(u11 <- c(1, 3, 3))
## [1] 1 3 3
(v11 <- c(0, 1, 4))
## [1] 0 1 4
(w11 <- c(5, 6, 3))
## [1] 5 6 3
(t11 <- c(7, 2, -1))
## [1] 7 2 -1
(X13 <- cbind(u11, v11, w11, t11))
## u11 v11 w11 t11
## [1,] 1 0 5 7
## [2,] 3 1 6 2
## [3,] 3 4 3 -1
위의 코드는 \(\vec{u},\vec{v},\vec{w},\vec{t}\) 와 행렬 \(X=\begin{bmatrix}\vec{u}&\vec{v}&\vec{w}&\vec{t}\end{bmatrix}\) 를 설정하는 과정.
det(X13[, 1:3])
## [1] 24
\(X_{[,1:3]}\)의 행렬식이 0이 아니므로, 역행렬이 존재하고 \(X_{[,1:3]}\vec{a}=\vec{t}\) 의 해가 존재한다. 다음은, 이 해를 구하는 과정.
solve(X13[, 1:3], t11)
## u11 v11 w11
## -4.25 1.25 2.25
소숫점의 정체를 파악하기 위하여 행렬식을 곱해보면,
solve(X13[, 1:3], t11)*det(X13[, 1:3])
## u11 v11 w11
## -102 30 54
위에서 구한 \(\vec{a}\) 의 원소들이 \(a_1\vec{u}+a_2\vec{v}+a_3\vec{w}=\vec{t}\) 를 만족하는지 살펴보자.
solve(X13[, 1:3], t11)[1]*u11 + solve(X13[, 1:3], t11)[2]*v11 + solve(X13[, 1:3], t11)[3]*w11
## [1] 7 2 -1
위의 계산 결과로부터 \(\vec{u}, \vec{v}, \vec{w}\)는 선형독립이고, \(\vec{t}=\frac{-102}{24}\vec{u}+\frac{30}{24}\vec{v}+\frac{54}{24}\vec{w}=-\frac{17}{4}\vec{u}+\frac{5}{4}\vec{v}+\frac{9}{4}\vec{w}\) 의 선형결합으로 나타난다는 것을 알 수 있다.
det(X13[, c(1, 2, 4)])
## [1] 54
solve(X13[, c(1, 2, 4)], w11)
## u11 v11 t11
## 1.8888889 -0.5555556 0.4444444
solve(X13[, c(1, 2, 4)], w11)*det(X13[, c(1, 2, 4)])
## u11 v11 t11
## 102 -30 24
solve(X13[, c(1, 2, 4)], w11)[1]*u11 + solve(X13[, c(1, 2, 4)], w11)[2]*v11 + solve(X13[, c(1, 2, 4)], w11)[3]*t11
## [1] 5 6 3
\(\vec{w}=\frac{102}{54}\vec{u}+\frac{-30}{54}\vec{v}+\frac{24}{54}\vec{t}=\frac{17}{9}\vec{u}-\frac{5}{9}\vec{v}+\frac{4}{9}\vec{t}\)
det(X13[, c(1, 3, 4)])
## [1] -30
solve(X13[, c(1, 3, 4)], v11)
## u11 w11 t11
## 3.4 -1.8 0.8
solve(X13[, c(1, 3, 4)], v11)*det(X13[, c(1, 3, 4)])
## u11 w11 t11
## -102 54 -24
solve(X13[, c(1, 3, 4)], v11)[1]*u11 + solve(X13[, c(1, 3, 4)], v11)[2]*w11 + solve(X13[, c(1, 3, 4)], v11)[3]*t11
## [1] 8.881784e-16 1.000000e+00 4.000000e+00
round(solve(X13[, c(1, 3, 4)], v11)[1]*u11 + solve(X13[, c(1, 3, 4)], v11)[2]*w11 + solve(X13[, c(1, 3, 4)], v11)[3]*t11, digits = 2)
## [1] 0 1 4
\(\vec{v}=\frac{-102}{-30}\vec{u}+\frac{54}{-30}\vec{w}+\frac{-24}{-30}\vec{t}\frac{17}{5}\vec{u}-\frac{9}{5}\vec{w}+\frac{4}{5}\vec{t}\)
det(X13[, 2:4])
## [1] -102
solve(X13[, 2:4], u11)
## v11 w11 t11
## 0.2941176 0.5294118 -0.2352941
solve(X13[, 2:4], u11)*det(X13[, 2:4])
## v11 w11 t11
## -30 -54 24
solve(X13[, 2:4], u11)[1]*v11 + solve(X13[, 2:4], u11)[2]*w11 + solve(X13[, 2:4], u11)[3]*t11
## [1] 1 3 3
\(\vec{u}=\frac{-30}{-102}\vec{v}+\frac{-54}{-102}\vec{w}-\frac{24}{-102}\vec{t}=\frac{10}{51}\vec{v}+\frac{9}{17}\vec{w}-\frac{4}{17}\vec{t}\)
\(\vec{x_1}=\begin{bmatrix}1\\2\\1\end{bmatrix}\), \(\vec{x_2}=\begin{bmatrix}-1\\3\\2\end{bmatrix}\), \(\vec{x_3}=\begin{bmatrix}3\\1\\0\end{bmatrix}\), \(\vec{x_4}=\begin{bmatrix}3\\1\\1\end{bmatrix}\).
(u14 <- c(1, 2, 1))
## [1] 1 2 1
(v14 <- c(-1, 3, 2))
## [1] -1 3 2
(w14 <- c(3, 1, 0))
## [1] 3 1 0
(t14 <- c(3, 1, 1))
## [1] 3 1 1
X14 <- cbind(u14, v14, w14)
det(X14)
## [1] 0
\(a_1\vec{x_1}+a_2\vec{x_2}=\vec{x_3}\)를 풀어주면 \(a_1=2, a_2=-1\) 임을 쉽게 파악.
(X15 <- cbind(u14, v14, t14))
## u14 v14 t14
## [1,] 1 -1 3
## [2,] 2 3 1
## [3,] 1 2 1
det(X15)
## [1] 5
adjoint(X15)
## [,1] [,2] [,3]
## [1,] 1 7 -10
## [2,] -1 -2 5
## [3,] 1 -3 5
adjoint(X15)/det(X15)
## [,1] [,2] [,3]
## [1,] 0.2 1.4 -2
## [2,] -0.2 -0.4 1
## [3,] 0.2 -0.6 1
\(a_1\vec{x_1}+a_2\vec{x_2}+a_3\vec{x_4}=\begin{bmatrix}a\\b\\c\end{bmatrix}\) 를 정리하면
\(\begin{bmatrix}1&-1&3\\2&3&1\\1&2&1\end{bmatrix}\begin{bmatrix}a_1\\a_2\\a_3\end{bmatrix}=\begin{bmatrix}a\\b\\c\end{bmatrix}\) 를 풀어주면,
\(\begin{bmatrix}a_1\\a_2\\a_3\end{bmatrix}=\begin{bmatrix}1&-1&3\\2&3&1\\1&2&1\end{bmatrix}^{-1}\begin{bmatrix}a\\b\\c\end{bmatrix}=(1/5)\begin{bmatrix}1&7&-10\\-1&-2&5\\1&-3&5\end{bmatrix}\begin{bmatrix}a\\b\\c\end{bmatrix}=\begin{bmatrix}a/5+7b/5-2c\\-a/5-2b/5+c\\a/5-3b/5+c\end{bmatrix}\)
save.image("chapter_6_lab.rda")