Skip to main content

semi_implicit_step_jacobians

Function semi_implicit_step_jacobians 

Source
pub fn semi_implicit_step_jacobians(
    model: &Model,
    state: &State,
) -> StepJacobians
Expand description

Compute step Jacobians for semi-implicit Euler by chain rule through the integrator.

Semi-implicit Euler: qdd = ABA(q, v, ctrl) v’ = v + dt * qdd q’ = q + dt * v’

The integrator layer is differentiated exactly; the ABA block (∂qdd/∂q, ∂qdd/∂v, ∂qdd/∂ctrl) is still obtained by central finite differences on aba, so this routine is not derivative-exact. It is cheaper and better-conditioned than finite_diff_jacobians, which perturbs the whole step, but it carries the same truncation/round-off tradeoff. For exact derivatives use symbolic::symbolic_step_jacobians.