1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.math4.legacy.filter;
18
19 import org.apache.commons.math4.legacy.exception.DimensionMismatchException;
20 import org.apache.commons.math4.legacy.exception.NoDataException;
21 import org.apache.commons.math4.legacy.exception.NullArgumentException;
22 import org.apache.commons.math4.legacy.linear.Array2DRowRealMatrix;
23 import org.apache.commons.math4.legacy.linear.ArrayRealVector;
24 import org.apache.commons.math4.legacy.linear.RealMatrix;
25 import org.apache.commons.math4.legacy.linear.RealVector;
26
27
28
29
30
31
32 public class DefaultProcessModel implements ProcessModel {
33
34
35
36 private final RealMatrix stateTransitionMatrix;
37
38
39
40
41 private final RealMatrix controlMatrix;
42
43
44 private final RealMatrix processNoiseCovMatrix;
45
46
47 private final RealVector initialStateEstimateVector;
48
49
50 private final RealMatrix initialErrorCovMatrix;
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 public DefaultProcessModel(final double[][] stateTransition,
73 final double[][] control,
74 final double[][] processNoise,
75 final double[] initialStateEstimate,
76 final double[][] initialErrorCovariance)
77 throws NullArgumentException, NoDataException, DimensionMismatchException {
78
79 this(new Array2DRowRealMatrix(stateTransition),
80 new Array2DRowRealMatrix(control),
81 new Array2DRowRealMatrix(processNoise),
82 new ArrayRealVector(initialStateEstimate),
83 new Array2DRowRealMatrix(initialErrorCovariance));
84 }
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 public DefaultProcessModel(final double[][] stateTransition,
106 final double[][] control,
107 final double[][] processNoise)
108 throws NullArgumentException, NoDataException, DimensionMismatchException {
109
110 this(new Array2DRowRealMatrix(stateTransition),
111 new Array2DRowRealMatrix(control),
112 new Array2DRowRealMatrix(processNoise), null, null);
113 }
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 public DefaultProcessModel(final RealMatrix stateTransition,
130 final RealMatrix control,
131 final RealMatrix processNoise,
132 final RealVector initialStateEstimate,
133 final RealMatrix initialErrorCovariance) {
134 this.stateTransitionMatrix = stateTransition;
135 this.controlMatrix = control;
136 this.processNoiseCovMatrix = processNoise;
137 this.initialStateEstimateVector = initialStateEstimate;
138 this.initialErrorCovMatrix = initialErrorCovariance;
139 }
140
141
142 @Override
143 public RealMatrix getStateTransitionMatrix() {
144 return stateTransitionMatrix;
145 }
146
147
148 @Override
149 public RealMatrix getControlMatrix() {
150 return controlMatrix;
151 }
152
153
154 @Override
155 public RealMatrix getProcessNoise() {
156 return processNoiseCovMatrix;
157 }
158
159
160 @Override
161 public RealVector getInitialStateEstimate() {
162 return initialStateEstimateVector;
163 }
164
165
166 @Override
167 public RealMatrix getInitialErrorCovariance() {
168 return initialErrorCovMatrix;
169 }
170 }