37#ifndef fang2017filter_H
38#define fang2017filter_H
42#include "ensembleClass.H"
56 int parameterSize = 0;
57 int observationSize = 0;
65 bool initialStateFlag = 0;
66 bool parameterPriorFlag = 0;
67 bool modelErrorFlag = 0;
68 bool measurementNoiseFlag = 0;
71 Eigen::VectorXd initialStateMean;
74 Eigen::MatrixXd initialStateCov;
77 Eigen::VectorXd parameterPriorMean;
80 Eigen::MatrixXd parameterPriorCov;
83 Eigen::MatrixXd parameterMean;
86 Eigen::MatrixXd stateMean;
89 Eigen::VectorXd timeVector;
98 Eigen::VectorXi observationBoolVec;
101 Eigen::MatrixXd observations;
104 std::shared_ptr<muq::Modeling::Gaussian> initialStateDensity;
107 std::shared_ptr<muq::Modeling::Gaussian> parameterPriorDensity;
117 Fang2017filter(
int _Nsamples);
119 virtual ~Fang2017filter() =
default;
166 double getTime(
int _timeStepI);
186 void setTime(
double _startTime,
double _deltaTime,
double _endTime);
219 std::shared_ptr<muq::Modeling::Gaussian> _density);
227 virtual void stateProjection() = 0;
231 virtual void observeState() = 0;
235 void setObservationSize(
int _size);
239 void setStateSize(
int _size);
247 void setParameterSize(
int _size);
251 int getParameterSize();
255 void updateJointEns(Eigen::VectorXd _observation);
259 void run(
int innerLoopMax, word outputFolder);
Header file of the ITHACAutilities namespace.
std::shared_ptr< muq::Modeling::Gaussian > modelErrorDensity
Model noise density.
int getNumberOfSamples()
Return number of samples per ensamble.
void sampleParameterDist()
Create parameter ensemble.
ensemble observationEns
Observation ensemble.
void setMeasNoise(double cov)
Setup of the measurement noise distribution.
void sampleInitialState()
Create initial state ensemble.
Eigen::MatrixXd state_maxConf
State maximum confidence level.
Eigen::MatrixXd getStateMean()
Return state mean.
void setInitialStateDensity(Eigen::VectorXd _mean, Eigen::MatrixXd _cov)
Create initial state ensemble.
Eigen::MatrixXd state_minConf
State minimum confidence level.
void setParameterPriorDensity(Eigen::VectorXd _mean, Eigen::MatrixXd _cov)
Create parameter ensemble.
void buildJointEns()
Concatenate state and parameter ensambles to create the joint ensamble.
int getTimeStep()
Return timestep.
void setModelError(double cov, bool univariate=0)
Setup of the model error distribution.
double getTime()
Return time.
void setTime(double _startTime, double _deltaTime, double _endTime)
Setup the time vector.
Eigen::MatrixXd parameter_minConf
parameter minimum confidence level
ensemble oldStateEns
Old state ensemble.
Eigen::MatrixXd ensembleFromDensity(std::shared_ptr< muq::Modeling::Gaussian > _density)
General class to sample from an input density.
Eigen::MatrixXd parameter_maxConf
parameter maximum confidence level
ensemble jointEns
Joint state and parameter ensemble.
Eigen::VectorXd getTimeVector()
Return time vector.
void setObservationTime(int _observationStart, int _observationDelta)
Setup the observation vector.
ensemble parameterEns
Parameter ensemble.
void setObservations(Eigen::MatrixXd _observations)
Set the observations matrix.
std::shared_ptr< muq::Modeling::Gaussian > measNoiseDensity
Measurement noise density.
ensemble stateEns
State ensemble.
void run(int innerLoopMax, word outputFolder)
Run the filtering.
Class for ensembles, each column is a sample.
Header file of the muq2ithaca namespace.