Skip to content

Invariant measure estimation

Rectangular partitions

# PerronFrobenius.InvariantMeasures.invariantmeasureMethod.

invariantmeasure(data, binning_scheme::RectangularBinning; kwargs...)

Partition data according to the the given binning_scheme and compute the invariant measure over the partition elements.

Example

Assume we have enough points that a rectangular partition yields a good estimate of the invariant measure. Then the measure over the partition can be computed as follows.

pts = [rand(3) for i = 1:2000]

# Use rectangular boxes constructed by subdividing each coordinate 
# axis into 10 subintervals of equal length.
binning_scheme = RectangularBinning(10)
invariantmeasure(pts, binning_scheme)

Triangulated partitions

Say we have a 3D delay reconstruction that we have partioned into simplices.

There are two methods that approximates invariant measures over that partition.

Exact simplex intersections

# PerronFrobenius.InvariantMeasures.invariantmeasureMethod.

invariantmeasure(pts, ϵ::TriangulationBinning, 
    simplex_intersection_type::ExactIntersection) -> TriangulationExactInvariantMeasure

Estimate the invariant measure over the state space defined by pts using a triangulation of the phase space as the partition, using exact simplex intersections to compute transition probabilities between the states (simplices).

Example

Assume we have sufficiently few points that a triangulation approach involving simplex intersections is computationally feasible to compute the invariant measure. Then a transfer operator can be computed as follows.

pts = [rand(3) for i = 1:30]
invariantmeasure(pts, TriangulationBinning(), ExactIntersection())

Approximate simplex intersections

# PerronFrobenius.InvariantMeasures.invariantmeasureMethod.

invariantmeasure(pts, ϵ::TriangulationBinning, 
    simplex_intersection_type::ApproximateIntersection;
    n::Int = 100, sample_randomly::Bool = false) -> TriangulationApproxInvariantMeasure

Estimate the invariant measure over the state space defined by pts using a triangulation of the phase space as the partition, using exact simplex intersections to compute transition probabilities between the states (simplices).

Example

Assume we have sufficiently few points that a triangulation approach involving simplex intersections is computationally feasible to compute the invariant measure. Then a transfer operator can be computed as follows.

pts = [rand(3) for i = 1:30]
invariantmeasure(pts, TriangulationBinning(), ApproximateIntersection())