PerturbedStepSolution

class probnum.diffeq.perturbed.step.PerturbedStepSolution(scales, locations, states, interpolants)[source]

Bases: ODESolution

Probabilistic ODE solution corresponding to the PerturbedStepSolver.

Attributes Summary

frozen

Whether the posterior is frozen.

locations

Locations of the states of the posterior.

states

States of the posterior.

Methods Summary

__call__(t)

Evaluate the time-continuous posterior at location t

append(location, state)

Append a state to the posterior.

freeze()

Freeze the posterior.

interpolate(t[, previous_index, next_index])

Evaluate the posterior at a measurement-free point.

sample(rng[, t, size])

Sample from the ODE solution.

transform_base_measure_realizations(...)

Transform base-measure-realizations into posteriors samples.

Attributes Documentation

Parameters:
frozen

Whether the posterior is frozen.

locations

Locations of the states of the posterior.

states

States of the posterior.

Methods Documentation

__call__(t)

Evaluate the time-continuous posterior at location t

Algorithm: 1. Find closest t_prev and t_next, with t_prev < t < t_next 2. Predict from t_prev to t 3. (if self._with_smoothing=True) Predict from t to t_next 4. (if self._with_smoothing=True) Smooth from t_next to t 5. Return random variable for time t

Parameters:

t (ArrayLike) – Location, or time, at which to evaluate the posterior.

Raises:

ValueError – If time-points are not strictly increasing.

Returns:

Estimate of the states at time t.

Return type:

randvars.RandomVariable or randvars._RandomVariableList

append(location, state)

Append a state to the posterior.

Parameters:
Return type:

None

freeze()

Freeze the posterior.

Return type:

None

interpolate(t, previous_index=None, next_index=None)[source]

Evaluate the posterior at a measurement-free point.

Returns:

Dense evaluation.

Return type:

randvars.RandomVariable or randvars._RandomVariableList

Parameters:
sample(rng, t=None, size=())

Sample from the ODE solution.

Parameters:
  • rng (Generator) – Random number generator.

  • t (_SupportsArray[dtype] | _NestedSequence[_SupportsArray[dtype]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None) – Location / time at which to sample. If nothing is specified, samples at the ODE-solver grid points are computed. If it is a float, a sample of the ODE-solution at this time point is computed. Similarly, if it is a list of floats (or an array), samples at the specified grid-points are returned. This is not the same as computing i.i.d samples at the respective locations.

  • size (int | Integral | integer | Iterable[int | Integral | integer] | None) – Number of samples.

Return type:

ndarray

transform_base_measure_realizations(base_measure_realizations, t)

Transform base-measure-realizations into posteriors samples.

Parameters:
Returns:

Transformed realizations.

Return type:

np.ndarray