root/library/bdm/estim/particles.cpp @ 487

Revision 487, 0.9 kB (checked in by smidl, 15 years ago)

1st step of mpdf redesign - BROKEN compile

  • Property svn:eol-style set to native
Line 
1#include "particles.h"
2
3namespace bdm {
4
5using std::endl;
6
7void PF::bayes ( const vec &dt ) {
8        int i;
9        vec lls ( n );
10        ivec ind;
11        double mlls = -std::numeric_limits<double>::infinity(), sum = 0.0;
12
13        for ( i = 0; i < n; i++ ) {
14                //generate new samples from paramater evolution model;
15                vec old_smp=_samples ( i );
16                _samples ( i ) = par->samplecond ( old_smp );
17                lls ( i ) = par->evallogcond ( _samples ( i ), old_smp );
18                lls ( i ) *= obs->evallogcond ( dt, _samples ( i ) );
19
20                if ( lls ( i ) > mlls ) mlls = lls ( i ); //find maximum
21        }
22
23        // compute weights
24        for ( i = 0; i < n; i++ ) {
25                _w ( i ) *= exp ( lls ( i ) - mlls ); // multiply w by likelihood
26        }
27
28        //renormalize
29        for ( i = 0; i < n; i++ ) {
30                sum += _w ( i );
31        };
32
33        _w ( i ) /= sum; //?
34
35        ind = est.resample ( resmethod );
36
37}
38
39// void PF::set_est ( const epdf &epdf0 ) {
40//      int i;
41//
42//      for ( i=0;i<n;i++ ) {
43//              _samples ( i ) = epdf0.sample();
44//      }
45// }
46
47
48}
49//MPF::MPF:{}
Note: See TracBrowser for help on using the browser.