Changeset 477 for library/tests/arx_test.cpp
- Timestamp:
- 08/05/09 14:40:03 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/arx_test.cpp
r386 r477 1 1 /*! 2 \file 2 \file 3 3 \brief Test of basic elements of the ARX class 4 4 … … 17 17 // Setup model 18 18 vec th ( "0.8 -0.3 0.4 0.01" ); 19 int ord =th.length(); //auxiliary variable20 double sqr =0.1;19 int ord = th.length(); //auxiliary variable 20 double sqr = 0.1; 21 21 22 22 //Test constructor 23 mat V0 = 0.00001*eye ( ord+1 ); V0 ( 0.0 ) = 1; // 24 double nu0 = ord+5.0; 23 mat V0 = 0.00001 * eye ( ord + 1 ); 24 V0 ( 0.0 ) = 1; // 25 double nu0 = ord + 5.0; 25 26 26 27 ARX Ar; 27 Ar.set_statistics (1, V0, nu0 );// Estimator28 Ar.set_statistics ( 1, V0, nu0 ); // Estimator 28 29 const epdf& f_thr = Ar.posterior(); // refrence to posterior of the estimator 29 30 … … 31 32 int ndat = 100; // number of data records 32 33 vec Yt ( ndat ); // Store generated data 33 Yt.set_subvector ( 0, randn ( ord ) ); //initial values34 Yt.set_subvector ( 0, randn ( ord ) ); //initial values 34 35 vec rgr ( ord ); // regressor 35 vec Psi ( ord +1 );// extended regressor36 vec Psi ( ord + 1 ); // extended regressor 36 37 37 38 //print moments of the prior distribution 38 cout << "prior mean: " << f_thr.mean() << endl;39 cout << "prior variance: " << f_thr.variance() << endl;39 cout << "prior mean: " << f_thr.mean() << endl; 40 cout << "prior variance: " << f_thr.variance() << endl; 40 41 41 42 // cycle over time: 42 for ( int t =ord; t<ndat; t++ ) {43 for ( int t = ord; t < ndat; t++ ) { 43 44 //Generate regressor 44 for ( int j=0;j< ( ord );j++ ) {rgr ( j ) =Yt ( t-j-1 );} 45 for ( int j = 0; j < ( ord ); j++ ) { 46 rgr ( j ) = Yt ( t - j - 1 ); 47 } 45 48 //model 46 Yt ( t ) = th *rgr + sqr * NorRNG();49 Yt ( t ) = th * rgr + sqr * NorRNG(); 47 50 48 51 Psi = concat ( Yt ( t ), rgr ); // Inefficient! Used for compatibility with Matlab! … … 53 56 // Test similarity of likelihoods from the Bayes rule and the predictor 54 57 cout << "BR log-lik: " << Ar._ll(); 55 cout << " , predictor ll: " << Pr->evallogcond ( vec_1 ( Yt ( t ) ),rgr ) <<endl;58 cout << " , predictor ll: " << Pr->evallogcond ( vec_1 ( Yt ( t ) ), rgr ) << endl; 56 59 delete Pr; 57 60 } 58 61 //print posterior moments 59 cout << "posterior mean: " << f_thr.mean() << endl;60 cout << "posterior variance: " << f_thr.variance() << endl;62 cout << "posterior mean: " << f_thr.mean() << endl; 63 cout << "posterior variance: " << f_thr.variance() << endl; 61 64 62 65 // Test brute-froce structure estimation 63 64 cout << "Structure estimation: " << endl;65 cout << Ar.structure_est ( egiw ( 1,V0,nu0 ) ) <<endl;66 67 cout << "Structure estimation: " << endl; 68 cout << Ar.structure_est ( egiw ( 1, V0, nu0 ) ) << endl; 66 69 }