Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
homogeneous1DBirthDeath.h
1 /* Marmote is free software: you can redistribute it and/or modify
2 it under the terms of the GNU General Public License as published by
3 the Free Software Foundation, either version 3 of the License, or
4 (at your option) any later version.
5 
6 Marmote is distributed in the hope that it will be useful,
7 but WITHOUT ANY WARRANTY; without even the implied warranty of
8 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 GNU General Public License for more details.
10 
11 You should have received a copy of the GNU General Public License
12 along with Marmote. If not, see <http://www.gnu.org/licenses/>.
13 
14 Copyright 2015 Alain Jean-Marie, Jean-Michel Fourneau, Jean-Marc Vincent, Issam Rabhi */
15 
16 #ifndef HOMOGENOUS1DBIRTHDEATH_H
17 #define HOMOGENOUS1DBIRTHDEATH_H
18 
19 #include "markovChain.h"
20 #include "Distribution/discreteDistribution.h"
21 #include "Distribution/geometricDistribution.h"
22 
32 {
33  protected:
34  int _size;
35  double* _stateSpace;
36  double _lambda;
37  double _mu;
39  public:
40 
48  homogeneous1DBirthDeath( double lambda, double mu );
59  double lambda, double mu );
60 
61 
68 
74  void makeMarkovChain();
75 
84  discreteDistribution* transientDistribution( double t, int nMax );
116  simulateChain( double tMax,
117  bool stats, bool traj,
118  bool withIncrements,
119  bool trace );
120 
121 };
122 
123 #endif // HOMOGENOUS1DBIRTHDEATH_H
Markov Chain class.
Definition: markovChain.h:32
discreteDistribution * transientDistribution(double t, int nMax)
Computes the transient distribution for a homogeneous1DBirthDeath chain.
Definition: homogeneous1DBirthDeath.cpp:118
The 1-dimensional birth and death process with homogeneous transition rates. This model is characteri...
Definition: homogeneous1DBirthDeath.h:31
~homogeneous1DBirthDeath()
Destructor for a homogeneous1DBirthDeath chain.
Definition: homogeneous1DBirthDeath.cpp:58
discreteDistribution * approxTransientDistribution(double t, int nMax)
Computes the transient distribution for a homogeneous1DBirthDeath chain.
Definition: homogeneous1DBirthDeath.cpp:84
int _size
the number of states; possibly infinite
Definition: homogeneous1DBirthDeath.h:34
double * _stateSpace
representation of the state space when finite
Definition: homogeneous1DBirthDeath.h:35
The geometric distribution with starting value 0. The parameter "p" is called "ratio".
Definition: geometricDistribution.h:27
geometricDistribution * stationaryDistribution()
Computes the stationary distribution for a homogeneous1DBirthDeath chain.
Definition: homogeneous1DBirthDeath.cpp:155
double _mu
Definition: homogeneous1DBirthDeath.h:37
simulationResult * simulateChain(double tMax, bool stats, bool traj, bool withIncrements, bool trace)
Definition: homogeneous1DBirthDeath.cpp:203
double _lambda
Definition: homogeneous1DBirthDeath.h:36
The general discrete distribution with finite support.
Definition: discreteDistribution.h:25
The class for transmitting (Monte Carlo) simulation results between objects. Simulation results may b...
Definition: simulationResult.h:18
homogeneous1DBirthDeath(double lambda, double mu)
Constructor for a homogeneous1DBirthDeath chain with infinite state space.
Definition: homogeneous1DBirthDeath.cpp:30
void makeMarkovChain()
Definition: homogeneous1DBirthDeath.cpp:66