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
MathMODSystem.m
Go to the documentation of this file.
1 namespace models{
2 namespace mathmod2012{
3 
4 
5 /* (Autoinserted by mtoc++)
6  * This source code has been filtered by the mtoc++ executable,
7  * which generates code that can be processed by the doxygen documentation tool.
8  *
9  * On the other hand, it can neither be interpreted by MATLAB, nor can it be compiled with a C++ compiler.
10  * Except for the comments, the function bodies of your M-file functions are untouched.
11  * Consequently, the FILTER_SOURCE_FILES doxygen switch (default in our Doxyfile.template) will produce
12  * attached source files that are highly readable by humans.
13  *
14  * Additionally, links in the doxygen generated documentation to the source code of functions and class members refer to
15  * the correct locations in the source code browser.
16  * However, the line numbers most likely do not correspond to the line numbers in the original MATLAB source files.
17  */
18 
29  public: /* ( setObservable ) */
30 
44  public: /* ( setObservable ) */
45 
46 
48 
49  this = this@models.BaseFirstOrderSystem(model);
50 
51  this.registerProps(" svNum ");
52 
53  /* % System settings */
54  dims = model.dim;
55  this.NumStateDofs= dims;
56 
57  this.MaxTimestep= [];
58 
59  this.addParam(" input shift ",1);
60  this.addParam(" expansion param ",5," Range ",[0 10]);
61  this.addParam(" initial value ",.5," Range ",[0 1]);
62  this.DependentParamIndices= 2;
63 
64  /* Sample bases */
65  this.svNum= 20;
66 
67  f = dscomponents.ParamTimeKernelCoreFun(this);
68  fe = f.Expansion;
69  this.f= f;
70 
71  /* Choose the kernel with such that each kernel vanishes (<
72  * kerneleps) after kernelsupport support vectors. */
73  kernelsupport = 2;
74  kerneleps = 0.00001;
75 
76  /* Space kernel */
77  space = linspace(0,50,this.svNum);
78  fe.Centers.xi= repmat(space,dims,1);
79  d = sqrt(dims)*space(2);
80  fe.Kernel= kernels.GaussKernel;
81  fe.Kernel.setGammaForDistance(kernelsupport*d,kerneleps)
82  fe.Kernel.G= 1;
83 
84  /* Time kernel */
85  fe.TimeKernel= kernels.NoKernel;
86  fe.Centers.ti= [];
87 
88  /* Param kernel */
89  pk = kernels.GaussKernel;
90  pspace = linspace(0,10,this.svNum);
91  /* Only the 2nd entry is used, so fill rest with zeros */
92  pk.P= 2;
93  pk.G= 1;
94  pk.setGammaForDistance(sqrt(this.ParamCount)*pspace(2)*20,kerneleps);
95  fe.ParamKernel= pk;
96  fe.Centers.mui= [zeros(1,this.svNum); pspace; zeros(1,this.svNum)];
97 
98  this.updateDimensions;
100  }
101 
102 
103 };
104 }
105 }
106 
107 
108 
The base class for any KerMor detailed model.
Definition: BaseFullModel.m:18
function registerProps(varargin)
Call this method at any class that defines DPCM observed properties.
Definition: DPCMObject.m:125
MathMODSystem(models.BaseFullModel model)
Definition: MathMODSystem.m:47
Numerical experiments class for Paper WH10.
Definition: MathMODSystem.m:19
integer DependentParamIndices
Indices of the parameter vector that are effectively used in the system's core function.
dscomponents.ACoreFun f
The core f function from the dynamical system.
ParamCount
The number of the system's parameters.
double MaxTimestep
The maximum timestep allowed for any ODE solvers.
function ModelParam p = addParam(char name, default, varargin)
Adds a parameter with the given values to the parameter collection of the current dynamical system...
Base class for all KerMor first-order dynamical systems.