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

Revision 477, 0.9 kB (checked in by mido, 15 years ago)

panove, vite, jak jsem peclivej na upravu kodu.. snad se vam bude libit:) konfigurace je v souboru /system/astylerc

  • 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;
[283]15                _samples ( i ) = par->samplecond ( _samples ( i ) );
[461]16                lls ( i ) = par->e()->evallog ( _samples ( i ) );
[477]17                lls ( i ) *= obs->evallogcond ( dt, _samples ( i ) );
[32]18
[477]19                if ( lls ( i ) > mlls ) mlls = lls ( i ); //find maximum
[11]20        }
21
[32]22        // compute weights
[477]23        for ( i = 0; i < n; i++ ) {
[32]24                _w ( i ) *= exp ( lls ( i ) - mlls ); // multiply w by likelihood
[11]25        }
26
[32]27        //renormalize
[477]28        for ( i = 0; i < n; i++ ) {
29                sum += _w ( i );
30        };
[11]31
[477]32        _w ( i ) /= sum; //?
[11]33
[477]34        ind = est.resample ( resmethod );
[8]35
36}
37
[283]38// void PF::set_est ( const epdf &epdf0 ) {
39//      int i;
[477]40//
[283]41//      for ( i=0;i<n;i++ ) {
42//              _samples ( i ) = epdf0.sample();
43//      }
44// }
[8]45
[32]46
[254]47}
[32]48//MPF::MPF:{}
Note: See TracBrowser for help on using the browser.