![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Sensitivity of the transient distribution of a CTMC to a scalar parameter. More...
#include <cstddef>#include <vector>#include "line/api/mc/ctmc_transient.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::mc::TransientSensResult< T > |
Namespaces | |
| namespace | line |
| namespace | line::mc |
Functions | |
| template<class T> | |
| TransientSensResult< T > | line::mc::ctmc_transient_sens (const Matrix< T > &Q, const Matrix< T > &dQ, const std::vector< T > &pi0, const T &t0, const T &t1, double rtol=1e-3, double atol=1e-6) |
| Sensitivity of the transient distribution of a CTMC to a scalar parameter. | |
| template<class T> | |
| TransientSensResult< T > | line::mc::ctmc_transient_sens (const Matrix< T > &Q, const Matrix< T > &dQ, const T &t0, const T &t1, double rtol=1e-3, double atol=1e-6) |
| Overload starting from the uniform distribution, as MATLAB's short forms do. | |
Sensitivity of the transient distribution of a CTMC to a scalar parameter.
Templated port of matlab/src/api/mc/ctmc_transient_sens.m. Differentiating the forward equations with respect to theta, with an initial vector that does not depend on theta, gives Trivedi and Bobbio (2017), Eq. (9.82),
d/dt (dpi/dtheta) = (dpi/dtheta) Q + pi (dQ/dtheta), dpi(0)/dtheta = 0.
The sensitivity equation is driven by pi(t), so the two cannot be advanced separately: state and sensitivity are integrated as ONE augmented system of size 2n on a single adaptive grid, which is also what keeps the two consistent at every returned time point.
GATED ON TRANSCENDENTAL ARITHMETIC, for the same reason as ctmc_transient: it is the same ode23 controller on a larger system.
Definition in file ctmc_transient_sens.h.