3. Revision notes and plans#

Recent changes#

  • 2024-06-18: Renamed, dropping the “Introduction to” and correspondingly dropping “introduction-to-” from its URLs.

  • 2024-06-13: Moved “linear-algebra-with-0-based-indexing-and-semiopen-intervals” to folder main — this might involve changing numerous cross-references!

  • 2024-06-9/13: Proofreading, mostly typo correction along with some minor Python code clean up, so far to section 2.2, main/fixed-point-iteration-python.

  • 2023-11-12: Slight revisions and corrections to Approximating Derivatives by the Method of Undetermined Coefficients.

  • Added notes on rounding errors, illustrated for IEEE-64 machine arithmetic, in Machine Numbers, Rounding Error and Error Propagation.

  • Added a draft section Piecewise Polynomial Approximating Functions and Spline Interpolation, based on notes by Stephen Roberts.

  • Added a draft section Choosing the collocation points: the Chebyshev method, based on notes by Stephen Roberts.

  • Added first drafts of some sections on multi-step methods: leapfrog, Adams-Bashforth methods and Adams-Moulton methods.

  • Filled in several incomplete sections on ODE’s.

  • Better labelling of graphs and improved examples on ODE’s.

  • Brought over some revisions from the Julia edition; more to come (see TO DO list).

To Do#

Content improvements#

  • Add derivation of the formula for the matrix norm \(\| A \|_\infty\)

  • Add a derivation of the error bound \(\displaystyle Rel(x_a) := \frac{\|x - x_a\|}{\| x \|} \leq \|A\|\|A^{-1}\|\frac{\|r\|}{\|b\|} \)

  • Add notes on min-max (Chebychev) approximation of functions by polynomials.

  • Expand some sections that are only stubs or very brief; in particular those on

    1. Minimization

    2. Multi-step methods for ODEs and determining their stability.

  • Continue to port updates to and from the Julia version, mostly from Finding the Minimum of a Function of One Variable Without Using Derivatives — A Brief Introduction onwards.

  • Add more exercises.

  • About document “python-tutorial-introduction”: either omit it or add notes on speed/cost measurement, such as with module time.

Formating, layout and style improvements#

  • camelCase everything (e.g. change from numerical_methods to numericalMethods), except where an underscore is used to indicate a subscript. (For one thing that harmonises with Julia style.)

  • When using <br>, it should appear on its own line, not at end-of-line. (For PDF output; HTML output is more forgiving.) This is relevant to some pseudo-code appearence in the PDF; e.g in Basic Concepts and Euler’s Method:

MyST markdown tips#

  • See https://jupyterbook.org/en/stable/content/myst.html

  • Move to MyST Markdown notation {doc}, {ref}, {eq} and so on as appropriate.

  • However the enhanced mark-down style [text](label) is often preferable to uisng {ref} because

    • it renders better when viewing a section as a Jupyter notebook, and

    • it allows substituting an abbreviation or variant of the title as the link text.

  • To number equations for referencing, use MyST-Markdown-augmented $$...$$ notation, as with $$2+2=4$$ (eq-obvious)

  • If the top-level section atop a file is labelled as with (section-label)= then the usage {ref}<section-label> can be used instead of {doc}<file-base-name> This is useful for example if there are variant files distinguished by suffixes like “-python”/”-julia” but I want to use the same cross-reference text.