Chalkboard - v3.0.1
    Preparing search index...

    Function solveAdaptive

    • Solves an ordinary differential equation using the adaptive Dormand–Prince (or Runge–Kutta–Fehlberg) method. Produces a variable-step solution.

      Parameters

      • ode: ChalkboardODE

        The ordinary differential equation to solve.

      • config: {
            atol?: number;
            h0?: number;
            hMax?: number;
            hMin?: number;
            maxSteps?: number;
            returnObject?: boolean;
            rtol?: number;
            t0?: number;
            t1: number;
            y0: number | number[] | Record<string, any>;
        }
        • Optionalatol?: number

          Absolute tolerance.

        • Optionalh0?: number

          Initial step guess.

        • OptionalhMax?: number

          Maximum step size magnitude.

        • OptionalhMin?: number

          Minimum step size magnitude.

        • OptionalmaxSteps?: number

          Maximum accepted+rejected iterations.

        • OptionalreturnObject?: boolean

          Whether to return yObj (same as Chalkboard.diff.solve).

        • Optionalrtol?: number

          Relative tolerance.

        • Optionalt0?: number

          Initial time.

        • t1: number

          Final time.

        • y0: number | number[] | Record<string, any>

          Initial state (same conventions as Chalkboard.diff.solve).

      Returns { t: number[]; y: number[][]; yObj?: { [key: string]: number }[] }

      // Solve first-order ODE with adaptive RK45:
      const ode1 = Chalkboard.diff.init((t, y) => -2 * y);
      const sol1 = Chalkboard.diff.solveAdaptive(ode1, {
      t0: 0, t1: 5,
      y0: 1,
      h0: 0.1,
      hMin: 0.01,
      hMax: 0.5
      });

      // Solve second-order ODE with adaptive RK45:
      const ode2 = Chalkboard.diff.init((t, y, dy) => dy - y);
      const sol2 = Chalkboard.diff.solveAdaptive(ode2, {
      t0: 0, t1: 10,
      y0: { y0: 1, dy0: 0 },
      h0: 0.1,
      hMin: 0.01,
      hMax: 0.5,
      returnObject: true
      });

      // Solve system ODE with adaptive RK45:
      const odeSys = Chalkboard.diff.init((t, y) => [y[1], -y[0]], 2);
      const solSys = Chalkboard.diff.solveAdaptive(odeSys, {
      t0: 0, t1: 10,
      y0: [1, 0],
      h0: 0.1,
      hMin: 0.01,
      hMax: 0.5
      });