|
Revision 679, 0.7 kB
(checked in by smidl, 16 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 | } |
|---|