Constructing the matrices for this exercise

A = matrix(c(6,4,4,10,-2,8,4,6,8),nrow = 3, ncol = 3, byrow = TRUE)
B = matrix(c(6,-2,5,5,7,4,-2,3,1),nrow = 3, ncol = 3, byrow = TRUE)
C = matrix(c(3,-1,10,5,7,4,-2,3,1),nrow = 3, ncol = 3, byrow = TRUE)
D = matrix(c(2,-1,-1,2),nrow = 2, ncol = 2, byrow = TRUE)
J = matrix(c(1,1,1),ncol = 1, byrow = TRUE)
print(A)
##      [,1] [,2] [,3]
## [1,]    6    4    4
## [2,]   10   -2    8
## [3,]    4    6    8
print(B)
##      [,1] [,2] [,3]
## [1,]    6   -2    5
## [2,]    5    7    4
## [3,]   -2    3    1
print(C)
##      [,1] [,2] [,3]
## [1,]    3   -1   10
## [2,]    5    7    4
## [3,]   -2    3    1
print(D)
##      [,1] [,2]
## [1,]    2   -1
## [2,]   -1    2
print(J)
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1

Determinant of a Matrix

# 1a. [B + C]
(B + C)
##      [,1] [,2] [,3]
## [1,]    9   -3   15
## [2,]   10   14    8
## [3,]   -4    6    2
# 1b. J'A
(t(J) %*% A)
##      [,1] [,2] [,3]
## [1,]   20    8   20
# c. tr(A'C)
sum(diag(t(A) %*% C))
## [1] 140
# 1d. DD^-1
(D %*% solve(D))
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1
# 1e. eigenvalues and normalized eigenvectors of D
eigen_D <- eigen(D)
(eigen_D$values)
## [1] 3 1
# 1e. eigenvalues and normalized eigenvectors of D
(eigen_D$vectors)
##            [,1]       [,2]
## [1,] -0.7071068 -0.7071068
## [2,]  0.7071068 -0.7071068
###2. Verify if the following relationships hold:
##2a. CA^T = (C^T A)^T
CA_T <- C %*% t(A)
CT_A_T <- t(t(C) %*% A)

# Compare the results
(CA_T)
##      [,1] [,2] [,3]
## [1,]   54  112   86
## [2,]   74   68   94
## [3,]    4  -18   18
(CT_A_T)
##      [,1] [,2] [,3]
## [1,]   60   76  104
## [2,]  -10    0   38
## [3,]   36   76   80
# Check if they are equal
(all.equal(CA_T, CT_A_T))
## [1] "Mean relative difference: 0.8636364"
##2b. tr(3BA) = 3tr(BA)
# Calculate tr(3BA)
tr_3BA <- sum(diag(3 * B %*% A))

# Calculate 3tr(BA)
tr_BA <- sum(diag(B %*% A))
three_tr_BA <- 3 * tr_BA

# Compare the results
(tr_3BA)
## [1] 270
(three_tr_BA)
## [1] 270
# Check if they are equal
(all.equal(tr_3BA, three_tr_BA))
## [1] TRUE
##2c. |AB^T C| = |A| |B^T| |C|
# Calculate |AB^T C|
det_ABT_C <- det(A %*% t(B) %*% C)

# Calculate |A| |B^T| |C|
det_A <- det(A)
det_BT <- det(t(B))
det_C <- det(C)
det_product <- det_A * det_BT * det_C

# Compare the results
(det_ABT_C)
## [1] -12344832
(det_product)
## [1] -12344832
# Check if they are equal
(all.equal(det_ABT_C, det_product))
## [1] TRUE
##2d. r(ABC) = r(C)
# Calculate r(ABC)
rank_ABC <- qr(A %*% B %*% C)$rank

# Calculate r(C)
rank_C <- qr(C)$rank

# Compare the results
(rank_ABC)
## [1] 3
(rank_C)
## [1] 3
# Check if they are equal
(all.equal(rank_ABC, rank_C))
## [1] TRUE
###3.Find the generalized inverse of A.
# Calculate the generalized inverse of A
library(MASS)
A_ginv <- ginv(A)
print(A_ginv)
##            [,1]        [,2]        [,3]
## [1,]  0.2105263  0.02631579 -0.13157895
## [2,]  0.1578947 -0.10526316  0.02631579
## [3,] -0.2236842  0.06578947  0.17105263
###4.Find a C-inverse for matrix A. 
# Calculate a C-inverse for matrix A
A_cinv <- solve(t(A) %*% A) %*% t(A)
print(A_cinv)
##            [,1]        [,2]        [,3]
## [1,]  0.2105263  0.02631579 -0.13157895
## [2,]  0.1578947 -0.10526316  0.02631579
## [3,] -0.2236842  0.06578947  0.17105263

Rank of a matrix

qr(A)$rank
## [1] 3
qr(B)$rank
## [1] 3
qr(C)$rank
## [1] 3
qr(D)$rank
## [1] 2
qr(J)$rank
## [1] 1