학부수업/다변수함수론
chapter1 Matrix Algebra_1. Notation
Whale_Rice
2021. 10. 22. 00:07
건국대학교 응용통계학과 3-2 김형문 교수님의 다변수함수론 강의 中 R programming을 참고하였습니다.
A vector
a <- c(1,2,3,4)
a <- 1:4
[1] 1 2 3 4
A matrix
array(1:6,dim=c(2,3)) # dim = c(2,3)은 2*3 행렬을 만든다는 소리이다.
matrix(1:6,nrow=2,ncol=3) # nrow =2, nrow=3 은 행의 개수가 2, 열의 개수가 3이라는 소리이다.
rbind(c(1,2,3),c(4,5,6)) # rbind은 'r'ow기준으로 bind한다는 소리이다.
cbind(c(1,4),c(2,5),c(3,6)) # cbind는 'c'olumn기준으로 bind한다는 소리이다.
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
x1 <- 1:4; x2 <- 5:8 ; x3 <- 9:12; x4 <- 13:16
matrix(c(x1,x2,x3,x4),nrow=4,ncol=4) # 위에서도 알 수 있겠지만 default가 column 방향으로 되어있다.
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
Transpose of a vector
a <-c(1,2,3,4)
t(a) # 여기서 주의해야할 점은 기본 a은 열벡터로 저장된다는 점이다. R에서 벡터는 열벡터로 생각해야한다.
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
Transpose of a matrix
X <- array(1:16,dim=c(4,4))
t(X)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
Identity matrix
diag(3)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
?diag
Description : Extract or replace the diagonal of a matrix, or construct a diagonal matrix.
Usage : diag(x = 1, nrow, ncol, names = TRUE)
# 그럼 diag(3)은 nrow에 3이 들어갔다는 소리이다. 즉, dia(nrow=3). 만약 diag(ncol=3)이면 어떻게 될까??
오류가 나온다고 할 수 있겠다.. (why? argument "nrow" is missing, with no default 즉, nrow이 들어가야하는 순간인데, ncol이 지정되었으니 R이 당황한 것이다. )
Inverse matrix & Inverse of a diagonal matrix
A <- matrix(c(1,2,1,3),2,2)
solve(A)
[,1] [,2]
[1,] 3 -1
[2,] -2 1
solve(matrix(c(1,0,0,0,2,0,0,0,3),3,3))
[,1] [,2] [,3]
[1,] 1 0.0 0.0000000
[2,] 0 0.5 0.0000000
[3,] 0 0.0 0.3333333
Product of two matrices
A <- matrix(c(1,2,1,2),2,2)
B <- matrix(c(1,3,2,4),2,2)
A%*%B # 행렬의 곱을 의미한다.
[,1] [,2]
[1,] 4 6
[2,] 8 12
# 참고
A*B # 각 해당 원소끼리의 곱을 의미한다.
[,1] [,2]
[1,] 1 2
[2,] 6 8
Vector and square matrix of ones
rep(1,5)
[1] 1 1 1 1 1
rep(1,5) %*% t(rep(1,5)) # 여기서 주의해야할 점은 rep(1,5)은 화면에서는 행벡터로 보이지만, 사실 열벡터라는 것이다.
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 1
[3,] 1 1 1 1 1
[4,] 1 1 1 1 1
[5,] 1 1 1 1 1
matrix(1,5,5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 1 1 1 1 1
[3,] 1 1 1 1 1
[4,] 1 1 1 1 1
[5,] 1 1 1 1 1
# 참고
t(rep(1,5)) %*% rep(1,5)
[,1]
[1,] 5
Centering matrix (중심화 행렬 -> 나중에 표본분산을 구할 때 용이하게 쓰인다.)
diag(3) -(1/3)*matrix(1,3,3)
[,1] [,2] [,3]
[1,] 0.6666667 -0.3333333 -0.3333333
[2,] -0.3333333 0.6666667 -0.3333333
[3,] -0.3333333 -0.3333333 0.6666667
An example of linear dependence
v1 <- c(1,2); v2 <- c(2,4)
V <- matrix(c(v1,v2),2,2)
v.fun <- function(r1,r2){r1*v1 + r2*v2}
v.fun(0,0)
[1] 0 0
v.fun(-2,1)
[1] 0 0
det(V)
[1] 0
ㅎㅎ,, 왜 이렇게 독립성 여부를 보여야 하는지 모르겠지만,, 위에서 c1*v1 +c2*v2 = 0 을 만족하는 (c1,c2) = (0,0)만이 존재하지 않다는 것을 보여주는 예시이다. (-2,1)도 있으니깐!!
Partitioned form of a matrix
A11 <- matrix(1:4,2,2); A21 <-matrix(5:6,1,2)
t(A11)%*%A11 + t(A21)%*%A21
[,1] [,2]
[1,] 30 41
[2,] 41 61
A <- matrix(c(1,2,5,3,4,6),3,2)
t(A)%*%A
[,1] [,2]
[1,] 30 41
[2,] 41 61