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
ParamTimeKernelCoreFun.m
Go to the documentation of this file.
1 namespace dscomponents{
2 
3 
4 /* (Autoinserted by mtoc++)
5  * This source code has been filtered by the mtoc++ executable,
6  * which generates code that can be processed by the doxygen documentation tool.
7  *
8  * On the other hand, it can neither be interpreted by MATLAB, nor can it be compiled with a C++ compiler.
9  * Except for the comments, the function bodies of your M-file functions are untouched.
10  * Consequently, the FILTER_SOURCE_FILES doxygen switch (default in our Doxyfile.template) will produce
11  * attached source files that are highly readable by humans.
12  *
13  * Additionally, links in the doxygen generated documentation to the source code of functions and class members refer to
14  * the correct locations in the source code browser.
15  * However, the line numbers most likely do not correspond to the line numbers in the original MATLAB source files.
16  */
17 
19  :public dscomponents.ACoreFun,
48  public: /* ( setObservable ) */
49 
64  private: /* ( Transient ) */
65 
66  cl;
76  mal;
87  public: /* ( Transient ) */
88 
90  this = this@dscomponents.ACoreFun(sys);
91 
92  this.CustomProjection= true;
93  this.TimeDependent= false;
94  this.addlistener(" Expansion "," PostSet ",@this.ExpansionPostSet);
95  /* addDimListeners is triggered in Expansion post set! */
96  this.Expansion= kernels.ParamTimeKernelExpansion;
97  }
98 
99 
100  function projected = project(V,W) {
101  projected = this.clone;
102  projected = project@dscomponents.ACoreFun(this, V, W, projected);
103  projected.Expansion= this.Expansion.project(V,W);
104  }
115  function matrix<double>fx = evaluate(colvec<double> x,double t) {
116  if nargin < 3
117  t = 0;
118  end
119  fx = this.Expansion.evaluate(x, t, this.mu);
120  }
139  function matrix<double>fx = evaluateMulti(matrix<double> x,varargin) {
140  fx = this.Expansion.evaluate(x, varargin[:]);
141  }
160  function L = getGlobalLipschitz(double t,colvec<double> mu) {
161  L = this.Expansion.getGlobalLipschitz(t, mu);
162  }
163 
164 
165  function copy = clone(copy) {
166  if nargin < 2
167  copy = dscomponents.ParamTimeKernelCoreFun(this.System);
168  end
169  copy.Expansion= this.Expansion.clone;
170  copy = clone@dscomponents.ACoreFun(this, copy);
171  }
172 
173 
174  function matrix<double>J = getStateJacobian(colvec<double> x,double t) {
175  J = this.Expansion.getStateJacobian(x, t, this.mu);
176  }
191  function matrix<double>y = evaluateCoreFun() {
192  error(" This should never be called. 'evaluate' is implemented directly. ");
193  /* Noting to do here, evaluate is implemented directly. This method will never be called. */
194  }
195 
196 
197  private: /* ( Transient ) */
198 
199  function ExpansionPostSet(unused1,unused2) {
200  this.fDim= 0;
201  this.xDim= 0;
202  if ~isempty(this.Expansion)
203  this.TimeDependent= ...
204  isa(this.Expansion, " kernels.ParamTimeKernelExpansion ") ...
205  && ~isa(this.Expansion.TimeKernel," kernels.NoKernel ");
206  this.fDim= size(this.Expansion.Ma,1);
207  this.xDim= size(this.Expansion.Centers.xi,1);
208  end
209  this.addDimListeners;
210  }
211 
212 
213  function addDimListeners() {
214  delete(this.cl);
215  delete(this.mal);
216  if ~isempty(this.Expansion)
217  this.cl= this.Expansion.addlistener(" Centers "," PostSet ",@this.CentersPostSet);
218  this.mal= this.Expansion.addlistener(" Ma "," PostSet ",@this.MaPostSet);
219  end
220  }
221 
222 
223  function CentersPostSet(unused1,unused2) {
224  this.xDim= size(this.Expansion.Centers.xi,1);
225  }
226 
227 
228  function MaPostSet(unused1,unused2) {
229  this.fDim= size(this.Expansion.Ma,1);
230  }
231 
232 
233  protected: /* ( Static ) */ /* ( Transient ) */
234 
235  static function this = loadobj() {
236  this = loadobj@DPCMObject(this);
237  /* Register listener for TimeDependent changed */
238  this.addlistener(" Expansion "," PostSet ",@this.ExpansionPostSet);
239  this.addDimListeners;
240  }
241 
242 
243 
244 };
245 }
246 
function L = getGlobalLipschitz(double t,colvec< double > mu)
For some error estimators, a global Lipschitz constant estimation is performed. This function has to ...
ParamTimeKernelCoreFun: Dynamical system core function which evaluates a contained kernel expansion...
integer fDim
The current output dimension of the function.
Definition: ACoreFun.m:171
function matrix< double > fx = evaluateMulti(matrix< double > x, varargin)
Evaluates this CoreFun for multiple values.
function c = getGlobalLipschitz(double t,colvec< double > mu)
For some error estimators, a global Lipschitz constant estimation is performed. This function has to ...
CustomProjection
Set this property if the projection process is customized by overriding the default project method...
Definition: ACoreFun.m:108
function matrix< double > J = getStateJacobian(colvec< double > x,double t)
Implement explicitly as both ACoreFun and KernelExpansion provide getStateJacobian methods...
logical TimeDependent
Flag that indicates if the ACoreFun is (truly) time-dependent.
Definition: ACoreFun.m:84
function projected = project(V, W)
Call superclass method.
DPCMObject()
Creates a new DPCM object.
Definition: DPCMObject.m:101
function target = project(V, W)
function fx = evaluate(matrix x, varargin)
Evaluates the kernel expansion.
Basic interface for all dynamical system's core functions Inherits the AProjectable interface...
Definition: ACoreFun.m:18
A variable number of input arguments.
integer xDim
The current state space dimension of the function's argument .
Definition: ACoreFun.m:151
models.BaseFirstOrderSystem System
The system associated with the current ACoreFun.
Definition: ACoreFun.m:193
function matrix< double > y = evaluateCoreFun()
function J = getStateJacobian(x, varargin)
Evaluates the jacobian matrix of this function at the given point.
V
The matrix of the biorthogonal pair .
Definition: AProjectable.m:61
colvec< double > mu
The current model parameter mu for evaluations. Will not be persisted as only valid for runtime durin...
Definition: ACoreFun.m:208
kernels.KernelExpansion Expansion
The inner kernel expansion which is evaluated as core function.
function copy = clone(copy)
The interface method with returns a copy of the current class instance.
IGLOBALLIPSCHITZ Interface for all functions that have a global lipschitz constant for the state/spat...
function copy = clone(copy)
The interface method with returns a copy of the current class instance.
addlistener
Creates a listener for the specified event and assigns a callback function to execute when the event ...
W
The matrix of the biorthogonal pair .
Definition: AProjectable.m:72
function matrix< double > fx = evaluate(colvec< double > x,double t)
Evaluates this CoreFun.
KernelExpansion: Base class for state-space kernel expansions.