dual
produces the orthogonal complement for subspaces or for
ellipsoids. This is equivalent to inverting \(\Sigma\) or an inner product
ip
when these are non-singular.
Value
A (U, D) representation of the dual, with components LIST, use
- u
Right singular vectors
- d
Singular values
Details
At present, dual
is only defined for objects of class "gell"
.
In the (U,D) representation, the dual simply has the columns of U in the reverse order, and the reciprocals of the diagonal elements of D, also in reverse order.
References
Dempster, A. (1969). Elements of Continuous Multivariate Analysis Reading, MA: Addison-Wesley.
Examples
(zplane <- gell(span = diag(3)[,1:2])) # a plane
#> $center
#> [1] 0 0 0
#>
#> $u
#> [,1] [,2] [,3]
#> [1,] 1 0 0
#> [2,] 0 1 0
#> [3,] 0 0 1
#>
#> $d
#> [1] Inf Inf 0
#>
#> attr(,"class")
#> [1] "gell"
dual(zplane) # line orthogonal to that plane
#> $center
#> [1] 0 0 0
#>
#> $u
#> [,1] [,2] [,3]
#> [1,] 0 0 1
#> [2,] 0 1 0
#> [3,] 1 0 0
#>
#> $d
#> [1] Inf 0 0
#>
#> attr(,"class")
#> [1] "gell"
(zhplane <- gell(center = c(0,0,2), span = diag(3)[,1:2])) # a hyperplane
#> $center
#> [1] 0 0 2
#>
#> $u
#> [,1] [,2] [,3]
#> [1,] 1 0 0
#> [2,] 0 1 0
#> [3,] 0 0 1
#>
#> $d
#> [1] Inf Inf 0
#>
#> attr(,"class")
#> [1] "gell"
dual(zhplane) # orthogonal line through same center (note that the 'gell'
#> $center
#> [1] 0 0 2
#>
#> $u
#> [,1] [,2] [,3]
#> [1,] 0 0 1
#> [2,] 0 1 0
#> [3,] 1 0 0
#>
#> $d
#> [1] Inf 0 0
#>
#> attr(,"class")
#> [1] "gell"
# object with a center contains more information than the geometric plane)
zorigin <- gell(span = cbind(c(0,0,0)))
dual( zorigin )
#> $center
#> [1] 0 0 0
#>
#> $u
#> [,1] [,2] [,3]
#> [1,] 0 0 1
#> [2,] 0 1 0
#> [3,] 1 0 0
#>
#> $d
#> [1] Inf Inf Inf
#>
#> attr(,"class")
#> [1] "gell"