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; |
| 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; |