dde_euler_pc_step

dde_euler_pc_step#

class braintools.quad.dde_euler_pc_step(f, y, t, history_fn, delays, *args, max_iter=3, **kwargs)#

Euler predictor-corrector method for delay differential equations.

Uses explicit Euler as predictor and implicit Euler as corrector, with fixed-point iteration to solve the implicit equation.

Parameters:
  • f (Callable[[Array | ndarray | bool | number | bool | int | float | complex | Quantity, PyTree, PyTree, ...], PyTree]) – Same as dde_euler_step.

  • y (PyTree) – Same as dde_euler_step.

  • t (Array | ndarray | bool | number | bool | int | float | complex | Quantity) – Same as dde_euler_step.

  • history_fn (Callable[[Array | ndarray | bool | number | bool | int | float | complex | Quantity], PyTree]) – Same as dde_euler_step.

  • delays (Array | ndarray | bool | number | bool | int | float | complex | Quantity | Sequence[Array | ndarray | bool | number | bool | int | float | complex | Quantity]) – Same as dde_euler_step.

  • *args – Same as dde_euler_step.

  • max_iter (int) – Maximum number of corrector iterations.

Returns:

The updated state after predictor-corrector step.

Return type:

PyTree

Notes

This method can be more stable for stiff DDEs compared to explicit methods. The corrector equation is:

y_{n+1} = y_n + h*f(t_{n+1}, y_{n+1}, y(t_{n+1}-τ))