root/bdm/estim/libPF.cpp @ 278

Revision 278, 0.8 kB (checked in by smidl, 15 years ago)

props

  • Property svn:eol-style set to native
Line 
1#include "libPF.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                _samples ( i ) = par->samplecond ( _samples ( i ));
16                lls(i )= par->_e()->evallog(_samples(i));
17                lls ( i ) *= obs->evallogcond ( dt,_samples ( i ) );
18
19                if ( lls ( i ) >mlls ) mlls=lls ( i ); //find maximum
20        }
21
22        // compute weights
23        for ( i=0;i<n;i++ ) {
24                _w ( i ) *= exp ( lls ( i ) - mlls ); // multiply w by likelihood
25        }
26
27        //renormalize
28        for ( i=0;i<n;i++ ) {sum+=_w ( i );};
29
30        _w ( i ) /=sum; //?
31
32        ind = est.resample();
33
34}
35
36void PF::set_est ( const epdf &epdf0 ) {
37        int i;
38
39        for ( i=0;i<n;i++ ) {
40                _samples ( i ) = epdf0.sample();
41        }
42}
43
44}
45//MPF::MPF:{}
Note: See TracBrowser for help on using the browser.