KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
general.POD Class Reference

POD: Implements proper orthogonal decomposition. More...

Detailed Description

POD: Implements proper orthogonal decomposition.

Mainly relies on the matlab builtin functions svd and svds. This class wraps their functionality to a class integrable with KerMor.

Author
Daniel Wirtz
Date
2010-08-24
See Also
Mode Value
Change in 0.6:
(Daniel Wirtz, 2012-07-13) POD now also works with data.FileMatrix arguments (only modes abs and rel)
Change in 0.4:
(Syed Ammar, 2011-05-06) Implemented Setter for UseSVDS flag
New in 0.3:
(Daniel Wirtz, 2011-04-21) Integrated this class to the property default value changed supervision system Property classes and levels. This class now inherits from KerMorObject and has an extended constructor registering any user-relevant properties using KerMorObject.registerProps.
Todo:
  • Create fixed random number stream for reproducable results!
    • make Value property dependent and check in setter depending on Mode value!

Definition at line 18 of file POD.m.

Public Member Functions

 POD ()
 
function [ matrix< double > podvec ,
rowvec
< double > s ] = 
computePOD (matrix< double > data,matrix< double > Vexclude,colvec< integer > targetdims)
 Computes the POD vectors according to the specified settings. More...
 
- Public Member Functions inherited from KerMorObject
 KerMorObject ()
 Constructs a new KerMor object. More...
 
function  display ()
 disp(object2str(this)); More...
 
function bool = eq (B)
 Checks equality of two KerMor objects. More...
 
function bool = ne (B)
 Checks if two KerMorObjects are different. More...
 
function cn = getClassName ()
 Returns the simple class name of this object without packages. More...
 
- Public Member Functions inherited from DPCMObject
 DPCMObject ()
 Creates a new DPCM object. More...
 
 DPCMObject ()
 

Static Public Member Functions

static function res = test_POD ()
 

Public Attributes

 Mode = "rel"
 The modus used to generate the reduced space. More...
 
 Value = .3
 The value associated with the selected Mode. More...
 
 UseSVDS = false
 Flag whether to use the svds routine rather than svd. Applies only for the Modes abs and rel. For both sign and eps modes all singular values have to be computed anyways and svd is faster if all values are needed. More...
 
- Public Attributes inherited from DPCMObject
 WorkspaceVariableName = ""
 The workspace variable name of this class. Optional. More...
 
 ID = "[]"
 An ID that allows to uniquely identify this DPCMObject (at least within the current MatLab session/context). More...
 
 PropertiesChanged = "[]"
 The Dictionary containing all the property settings as key/value pairs. More...
 
- Public Attributes inherited from handle
 addlistener
 Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More...
 
 notify
 Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More...
 
 delete
 Handle object destructor method that is called when the object's lifecycle ends. More...
 
 disp
 Handle object disp method which is called by the display method. See the MATLAB disp function. More...
 
 display
 Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More...
 
 findobj
 Finds objects matching the specified conditions from the input array of handle objects. More...
 
 findprop
 Returns a meta.property objects associated with the specified property name. More...
 
 fields
 Returns a cell array of string containing the names of public properties. More...
 
 fieldnames
 Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More...
 
 isvalid
 Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More...
 
 eq
 Relational functions example. See details for more information. More...
 
 transpose
 Transposes the elements of the handle object array. More...
 
 permute
 Rearranges the dimensions of the handle object array. See the MATLAB permute function. More...
 
 reshape
 hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More...
 
 sort
 ort the handle objects in any array in ascending or descending order. More...
 

Additional Inherited Members

- Protected Member Functions inherited from KerMorObject
function  checkType (obj, type)
 Object typechecker. More...
 
- Protected Member Functions inherited from DPCMObject
function  registerProps (varargin)
 Call this method at any class that defines DPCM observed properties. More...
 
function  registerProps (varargin)
 
- Static Protected Member Functions inherited from DPCMObject
static function obj = loadobj (obj, from)
 Re-register any registered change listeners! More...
 
static function obj = loadobj (obj, from)
 

Constructor & Destructor Documentation

general.POD.POD ( )

Definition at line 125 of file POD.m.

References KerMorObject.KerMorObject(), and DPCMObject.registerProps().

Here is the call graph for this function:

Member Function Documentation

function [ matrix< double > podvec , rowvec< double > s ] = general.POD.computePOD ( matrix< double data,
matrix< double Vexclude,
colvec< integer targetdims 
)

Computes the POD vectors according to the specified settings.

Depending on the type of data, any given Vinclude will be either projected out of the underlying data (matrix case) or appended to the computed space of target_dim minus Vinclude columns.

See Also
general.POD.Mode general.POD.Value
Parameters
dataThe set of column-vectors to perform the POD on. Can be a real matrix or a data.ABlockedData instance. or general.ABlockSVD
VexcludeA matrix containing orthonormal columns, whose spanned space is to be excluded from the SVD. If targetdims are given, the first dimension must match the targeted dimension's size. Default: []
targetdimsThe dimensions on which to perform the SVD. Selects all by default. Default: :
Return values
podvecThe POD modes computed.
sThe singular values of the POD modes. If svds or FileMatrix is used, these are only as many as POD modes, otherwise this vector contains ALL singular values.
Required fields of data:

Definition at line 132 of file POD.m.

References KerMor.App(), Mode, t, MatUtils.toSparse(), UseSVDS, and Value.

Here is the call graph for this function:

static function res = general.POD.test_POD ( )
static

Definition at line 346 of file POD.m.

Member Data Documentation

general.POD.Mode = "rel"

The modus used to generate the reduced space.

Possible choices are
  • sign: All eigenvectors with singular values larger than value percent of the largest eigenvalue are used. Use 0 for all.
  • eps: All eigenvectors with singular values larger than value are used.
  • rel : Reduction to value percent of the original space dimension.
  • abs : Explicitly specified reduced space dimension. Uses the first value eigenvectors as space.

The fastest modes are rel and abs as for these cases the target dimension can be computed before svd decomposition; for sign and eps all singular values are computed and the dimension is computed using these singular values.

Property class important:
Choices sign and eps can lead to long computation times if the input samples are large as the full decomposition must be computed.

Default: rel

See Also
Value
Note
This property has the MATLAB attribute SetObservable set to true.
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 48 of file POD.m.

Referenced by computePOD().

general.POD.UseSVDS = false

Flag whether to use the svds routine rather than svd. Applies only for the Modes abs and rel. For both sign and eps modes all singular values have to be computed anyways and svd is faster if all values are needed.

IMPORTANT: The results when using svds are NOT REPRODUCABLE as svds uses an randomly initialized Arnoldi algorithm.

Property class critical:
Allows for dramatic reduction of computational costs for the price of less accuracy. See the matlab docs for svds and svd.

Default: false

Note
This property has the MATLAB attribute SetObservable set to true.
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 100 of file POD.m.

Referenced by computePOD().

general.POD.Value = .3

The value associated with the selected Mode.

Property class important:
Determines the size of the reduced space. Has different effects depending on the choice of the general.POD.Mode property.

Default: .3

See Also
Mode
Note
This property has the MATLAB attribute SetObservable set to true.
Matlab documentation of property attributes.
This property has custom functionality when its value is changed.

Definition at line 82 of file POD.m.

Referenced by computePOD().


The documentation for this class was generated from the following file: