13 | | // Klaman filter |
14 | | mat A, B, C, D, R, Q, P0; |
15 | | vec mu0; |
16 | | mat Mu0;// read from matlab |
17 | | // input from Matlab |
18 | | it_file fin ( "kalman_stress.it" ); |
| 13 | // Klaman filter |
| 14 | mat A, B, C, D, R, Q, P0; |
| 15 | vec mu0; |
| 16 | mat Mu0;// read from matlab |
| 17 | // input from Matlab |
| 18 | it_file fin ( "kalman_stress.it" ); |
51 | | RV rx ( "{x }", "2" ); |
52 | | RV ru ( "{u }", "1" ); |
53 | | RV ry ( "{y }", "1" ); |
54 | | RV rQR ( "{Q,R }", "3" ); |
55 | | // |
56 | | KFcondQR KF; |
57 | | // KF with R unknown |
58 | | KF.set_parameters ( A, B, C, D, ldmat ( R ), ldmat ( Q ) ); |
59 | | KF.set_est ( mu0, ldmat ( P0 ) ); |
60 | | // |
61 | | Kalman<ldmat> KFtr; |
62 | | // KF with R unknown |
63 | | KFtr.set_parameters ( A, B, C, D, ldmat ( R ), ldmat ( Q ) ); |
64 | | KFtr.set_est ( mu0, ldmat ( P0 ) ); |
| 51 | RV rx ( "{x }", "2" ); |
| 52 | RV ru ( "{u }", "1" ); |
| 53 | RV ry ( "{y }", "1" ); |
| 54 | RV rQR ( "{Q,R }", "3" ); |
| 55 | // |
| 56 | KFcondQR KF; |
| 57 | // KF with R unknown |
| 58 | KF.set_parameters ( A, B, C, D, ldmat ( R ), ldmat ( Q ) ); |
| 59 | KF.set_est ( mu0, ldmat ( P0 ) ); |
| 60 | // |
| 61 | Kalman<ldmat> KFtr; |
| 62 | // KF with R unknown |
| 63 | KFtr.set_parameters ( A, B, C, D, ldmat ( R ), ldmat ( Q ) ); |
| 64 | KFtr.set_est ( mu0, ldmat ( P0 ) ); |
69 | | MPF<KFcondQR> KF_QR; |
70 | | KF_QR.set_parameters ( &evolQR, &evolQR, 100 ); |
71 | | evolQR.condition ( "1 1 1" ); |
72 | | egamma kfinit = egamma ( "10 10 10", "1 1 1" ); |
73 | | KF_QR.set_statistics ( egamma ( "10 10 10", "1 1 1" ), &KF ); |
74 | | const epdf& mpost = KF_QR.posterior(); |
75 | | const epdf& mposttr = KFtr.posterior(); |
| 69 | MPF<KFcondQR> KF_QR; |
| 70 | KF_QR.set_parameters ( &evolQR, &evolQR, 100 ); |
| 71 | evolQR.condition ( "1 1 1" ); |
| 72 | egamma kfinit = egamma ( "10 10 10", "1 1 1" ); |
| 73 | KF_QR.set_statistics ( egamma ( "10 10 10", "1 1 1" ), &KF ); |
| 74 | const epdf& mpost = KF_QR.posterior(); |
| 75 | const epdf& mposttr = KFtr.posterior(); |
77 | | XQRt.set_col ( 0, mpost.mean() ); |
78 | | Xt.set_col ( 0, mposttr.mean() ); |
79 | | for ( int t = 1; t < Ndat; t++ ) { |
80 | | KF_QR.bayes ( Dt.get_col ( t ) ); |
81 | | KFtr.bayes ( Dt.get_col ( t ) ); |
| 77 | XQRt.set_col ( 0, mpost.mean() ); |
| 78 | Xt.set_col ( 0, mposttr.mean() ); |
| 79 | for ( int t = 1; t < Ndat; t++ ) { |
| 80 | KF_QR.bayes ( Dt.get_col ( t ) ); |
| 81 | KFtr.bayes ( Dt.get_col ( t ) ); |