ODE¶
-
class
probnum.diffeq.ODE(timespan, rhs, jac=None, hess=None, sol=None)¶ Bases:
abc.ABCOrdinary differential equations.
Extended by the types of ODEs, e.g. IVPs, BVPs. This class describes systems of first order ordinary differential equations (ODEs),
\[\dot y(t) = f(t, y(t)), \quad t \in [t_0, T].\]It provides options for defining custom right-hand side (RHS) functions, their Jacobians and closed form solutions.
- Parameters
rhs (callable, signature:
(t, y, **kwargs)) – RHS function \(f : [t_0, T] \times \mathbb{R}^d \rightarrow \mathbb{R}^d\) of the ODE system. As such it takes a float and an np.ndarray of shape (d,) and returns a np.ndarray of shape (d,). As of now, no vectorization is supported (nor needed).jac (callable, signature:
(t, y, **kwargs), optional) – Jacobian of RHS function \(J_f : [0, T] \times \mathbb{R}^d \rightarrow \mathbb{R}^d\) of the ODE system. As such it takes a float and an np.ndarray of shape (d,) and returns a np.ndarray of shape (d,). As of now, no vectorization is supported (nor needed).sol (callable, signature:
(t, **kwargs), optional) – Solution of the ODE system. Only well-defined in subclasses like IVP or BVP.
See also
IVPExtends ODE for initial value problems.
Attributes Summary
Abstract, in order to force subclassing.
Returns \((t_0, T)\) as
[self.t0, self.tmax].Methods Summary
__call__(t, y, **kwargs)Piggybacks on self.rhs(t, y).
hessian(t, y, **kwargs)Hessian of model function f.
jacobian(t, y, **kwargs)Jacobian of model function f.
rhs(t, y, **kwargs)Evaluates model function f.
solution(t, **kwargs)Solution of the IVP.
Attributes Documentation
-
dimension¶ Abstract, in order to force subclassing.
-
t0¶
-
timespan¶ Returns \((t_0, T)\) as
[self.t0, self.tmax].Mainly here to provide an interface to scipy.integrate. Both \(t_0\) and \(T\) can be accessed via
self.t0andself.tmaxrespectively.
-
tmax¶
Methods Documentation
-
hessian(t, y, **kwargs)[source]¶ Hessian of model function f.
For \(d=3\), the Hessian \(H_f(t, y) \in \mathbb{R}^{3 \times 3 \times 3}\) is expected be evaluated as
\[H_f(t, y) = \left[H_{f_1}(t, y), H_{f_2}(t, y), H_{f_3}(t, y) \right]^\top\]since for any directions \(v_1, v_2\) the outcome of \(H_f(t_0, y_0) \cdot v_1 \cdot v_2\) is expected to contain the incline of \(f_i\) in direction \((v_1, v_2)\).