Changeset 1158 for library/tests

Show
Ignore:
Timestamp:
08/17/10 22:06:50 (14 years ago)
Author:
smidl
Message:

Kalman with UD (bierman, thorton) and tests

Location:
library/tests/stresssuite
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • library/tests/stresssuite/kalman_stress.cpp

    r1064 r1158  
    5151    RV ry ( "{y }", vec_1 ( C.rows() ) ); 
    5252 
    53 //      // LDMAT 
    54 //      Kalman<ldmat> KF(rx,ry,ru); 
    55 //      KF.set_parameters(A,B,C,D,ldmat(R),ldmat(Q)); 
    56 //      KF.set_est(mu0,ldmat(P0) ); 
    57 //      epdf& KFep = KF.posterior(); 
    58 //      mat Xt(2,Ndat); 
    59 //      Xt.set_col( 0,KFep.mean() ); 
     53        // LDMAT 
     54        EKF_UD KFu; 
     55        KFu.set_rv(rx); 
     56        KFu.set_yrv(ry); 
     57        KFu.set_rvc(ru); 
     58        shared_ptr<bilinfn> f=new bilinfn; f->set_parameters(A,B); 
     59        shared_ptr<bilinfn> h=new bilinfn; h->set_parameters(C,D); 
     60        KFu.set_parameters(f,h,Q,diag(R)); 
     61        KFu.prior()._mu()=mu0; 
     62        KFu.prior()._R()=ldmat(P0); 
     63        const epdf& KFuep = KFu.posterior(); 
     64        mat Xtu(dimx,Ndat); 
     65        Xtu.set_col( 0,KFuep.mean() ); 
    6066 
    6167    //Chol 
     
    99105    for ( int t = 1; t < Ndat; t++ ) { 
    100106        dt = Dt.get_col ( t ); 
    101         KF.bayes ( dt.get ( 0, C.rows() - 1 ), dt.get ( C.rows(), dt.length() - 1 ) ); 
    102         Xt.set_col ( t, KFep.mean() ); 
     107        KFu.bayes ( dt.get ( 0, C.rows() - 1 ), dt.get ( C.rows(), dt.length() - 1 ) ); 
     108        Xtu.set_col ( t, KFuep.mean() ); 
    103109    } 
    104110    exec_times ( 0 ) = tt.toc(); 
     
    122128 
    123129    it_file fou ( "kalman_stress_res.it" ); 
    124     fou << Name ( "xth" ) << Xt; 
     130    fou << Name ( "xthu" ) << Xtu; 
    125131    fou << Name ( "xth2" ) << Xt2; 
    126132    fou << Name ( "xthE" ) << XtE; 
  • library/tests/stresssuite/kalman_stress.m

    r721 r1158  
    6060        Mu(1:2,t)=mu; 
    6161 
    62         [Oxt,OPt,ll(t)] = Kalman(Oxt,y(:,t),A,C,Q,R,OPt); 
     62%       [Oxt,OPt,ll(t)] = Kalman(Oxt,y(:,t),A,C,Q,R,OPt); 
    6363%       [oxt,oPt,oll(t)] = KalmanSq(oxt,y(:,t),A,C,sQ,sR,oPt); 
    64         MuK(1:2,t) = Oxt; 
     64%       MuK(1:2,t) = Oxt; 
    6565%       MuS(1:2,t) = oxt; 
    6666end 
     
    6868%keyboard 
    6969 
    70 !cd ../;./tests/testKF 
    71 itload('testKF_res.it'); 
     70!./stresssuite kalman_stress 
     71itload('kalman_stress_res.it'); 
    7272 
    7373hold off 
     
    7777plot(xth2','+'); 
    7878plot(xthE','o'); 
    79 plot([zeros(size(xth,1),1) MuK]','d'); % shift the predictions 
     79%plot([zeros(size(xth,1),1) MuK]','d'); % shift the predictions 
    8080 
    8181exec_times