KerMor
0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
|
IterationCompLemmaEstimator: A-posteriori error estimator for kernel-based systems using local lipschitz constants. More...
IterationCompLemmaEstimator: A-posteriori error estimator for kernel-based systems using local lipschitz constants.
Implementation as in [WH10], but with updated ExtraODEDims and numerical computation.
This class is part of the framework
Homepage
http://www.morepas.org/software/index.htmlDocumentation
http://www.morepas.org/software/kermor/index.htmlLicense
KerMor license conditions Definition at line 18 of file IterationCompLemmaEstimator.m.
Public Member Functions | |
function copy = | clone () |
Creates a deep copy of this estimator instance. More... | |
function | offlineComputations (models.BaseFullModel fm) |
Overrides the method from BaseEstimator and performs additional computations. More... | |
function
prepared = | prepareForReducedModel (models.ReducedModel rm) |
Prepares this estimator for use with a given reduced model. Basically uses the projection matrices and some other reduced quantities for local storage. More... | |
function b = | getBeta (colvec xfull, t) |
Compute the local lipschitz constant estimations. More... | |
function | clear () |
function ct = | prepareConstants (colvec< double > mu,integer inputidx) |
Return values: ct: The time needed for preprocessing. More... | |
function ct = | postProcess (colvec< double > x,double t,integer inputidx) |
Return values: ct: The time needed for postprocessing. More... | |
Public Member Functions inherited from error.BaseCompLemmaEstimator | |
BaseCompLemmaEstimator () | |
function | offlineComputations (models.BaseFullModel model) |
Overrides the method from BaseEstimator and performs additional computations. More... | |
function
prepared = | prepareForReducedModel (models.ReducedModel rm) |
Prepares this estimator for use with a given reduced model. Basically uses the projection matrices and some other reduced quantities for local storage. More... | |
function e = | evalODEPart (colvec x,double t,double ut) |
Evaluates the auxiliary ode part for the comparison-lemma based error estimators. More... | |
function ct = | prepareConstants (colvec< double > mu,integer inputidx) |
function copy = | clone (copy) |
The interface method with returns a copy of the current class instance. More... | |
function | clear () |
function a = | getAlpha (colvec< double > x,double t,colvec< double > ut) |
Convenience access method for semi-implicit euler method. More... | |
function ct = | postProcess (colvec< double > x,double t,integer inputidx) |
Return values: ct: The time needed for postprocessing. More... | |
virtual function b = | getBeta (colvec x,double t) |
Computes the \(\beta(t)\) term from the error estimation ODE for given time and place. More... | |
Public Member Functions inherited from error.BaseEstimator | |
function | offlineComputations (models.BaseFullModel model) |
Performs a validity check for the given model and sets up the estimator for use with the specified model. More... | |
function double ct = | postProcess (unused1,rowvec t, unused2) |
Post-processes the error estimator ODE part after reduced simulation computation. More... | |
function | clear () |
Clears the last error set by the estimator. More... | |
function copy = | clone (copy) |
Creates a copy of this error estimator. Call only allowed from subclasses. More... | |
function e0 = | getE0 (colvec< double > mu) |
Calls the inner initial error computation strategy. More... | |
function ct = | prepareConstants (colvec< double > mu, unused1) |
function
prepared = | prepareForReducedModel (models.ReducedModel rmodel) |
Default implementation which simply clones this (subclass!)instance and returns the copy to use in reduced models. 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 errmsg = | validModelForEstimator (models.BaseFullModel model) |
Validations. More... | |
static function res = | test_IterationCompLemmaEstimator () |
Static Public Member Functions inherited from error.BaseCompLemmaEstimator | |
static function errmsg = | validModelForEstimator (models.BaseFullModel model) |
Validations. More... | |
Static Public Member Functions inherited from error.BaseEstimator | |
static function est = | getEstimator (models.BaseFullModel model) |
Factory method that creates a suitable error estimator for the given model. More... | |
static function errmsg = | validModelForEstimator (models.ReducedModel rmodel) |
Abstract static method that forces subclasses to specify whether an estimator can be used for a given model or not. More... | |
Public Attributes | |
error.lipfun.Base | LocalLipschitzFcn |
The internal kernel Lipschitz function to use. More... | |
Iterations | |
Determines how many postprocessing iterations for the estimator are performed. More... | |
logical | UseTimeDiscreteC = true |
For the local Lipschitz constant estimation the parameter C can be chosen to equal the error from the last time step. This has to be investigated more thoroughly as integration errors from the solver may lead to a loss of rigorousity. More... | |
d_iValues | |
The \(d_i(t)\) values for each integration time-step \(t\). More... | |
Public Attributes inherited from error.BaseCompLemmaEstimator | |
EstimationData = "[]" | |
\(3\times n\) matrix containing the \(t,\alpha(t),\beta(t)\) values at each time step. More... | |
aComp | |
Public Attributes inherited from error.BaseEstimator | |
Enabled | |
Flag that indicates whether error estimation is used or not. More... | |
StateError = "[]" | |
The reduction state-space error from the last simulation. More... | |
ExtraODEDims = 0 | |
The dimensions added to the ODE function by the estimator. More... | |
OutputError = "[]" | |
The output error from the last simulation. More... | |
models.ReducedModel | ReducedModel = "[]" |
The reduced model associated with the error estimator. More... | |
mu | |
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) |
Protected Attributes inherited from error.BaseCompLemmaEstimator | |
StepNr | |
The current step. More... | |
function error.IterationCompLemmaEstimator.clear | ( | ) |
Definition at line 332 of file IterationCompLemmaEstimator.m.
References d_iValues.
Referenced by prepareForReducedModel().
function copy = error.IterationCompLemmaEstimator.clone | ( | ) |
Creates a deep copy of this estimator instance.
Definition at line 179 of file IterationCompLemmaEstimator.m.
References handle.addlistener, ICloneable.clone(), d_iValues, Iterations, LocalLipschitzFcn, and UseTimeDiscreteC.
function b = error.IterationCompLemmaEstimator.getBeta | ( | colvec | xfull, |
t | |||
) |
Compute the local lipschitz constant estimations.
xfull | The current state variable vector |
t | The current time \(t\) |
mu | The current parameter \(\mu\) |
Definition at line 287 of file IterationCompLemmaEstimator.m.
References d_iValues, error.lipfun.Base.evaluate(), models.BaseFirstOrderSystem.f, Iterations, LocalLipschitzFcn, error.BaseEstimator.mu, error.BaseEstimator.ReducedModel, error.BaseCompLemmaEstimator.StepNr, models.BaseModel.System, t, UseTimeDiscreteC, and models.ReducedModel.V.
function error.IterationCompLemmaEstimator.offlineComputations | ( | models.BaseFullModel | fm | ) |
Overrides the method from BaseEstimator and performs additional computations.
fm | The full model. |
Definition at line 210 of file IterationCompLemmaEstimator.m.
References models.BaseFullModel.Approx, models.BaseFirstOrderSystem.f, Utils.getBoundingBox(), LocalLipschitzFcn, models.BaseModel.System, and X.
function ct = error.IterationCompLemmaEstimator.postProcess | ( | colvec< double > | x, |
double | t, | ||
integer | inputidx | ||
) |
Return values: ct: The time needed for postprocessing.
x | The state variable vector \(\vx(t)\) |
t | The current time(s) \(t \in [0, T]\) |
inputidx | The index \(i\) of the currently used input function \(u_i(t)\). Set to \([]\) if not used. |
Definition at line 372 of file IterationCompLemmaEstimator.m.
References error.BaseEstimator.getE0(), Iterations, error.BaseEstimator.mu, models.BaseModel.ODESolver, error.BaseEstimator.ReducedModel, and error.BaseEstimator.StateError.
function ct = error.IterationCompLemmaEstimator.prepareConstants | ( | colvec< double > | mu, |
integer | inputidx | ||
) |
Return values: ct: The time needed for preprocessing.
mu | The currently used parameter \(\vmu\). Set to \([]\) if not used. |
inputidx | The index \(i\) of the currently used input function \(u_i(t)\). Set to \([]\) if not used. |
Definition at line 338 of file IterationCompLemmaEstimator.m.
References handle.addlistener, Iterations, LocalLipschitzFcn, models.BaseModel.ODESolver, error.BaseEstimator.ReducedModel, and UseTimeDiscreteC.
function prepared = error.IterationCompLemmaEstimator.prepareForReducedModel | ( | models.ReducedModel | rm | ) |
Prepares this estimator for use with a given reduced model. Basically uses the projection matrices and some other reduced quantities for local storage.
rm | The reduced model |
prepared | A clone of this estimator, with accordingly projected components |
Definition at line 248 of file IterationCompLemmaEstimator.m.
References handle.addlistener, models.BaseFullModel.Approx, clear(), models.BaseFirstOrderSystem.f, models.ReducedModel.FullModel, models.BaseModel.G, models.BaseModel.ODESolver, dscomponents.ACoreFun.project(), models.BaseModel.System, t, models.ReducedModel.V, and models.ReducedModel.W.
|
static |
Definition at line 547 of file IterationCompLemmaEstimator.m.
|
static |
Validations.
model | A KerMor full model |
Definition at line 526 of file IterationCompLemmaEstimator.m.
References models.BaseFullModel.Approx, models.BaseFirstOrderSystem.f, and models.BaseModel.System.
error.IterationCompLemmaEstimator.d_iValues |
The \(d_i(t)\) values for each integration time-step \(t\).
Transient
set to true. SetAccess = Private, GetAccess = Public
Definition at line 127 of file IterationCompLemmaEstimator.m.
error.IterationCompLemmaEstimator.Iterations |
Determines how many postprocessing iterations for the estimator are performed.
Has computationally no effect if UseTimeDiscreteC is switched on.
Default: 0
Definition at line 97 of file IterationCompLemmaEstimator.m.
Referenced by clone(), getBeta(), postProcess(), and prepareConstants().
error.IterationCompLemmaEstimator.LocalLipschitzFcn |
The internal kernel Lipschitz function to use.
Depending on the underlying kernel, a specific lipschitz constant estimation can be used. Each kernel has the method "getLipschitzFcn" which is by default implemented in BaseKernel. The resulting function handle is used by default; however, to enhance customizability, one can manually define a lipschitz estimation function here. (For an example: see the BellFunction kernel interface for different possibilities)
Definition at line 70 of file IterationCompLemmaEstimator.m.
Referenced by clone(), getBeta(), offlineComputations(), and prepareConstants().
error.IterationCompLemmaEstimator.UseTimeDiscreteC = true |
For the local Lipschitz constant estimation the parameter C can be chosen to equal the error from the last time step. This has to be investigated more thoroughly as integration errors from the solver may lead to a loss of rigorousity.
Default: true
Defaults to true. (As is best estimator atm)
Definition at line 110 of file IterationCompLemmaEstimator.m.
Referenced by clone(), getBeta(), and prepareConstants().