Finds the angle between two subspaces.

subspace(A, B)

Arguments

A, B

Numeric matrices; vectors will be considered as column vectors. These matrices must have the same number or rows.

Details

Finds the angle between two subspaces specified by the columns of A and B.

Value

An angle in radians.

References

Strang, G. (1998). Introduction to Linear Algebra. Wellesley-Cambridge Press.

Note

It is not necessary that two subspaces be the same size in order to find the angle between them. Geometrically, this is the angle between two hyperplanes embedded in a higher dimensional space.

See also

Examples

180 * subspace(c(1, 2), c(2, 1)) / pi  #=> 36.87
#> [1] 36.8699
180 * subspace(c(0, 1), c(1, 2)) / pi  #=> 26.565
#> [1] 26.56505

H <- hadamard(8)
A <- H[, 2:4]
B <- H[, 5:8]
subspace(A, B)    #=> 1.5708 or pi/2, i.e. A and B are orthogonal
#> [1] 1.570796