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