hosvd-methods {DelayedTensor} | R Documentation

## (Truncated-)Higher-order SVD

### Description

Higher-order SVD of a K-Tensor. Write the K-Tensor as a (m-mode) product of a core Tensor (possibly smaller modes) and K orthogonal factor matrices. Truncations can be specified via `ranks` (making them smaller than the original modes of the K-Tensor will result in a truncation). For the mathematical details on HOSVD, consult Lathauwer et. al. (2000).

### Usage

    hosvd(darr, ranks=NULL)

    ## S4 method for signature 'DelayedArray'
    hosvd(darr, ranks)

### Arguments

`darr` | Tensor with K modes
`ranks` | a vector of desired modes in the output core tensor, default is `darr@modes`

### Details

This function is an extension of the `hosvd` by DelayedArray.

A progress bar is included to help monitor operations on large tensors.

### Value

a list containing the following:

`Z`

  core tensor with modes speficied by `ranks`

`U`

  a list of orthogonal matrices, one for each mode

`est`

  estimate of `darr` after compression

`fnorm_resid`

  the Frobenius norm of the error `fnorm(est-darr)` - if there was no truncation, then this is on the order of mach_eps * fnorm.

### Note

The length of `ranks` must match `darr@num_modes`.

### References

L. Lathauwer, B.Moor, J. Vanderwalle "A multilinear singular value decomposition". Journal of Matrix Analysis and Applications 2000.

### See Also

`tucker`

### Examples

    library("DelayedRandomArray")
    darr <- RandomUnifArray(c(3,4,5))
    hosvd(darr, ranks=c(2,1,3))

[Package DelayedTensor version 1.0.0 Index]