11  Notebook Catalogue and Reproducibility

Author
Affiliation

Enrico Bertolazzi

University of Trento, Department of Industrial Engineering

11.1 Download the complete collection

The archive contains the eight course notebooks listed below and the Conda environment specification needed to run them.

Download: all Python laboratories and the environment file

11.2 Learning path

The numerical prefix records the recommended study order. Each notebook is a self-contained computational lecture, but its Theory link identifies the part of the book that should normally be read first.

Notebook Main learning objective Theory
01 — Unconstrained minimization Compare gradient, Newton, quasi-Newton, and SciPy solvers; interpret diagnostics and failure modes Unconstrained minimization
02 — Constrained minimization Work through equality- and inequality-constrained problems, KKT candidates, and numerical feasibility checks Lagrange multipliers and KKT conditions
03 — Numerical ODE solvers Implement one-step methods; measure order, stability, stiffness, and invariant drift ODE numerical methods
04 — Linear DAEs Study regular pencils, consistent data, index, and implicit integration Linear DAEs
05 — Nonlinear DAEs Solve nonlinear constraints and examine drift, stabilization, and projection DAEs from Lagrangian mechanics
06 — DAE index analysis and reduction Detect hidden constraints and perform linear and nonlinear index reduction Index reduction
07 — Nine DAE case studies Connect the theory to constrained mechanical and high-index models DAE examples
08 — Numerical methods for DAEs Compare implicit schemes, Baumgarte stabilization, projection, and coordinate partitioning DAE numerical methods

11.3 Individual notebooks

01 — Unconstrained minimization

Algorithms and diagnostics on Rosenbrock, Himmelblau, Beale, Powell singular, Brown badly scaled, and Freudenstein–Roth test problems. The examples show why solver agreement, a small gradient, or a success flag are not sufficient on their own.

Download: unconstrained-minimization algorithms and test problems

02 — Constrained minimization

Worked equality- and inequality-constrained problems illustrate Lagrange multipliers, KKT conditions, candidate filtering, and the numerical checks needed to distinguish stationarity from feasibility and local optimality.

Download: constrained-minimization examples

03 — Numerical ODE solvers

Explicit and implicit one-step methods, convergence experiments, absolute stability, stiffness, adaptive integration, and applications including SIR, Robertson kinetics, and gravitational dynamics.

Download: ODE algorithms, stability experiments, and dynamical-system examples

04 — Linear DAEs

Matrix pencils, regularity, consistent initial conditions, index-1 through index-3 examples, Weierstrass form, backward Euler, and implicit midpoint.

Download: linear-DAE theory and numerical experiments

05 — Nonlinear DAEs

Nonlinear algebraic constraints, fully implicit backward Euler, consistent initialization, the constrained pendulum, drift, and post-step projection.

Download: nonlinear-DAE solvers, constraints, and projection

06 — DAE index analysis and reduction

Differential index, regular pencils, nilpotent chains, Wong sequences, hidden constraints, and reduction of semi-explicit nonlinear systems.

Download: DAE index-analysis and reduction experiments

07 — Nine DAE case studies

Nine models drawn from the DAE examples in the book. The notebook clearly distinguishes a direct DAE computation from an index-reduced ODE or a constraint-projection experiment.

Download: nine DAE models with complete derivations and numerical experiments

08 — Numerical methods for DAEs

Implicit time stepping, experimental convergence, high-index mechanics, constraint drift, Baumgarte stabilization, projection, and coordinate partitioning.

Download: implicit DAE integration and constraint-control methods

11.4 Running a notebook

After configuring the environment described in the previous chapter:

conda activate NOOCDS
cd path/to/the/downloaded/examples
jupyter lab

Open a notebook and select Restart Kernel and Run All Cells. A clean run should finish without manual input. Before changing an algorithm, first check that the reference run reproduces its tables, plots, convergence orders, and constraint residuals.

11.5 A disciplined experiment

Change one item at a time: the initial condition, step size, tolerance, stabilization parameter, or solver. Record both the solution error and the diagnostic that matters for the model (for example a gradient norm, local error estimate, algebraic residual, or invariant drift). This makes the notebooks experiments rather than demonstrations.