Datalens.ai
← All algorithms

NUMERICAL

solve_ivp

Solve an initial value problem for a system of ODEs.

Example of usage

Initial-value solver for decay kinetics.

Usage / limitations

+Use when: Compute approximations and solve equations.

−Limitations: Check input requirements, mathematical assumptions and version-specific behaviour before using.

Mathematical formula

See method documentation: implementation and assumptions vary.
Sample dataShow
{
  "variable": "observations",
  "domain": "Laboratory sensor signal integration",
  "feature_names": [
    "minute",
    "fluorescence_au"
  ],
  "records": [
    {
      "minute": 0,
      "fluorescence_au": 1.0
    },
    {
      "minute": 1,
      "fluorescence_au": 2.0
    },
    {
      "minute": 2,
      "fluorescence_au": 5.0
    },
    {
      "minute": 3,
      "fluorescence_au": 10.0
    },
    {
      "minute": 4,
      "fluorescence_au": 17.0
    },
    {
      "minute": 5,
      "fluorescence_au": 26.0
    },
    {
      "minute": 6,
      "fluorescence_au": 37.0
    },
    {
      "minute": 7,
      "fluorescence_au": 50.0
    },
    {
      "minute": 8,
      "fluorescence_au": 65.0
    }
  ]
}

Code example (Python)

# DataLens.ai example — solve_ivp
# Domain: laboratory sensor measurements and numerical analysis.
# Sample input is supplied by the Copy input + code + test action.
import numpy as np
from scipy import integrate, special
# Read a labelled time-series from the sample input.
t = np.array([row["minute"] for row in observations["records"]], dtype=float)
y = np.array([row["fluorescence_au"] for row in observations["records"]], dtype=float)

# Compute the method-specific result and check a numerical property.
from scipy.integrate import solve_ivp
solution = solve_ivp(lambda minute, state: -0.4*state, (t[0], t[-1]), [10.0], t_eval=t)
assert solution.success and np.allclose(solution.y[0], 10*np.exp(-0.4*t), atol=0.02)
print("Expected output verified")