Source code for pyzeta.core.dynamics.function_systems.map_system
"""
TODO.
Authors:\n
- Philipp Schuette
"""
from abc import ABC, abstractmethod
from typing import Tuple
from pyzeta.core.pyzeta_types.general import tBoolMat, tVec, tWordVec
from pyzeta.framework.pyzeta_logging.loggable import Loggable
[docs]
class HyperbolicMapSystem(ABC, Loggable):
"Abstract representation of a hyperbolic (`n`-dimensional) map system."
@property
@abstractmethod
def fundamentalIntervals(
self,
) -> Tuple[Tuple[float, float], ...]:
"""
Return the (real) domains of the maps making up the system. Domains
are bounded, connected subsets of the real line which in turn are
represented as pairs of floats.
:return: intervals of definition of the map system
"""
@property
@abstractmethod
def adjacencyMatrix(self) -> tBoolMat:
"""
Return the adjacency matrix of the given system of maps. The size of
this matrix must fit the underlying alphabet of the map system.
:return: adjacency matrix
"""
[docs]
@abstractmethod
def getStabilities(self, words: tWordVec) -> Tuple[tVec, tVec]:
"""
Return the stabilities (i.e. derivatives of map iterates at fixed
points) associated with an array of symbolic words. Stabilities are
guaranteed to be sorted as (contracting, expanding)!
:param words: array of symbolic words determining the map iterates
:return: stabilities of the (symbolically given) periodic orbits
"""
[docs]
@abstractmethod
def getPeriodicPoints(self, words: tWordVec) -> Tuple[tVec, tVec]:
"""
Return the periodic points (i.e. fixed points of map iterates)
associated with an array of symbolic words.
:param words: array of symbolic words determining the map iterates
:return: fixed points of the (symbolically given) iterates
"""