Revision 887, 0.8 kB
(checked in by smidl, 15 years ago)
|
new base for particle filtering
|
Rev | Line | |
---|
[721] | 1 | #include "../mat_checks.h" |
---|
[717] | 2 | #include "estim/particles.h" |
---|
| 3 | #include "math/square_mat.h" |
---|
| 4 | #include "stat/exp_family.h" |
---|
| 5 | |
---|
| 6 | using namespace bdm; |
---|
| 7 | |
---|
| 8 | //These lines are needed for use of cout and endl |
---|
| 9 | using std::cout; |
---|
| 10 | using std::endl; |
---|
| 11 | |
---|
[721] | 12 | TEST ( resample_stress ) { |
---|
[717] | 13 | |
---|
| 14 | RV x ( "1" ); |
---|
| 15 | RV xm = x; |
---|
| 16 | xm.t_plus ( -1 ); |
---|
| 17 | const |
---|
| 18 | RV y ( "2" ); |
---|
| 19 | |
---|
| 20 | mat A = "1"; |
---|
| 21 | vec vR = "1"; |
---|
| 22 | ldmat R ( vR ); |
---|
| 23 | |
---|
| 24 | eEmp emp; |
---|
| 25 | euni eun; |
---|
| 26 | eun.set_parameters ( "0", "1" ); |
---|
| 27 | emp.set_statistics ( ones ( 10 ), eun ); |
---|
| 28 | vec &v = emp._w(); |
---|
| 29 | Array<vec> &S = emp._samples(); |
---|
| 30 | |
---|
| 31 | for ( int i = 0; i < 10; i++ ) { |
---|
| 32 | v ( i ) = exp ( -0.5 * sum ( pow ( S ( i ) - 1, 2.0 ) ) * 10 ); |
---|
| 33 | } |
---|
| 34 | v /= sum ( v ); |
---|
| 35 | |
---|
| 36 | cout << "p:" << S << endl; |
---|
| 37 | cout << "w:" << v << endl; |
---|
| 38 | |
---|
| 39 | ivec ind; |
---|
[887] | 40 | resample ( v,ind ); |
---|
[717] | 41 | |
---|
| 42 | cout << ind << endl; |
---|
| 43 | } |
---|