Skip to contents

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.

Usage

dual(x, ...)

# S3 method for class 'gell'
dual(x, ...)

Arguments

x

An object, of class "gell"

...

Other arguments, unused for now.

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.

See also

Author

Georges Monette

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"