#library('matlib')
library('pracma')
#library('spatstat')
C29 pg. 460
A = cbind(c(1,2,1,1), c(2,1,2,2), c(1,1,1,1), c(1,0,2,1))
A
## [,1] [,2] [,3] [,4]
## [1,] 1 2 1 1
## [2,] 2 1 1 0
## [3,] 1 2 1 2
## [4,] 1 2 1 1
rref(A)
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0.3333333 0
## [2,] 0 1 0.3333333 0
## [3,] 0 0 0.0000000 1
## [4,] 0 0 0.0000000 0
null(A)
## [,1]
## [1,] -3.015113e-01
## [2,] -3.015113e-01
## [3,] 9.045340e-01
## [4,] -4.163336e-17
round(nullspace(A), 5)
## [,1]
## [1,] -0.30151
## [2,] -0.30151
## [3,] 0.90453
## [4,] 0.00000
round(A %*% null(A), 5)
## [,1]
## [1,] 0
## [2,] 0
## [3,] 0
## [4,] 0
# we see that A has a non-trivial nullspace so T is not injective