RunMat
  • Pricing
RunMat
GitHub
GitHub
DownloadSign InTry in Browser
DesktopRuntimeServer
RunMat

Run math blazing fast

GitHubX (Twitter)LinkedIn

Company

  • About
  • Pricing
  • Contact

Explore

  • RunMat for academia
  • RunMat vs MATLAB Online
  • Benchmarks

Get product updates and release notes from the RunMat team.

© 2026 Dystr · Made withfor the scientific community.

RunMat™ is a registered trademark of Dystr, Inc. MATLAB® is a registered trademark of The MathWorks, Inc. RunMat is not affiliated with, endorsed by, or sponsored by The MathWorks, Inc.

LicensePrivacy
/
See all docs
Builtin Reference
    • ode15s
    • ode23
    • ode45

ode23 — Solve nonstiff ODE systems using adaptive Bogacki-Shampine 3(2) integration.

ode23 integrates nonstiff first-order ODE systems with adaptive low-order Runge-Kutta stepping and returns MATLAB-compatible time/state output arrays.

Syntax

y = ode23(odefun, tspan, y0)
y = ode23(odefun, tspan, y0, options)
[t, y] = ode23(odefun, tspan, y0)
[t, y] = ode23(odefun, tspan, y0, options)

Inputs

NameTypeRequiredDefaultDescription
odefunAnyYes—ODE right-hand-side callback f(t,y).
tspanAnyYes—Time interval or monotonic time vector.
y0AnyYes—Initial state vector/value.
optionsAnyNo—Optional struct with tolerances and step controls.

Returns

NameTypeDescription
yNumericArraySolution states evaluated over tspan.
tNumericArrayTime points selected by solver.
yNumericArraySolution states at each returned time point.

Returned values from ode23 depend on how many outputs the caller requests.

Errors

IdentifierWhenMessage
RunMat:ode23:InvalidArgumentInput argument count/options struct grammar is invalid.ode23: invalid argument
RunMat:ode23:InvalidInputODE input/state/callback semantics are invalid for integration.ode23: invalid input
RunMat:ode23:InternalInternal output materialization fails.ode23: internal runtime failure

How ode23 works

  • Supports scalar, vector, and matrix-valued initial conditions.
  • Accepts options as a struct, including RelTol, AbsTol, InitialStep, and MaxStep.
  • The documented tspan, y0, and derivative domains are single or double. Native integer and logical solver values are independently gated RunMat extensions, and every integer-to-double solver boundary requires exact representability.
  • Typed integer MaxSteps is parsed as an exact structural count; integer floating controls are checked before conversion.
  • The current RunMat integration loop and outputs are double even when all floating inputs are single; native-single output propagation remains a general compatibility gap rather than an integer extension.
  • Event outputs and solution-structure forms are not implemented by the current core solver surface.
  • When tspan has more than two points, the solver returns values at each requested time.
  • With one output, returns only the y trajectory matrix.

Example

Integrate a scalar ODE at requested output times

[t, y] = ode23(@(t, y) -2*y, [0 0.25 0.5 1.0], 1)

Expected output:

size(t) = [4, 1], size(y) = [4, 1]

Using ode23 with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how ode23 changes the result.

Run a small ode23 example, explain the result, then change one input and compare the output.

Related Math functions

Ode

ode15s · ode45

Elementwise

abs · angle · bsxfun · complex · conj · double · erf · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · rescale · sign · single · sqrt · swapbytes · times · typecast · uint16 · uint32 · uint8

Trigonometry

acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh

Reduction

all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · mink · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var

Structure

bandwidth · isdiag · ishermitian · issymmetric · istril · istriu · symrcm

Signal

blackman · butter · buttord · cheb2ord · conv · conv2 · deconv · downsample · envelope · filter · filtfilt · fir1 · freqz · gauspuls · hamming · hann · hilbert · periodogram · pulstran · pwelch · rectpuls · resample · sawtooth · sinc · spectrogram · square · tripuls · unwrap · upsample · zplane

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref · vecnorm

Optim

coneprog · fminbnd · fminunc · fsolve · fzero · integral · linprog · lsqcurvefit · lsqnonlin · optimoptions · optimset · quad · secondordercone

Ops

cross · ctranspose · dot · mldivide · mpower · mrdivide · mtimes · pagemtimes · pagetranspose · trace · transpose

Symbolic

digits · int · limit · piecewise · sym · syms · vpa

Fft

fft · fft2 · fftn · fftshift · ifft · ifft2 · ifftn · ifftshift

Interpolation

griddedInterpolant · interp1 · interp1q · interp2 · pchip · ppval · spline

Discrete

lcm · primes

Poly

polyder · polyfit · polyint · polyval · roots

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how ode23 is executed, line by line, in Rust.

  • View the source for ode23 in Rust on GitHub
  • Learn how the RunMat runtime works
  • Found a bug? Open an issue with a minimal reproduction.

About RunMat

RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.

  • RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
  • Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.

Download RunMatOpen Sandbox
On this page
  • Syntax
  • Inputs
  • Returns
  • Errors
  • How ode23 works
  • Example
  • Integrate a scalar ODE at requested output times
  • Using ode23 with coding agents
  • Related Math functions
  • Ode
  • Elementwise
  • Trigonometry
  • Reduction
  • Structure
  • Signal
  • Rounding
  • Factor
  • Solve
  • Optim
  • Ops
  • Symbolic
  • Fft
  • Interpolation
  • Discrete
  • Poly
  • Open-source implementation
  • About RunMat