# RPD -- Various Ch. 2 Examples # Example 2.1 TT <- matrix(c(1,4,3,2,5,0), 3, 2) # must use name TT rather than T --- T is reserved for boolean "true" W <- rbind(-1, 3) TTW <- TT %*% W # matrix multiplication print(TT) print(W) print(TTW) TTtrans <- t(TT) # transpose print(TTtrans) # Example 2.2: Singular Matrix A <- matrix(c(2,1,5,4,2,7,6,3,9), 3, 3) detA <- det(A) # determinant print(A) print(detA) # Example 2.3: Matrix Inverse B <- matrix(c(1,4,8,3,5,7,2,6,9), 3, 3) detB <- det(B) invB <- solve(B) # inverse print(B) print(detB) print(invB) # Example 2.4: Matrix Rank A <- matrix(c(1,2,3,2,4,3,3,6,3), 3, 3) rankA <- qr(A)$rank # rank, based on a numerical decomposition print(A) print(rankA) Y <- rbind(6, 10, 9) A.Y <- cbind(A, Y) # combine columns into one matrix rankA.Y <- qr(A.Y)$rank print(A.Y) print(rankA.Y) # Note: There is an R function named "rank", but it does something else. # Example 2.10: Projections A <- (1/6) * matrix(c(5,2,-1,2,2,2,-1,2,5), 3, 3) AA <- A %*% A traceA <- sum(diag(A)) # trace print(A) print(AA) print(traceA) ImA <- diag(1,3) - A # diag(1,n) = n-by-n identity ImAImA <- ImA %*% ImA traceImA <- sum(diag(ImA)) print(ImA) print(ImAImA) print(traceImA) AImA <- A %*% ImA # zero, except for numerical error print(AImA)