otf.system.linear_nonlinear
Helpers for systems with a separable linear and nonlinear part.
This module provides mixins and concrete System_* subclasses for ODEs that can
be written as L(c) * state + N(c, state) where a parameter-dependent linear
operator multiplies the state and a separate nonlinear function provides the
remaining dynamics.
Classes:
| Name | Description |
|---|---|
System_LinearNonlinear_ModelKnown |
Concrete system: known true-model with separable linear/nonlinear parts. |
System_LinearNonlinear_ModelUnknown |
Concrete system: unknown true-model, only assimilated parts provided. |
System_LinearNonlinear_ModelKnown
System_LinearNonlinear_ModelKnown(
mu: float,
gs: jndarray,
cs: jndarray,
observed_mask: jndarray,
linear_assimilated: Callable[[jndarray], jndarray],
nonlinear_assimilated_ode: Callable[
[jndarray, jndarray], jndarray
],
linear_true: Callable[[jndarray], jndarray],
nonlinear_true_ode: Callable[
[jndarray, jndarray], jndarray
],
complex_differentiation: bool = False,
true_observed_mask: jndarray | None = None,
)
Bases: _AssimilatedLinearNonlinearMixin, _TrueLinearNonlinearMixin, System_ModelKnown
Concrete system: known true-model with separable linear/nonlinear parts.
The class constructs compatible assimilated and true ODEs from provided linear and nonlinear component callables.
Source code in src/otf/system/linear_nonlinear.py
System_LinearNonlinear_ModelUnknown
System_LinearNonlinear_ModelUnknown(
mu: float,
cs: jndarray,
observed_mask: jndarray,
linear_assimilated: Callable[[jndarray], jndarray],
nonlinear_assimilated_ode: Callable[
[jndarray, jndarray], jndarray
],
complex_differentiation: bool = False,
)
Bases: _AssimilatedLinearNonlinearMixin, System_ModelUnknown
Concrete system: unknown true-model, only assimilated parts provided.