5 Numerical Approximation of DAEs

Numerical Approximation of ODEs


  • Basic Ideas
  • One Step Methods
  • Consistency / Stability / Convergence
  • Runge-Kutta Methods

Lecture 5-0

Little Coding Exercise

Use your favorite programming language to

  1. Write an implementation of the explicit Euler scheme like
def explicit_euler(f, x0, timegrid):
    # f -- the right hand side in `x' = f(t, x)`
    # x0 -- the initial value
    # timegrid -- somehow specify the stepsize and the endpoint

    # integrate the ODE with explicit Euler 

    return xN
  1. Test it with the ODE \begin{equation} \begin{bmatrix} \dot x \\ \dot y \end{bmatrix} = \begin{bmatrix} e^t y \\ -e^t x \end{bmatrix}, \quad \begin{bmatrix} x(0) \\ y(0) \end{bmatrix} = \begin{bmatrix} \sin (1) \\ \cos(1) \end{bmatrix} \end{equation} on $[0, 3]$ with number of time steps $$N\in{2^{8}, 2^{10}, 2^{14}, 2^{18}}$$ by comparing the computed value of $x_N\approx x(3)$ to the actual value $x(3)=\sin (e^3)$.
  2. Implement any Runge-Kutta method of higher-order1 and repeat this numerical study.

Basics of Numerical Approximation of DAEs


  • Notions and Notations of RKM
  • How to apply an RKM to $E\dot x = Ax+f(t)$
  • Explicit Euler fails, Implicit Euler works
  • RKM and System Transformations
  • Analysis via the Kronecker Normal Form

Lecture 5-1

Consistency und Convergence for DAEs with Constant Coefficients

  • Consistency error – will depend on the $\nu$-index
  • Convergence – need extra stability condition
  • Stiffly accurate schemes – exact for index-1 DAE parts

Lecture 5-2

Exercise 4

RKM for (Nonlinear) Semi-explicit DAEs of Index 1

RKM/BDF for (Nonlinear) Semi-explicit DAEs of Index 1/2

Numerical Methods for Index Reduction

  1. For unstructured systems – use the derivative array but compute the projections on the fly.
  2. For structured systems like multibody systems (like the pendulum – differentiate the relevant parts, add these equations to the system, and make the system square again by introducing new variables.

  1. feel free to use an explicit method of a not so high order. ↩︎