37#ifndef pagani2016filter_H
38#define pagani2016filter_H
42#include "ensembleClass.H"
58 int parameterSize = 0;
59 int observationSize = 0;
67 bool initialStateFlag = 0;
68 bool parameterPriorFlag = 0;
69 bool modelErrorFlag = 0;
70 bool measurementNoiseFlag = 0;
73 Eigen::VectorXd initialStateMean;
76 Eigen::MatrixXd initialStateCov;
79 Eigen::VectorXd parameterPriorMean;
82 Eigen::MatrixXd parameterPriorCov;
85 Eigen::MatrixXd parameterMean;
88 Eigen::MatrixXd stateMean;
91 Eigen::VectorXd timeVector;
100 Eigen::VectorXi observationBoolVec;
103 Eigen::MatrixXd trueObservations;
106 std::shared_ptr<muq::Modeling::Gaussian> initialStateDensity;
109 std::shared_ptr<muq::Modeling::Gaussian> parameterPriorDensity;
112 Eigen::MatrixXd parameterObservation_crossCov;
115 Eigen::MatrixXd stateObservation_crossCov;
118 Eigen::MatrixXd observation_Cov;
128 Pagani2016filter(
int _Nseeds);
130 virtual ~Pagani2016filter() =
default;
178 double getTime(
int _timeStepI);
219 void setTime(
double _startTime,
double _deltaTime,
double _endTime);
263 virtual void observeState() = 0;
267 void setObservationSize(
int _size);
271 void setStateSize(
int _size);
279 void setParameterSize(
int _size);
283 int getParameterSize();
291 void run(word outputFolder);
Header file of the ITHACAutilities namespace.
Eigen::MatrixXd getParameterMean()
Return parameter mean.
void setTime(double _startTime, double _deltaTime, double _endTime)
Setup the time vector.
int getTimeStep()
Return timestep.
void update()
Perform Kalman filter update.
void setParameterPriorDensity(Eigen::VectorXd _mean, Eigen::MatrixXd _cov)
Create parameter ensemble.
void setMeasNoise(double cov)
Setup of the measurement noise distribution.
int getObservationTimestep(int _timeSampleI)
Return timestep at corresponding to the input observation step.
Eigen::VectorXd getTimeVector()
Return time vector.
void sampleInitialState()
Create initial state ensemble.
void setObservationTime(int _observationStart, int _observationDelta)
Setup the observation vector.
ensemble observationEns
Observation ensemble.
Eigen::MatrixXd parameter_minConf
parameter minimum confidence level
std::shared_ptr< muq::Modeling::Gaussian > measNoiseDensity
Measurement noise density.
int getObservationCounter()
Return.
void computeStateMean(int _index)
Compute state mean.
std::shared_ptr< muq::Modeling::Gaussian > parameterErrorDensity
Parameter error density.
void setParameterError(double cov)
Setup of the parameter error distribution.
Eigen::MatrixXd state_maxConf
State maximum confidence level.
Eigen::MatrixXd ensembleFromDensity(std::shared_ptr< muq::Modeling::Gaussian > _density)
General class to sample from an input density.
int getObservationSize()
Return the size of the observation vector.
Eigen::MatrixXd state_minConf
State minimum confidence level.
ensemble parameterEns
Parameter ensemble.
double getTime()
Return time.
void computeParameterMean(int _index)
Compute parameter mean.
int getNumberOfSamples()
Return number of samples per ensamble.
virtual void stateProjection()=0
Project the state in between two sampling steps and fills the state and parameter mean and confidence...
Eigen::MatrixXd getStateMean()
Return state mean.
void setTrueObservations(Eigen::MatrixXd _observations)
Set the observations matrix.
ensemble oldStateEns
Old state ensemble.
void run(word outputFolder)
Run the filtering.
void setInitialStateDensity(Eigen::VectorXd _mean, Eigen::MatrixXd _cov)
Create initial state ensemble.
void sampleInitialParameter()
Create initial parameter ensemble.
Eigen::MatrixXd parameter_maxConf
parameter maximum confidence level
ensemble stateEns
State ensemble.
Class for ensembles, each column is a sample.
Header file of the muq2ithaca namespace.