Revision 679, 0.7 kB
(checked in by smidl, 15 years ago)
|
Major changes in BM -- OK is only test suite and tests/tutorial -- the rest is broken!!!
|
-
Property svn:eol-style set to
native
|
Line | |
---|
1 | #include "estim/kalman.h" |
---|
2 | using namespace bdm; |
---|
3 | |
---|
4 | // estimation of AR(0) model |
---|
5 | int main() { |
---|
6 | //dimensions |
---|
7 | int dx = 3, dy = 3, du = 1; |
---|
8 | // matrices |
---|
9 | mat A = eye ( dx ); |
---|
10 | mat B = zeros ( dx, du ); |
---|
11 | mat C = eye ( dx ); |
---|
12 | mat D = zeros ( dy, du ); |
---|
13 | mat Q = eye ( dx ); |
---|
14 | mat R = 0.1 * eye ( dy ); |
---|
15 | //prior |
---|
16 | mat P0 = 100 * eye ( dx ); |
---|
17 | vec mu0 = zeros ( dx ); |
---|
18 | // Estimator |
---|
19 | KalmanCh KF; |
---|
20 | KF.set_parameters ( A, B, C, D,/*covariances*/ Q, R ); |
---|
21 | KF.set_statistics ( mu0, P0 ); |
---|
22 | KF.validate(); |
---|
23 | // Estimation loop |
---|
24 | for ( int i = 0; i < 100; i++ ) { |
---|
25 | KF.bayes ( randn ( dy), randn( du ) ); |
---|
26 | } |
---|
27 | //print results |
---|
28 | cout << "Posterior estimate of x is: " << endl; |
---|
29 | cout << "mean: " << KF.posterior().mean() << endl; |
---|
30 | cout << "variance: " << KF.posterior().variance() << endl; |
---|
31 | } |
---|