# incrementalPOD

## Description

Use `incrementalPOD`

to perform on-the-fly Proper Orthogonal
Decomposition (POD) of a state data and build a low-rank approximation of the controllability
and observability Gramians.

## Creation

### Description

creates an incremental
POD object with default property values.`pod`

= incrementalPOD

sets the using name-value arguments. You can use this syntax to set the
`pod`

= incrementalPOD(`Name=Value`

)`RankTol`

and `Transform`

properties. The
remaining properties are read-only.

## Properties

## Object Functions

## Examples

## Algorithms

This object computes a low-rank approximation *X* ≈
*U**R**V ^{T}* of the state-snapshot matrix

*X*. In POD-based model reduction, the columns of

*X*are snapshots of the state vector

*x*gathered during simulation of the state-space model you are reducing. In incremental POD, the software does not store the matrix

*X*in the memory. Instead, the software updates the

*U*and

*R*factors when a new column of

*X*becomes available, and then discards this column.

In the resulting approximation, *U* and *V* are tall and
orthogonal and *R* is square.

This object is used to approximate the Gramian $$G=X{X}^{T}\approx \left(UR\right){\left(UR\right)}^{T}$$. So, to save memory and increase efficiency, the object does not store the
matrix *V*.

The computed (implicit) factorization satisfies:

$$\Vert X-UR{V}^{T}\Vert =\Vert X-U({U}^{T}X)\Vert \le o(\text{RankTol})\Vert X\Vert $$

## Version History

**Introduced in R2024b**

## See Also

`reducespec`

| `ProperOrthogonalDecomposition`

| `ProperOrthogonalDecompositionOptions`

| `lsim`

| `update`

| `getUR`

| `svd`

| `merge`