Werken met R bij wiskunde: Lineaire algebra in R
Gelijkvormigheid van matrices
Twee matrices zijn gelijkvormig dan en slechts dan als ze dezelfde gereduceerde trapvorm hebben.
Dit betekent dat je in R gelijkvormigheid van matrices kan verifiëren door na te gaan met de functie rref
uit het pracma
pakket dat ze dezelfde rijgereduceerde trapvorm hebben
> library(pracma)
> A <- matrix(c(4, 2, -2, 1), nrow=2); A
[,1] [,2]
[1,] 4 -2
[2,] 2 1
> B <- matrix(c(3, 1, -2, 2), nrow=2); B
[,1] [,2]
[1,] 3 -2
[2,] 1 2
> rref(A) == rref(B)
[,1] [,2]
[1,] TRUE TRUE
[2,] TRUE TRUE
> all.equal(rref(A), rref(B))
[1] TRUE
> T <- matrix(c(1, 1, -1, 0), nrow=2); T # geschikte transformatiematrix
[,1] [,2]
[1,] 1 -1
[2,] 1 0
> inv(T) %*% A %*% T # T^(-1)*A*T is gelijk aan matrix B
[,1] [,2]
[1,] 3 -2
[2,] 1 2
> S <- matrix(c(1, 0, 1, 2), nrow=2); S # transformatiematrices zijn niet uniek
[,1] [,2]
[1,] 1 1
[2,] 0 2
> B - inv(S) %*% A %*% S
[,1] [,2]
[1,] 0 0
[2,] 0 0
> P <- S %*% inv(T); P # niet-triviale transformatiematrix die A intact laat
[,1] [,2]
[1,] -1 2
[2,] -2 2
> A - inv(P) %*% A %*% P
[,1] [,2]
[1,] 0 0
[2,] 0 0>> A = [4 -2; 2 1]
A =
4 -2
2 1
>> B = [3 -2; 1 2]
B =
3 -2
1 2
>> rref(A) == rref(B)
ans =
2×2 logical array
1 1
1 1
>> isequal(rref(A), rref(B))
ans =
logical
1
>> T = [1 -1; 1 0] % geschikte transformatiematrix
T =
1 -1
1 0
>> T^(-1) * A * T $ gelijk aan matrix B
ans =
3 -2
1 2
>> B - T^(-1) * A * T
ans =
0 0
0 0
>> S = [1 1; 0 2] % transformatiematrices zijn niet uniek
S =
1 1
0 2
>> B - S^(-1) * A * S
ans =
0 0
0 0
>> P = S * T^(-1) % niet-triviale transformatiematrix die A intact laat
P =
-1 2
-2 2
>> A - P^(-1) * A * P
ans =
0 0
0 0
Ontgrendel volledige toegang