# PiecewiseConstantDiffusion¶

class probnum.randprocs.markov.continuous.PiecewiseConstantDiffusion(t0)

Bases: Diffusion

Piecewise constant diffusion.

It is defined by a set of diffusions $$(\sigma_1, ..., \sigma_N)$$ and a set of locations $$(t_0, ..., t_N)$$ through

$\begin{split}\sigma(t) = \left\{ \begin{array}{ll} \sigma_1 & \text{ if } t < t_0\\ \sigma_n & \text{ if } t_{n-1} \leq t < t_{n}, ~n=1, ..., N\\ \sigma_N & \text{ if } t_{N} \leq t\\ \end{array} \right.\end{split}$

In other words, a tuple $$(t, \sigma)$$ always defines the diffusion right of $$t$$ as $$\sigma$$ (including the point $$t$$), except for the very first tuple $$(t_0, \sigma_0)$$ which also defines the diffusion left of $$t$$. This choice of piecewise constant function is continuous from the right.

Parameters:

t0 – Initial time point. This is the leftmost time-point of the interval on which the diffusion is calibrated.

Attributes Summary

Methods Summary

 Evaluate the diffusion $$\sigma(t)$$ at $$t$$. estimate_locally(meas_rv, ...) Estimate the (local) diffusion and update current (global) estimation in- place. update_in_place(local_estimate, t)

Attributes Documentation

diffusions
locations
t0
tmax

Methods Documentation

__call__(t)[source]

Evaluate the diffusion $$\sigma(t)$$ at $$t$$.

Parameters:

t (_SupportsArray[dtype] | _NestedSequence[_SupportsArray[dtype]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]) –

Return type:

_SupportsArray[dtype] | _NestedSequence[_SupportsArray[dtype]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | ndarray

estimate_locally(meas_rv, meas_rv_assuming_zero_previous_cov, t)[source]

Estimate the (local) diffusion and update current (global) estimation in- place.

Used for uncertainty calibration in the ODE solver.

Parameters:
Return type:

_SupportsArray[dtype] | _NestedSequence[_SupportsArray[dtype]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes]

update_in_place(local_estimate, t)[source]