Weeks[9:12]

This blog post covers work done during week 9 to 12. After getting QNDF1 merged, I started working on 2nd order Quasi Numerical Differentiation method. This method has better stability properties than 2nd order BDF method. Here is the table which compare BDF’s and NDF’s [1].

table

Here, we can see for 2nd order method, the optimal choice is κ = −1/9, yielding a truncation error coefficient half that of BDF2. This implies that for sufficiently small step sizes, NDF2 can achieve the same accuracy as BDF2 with a step size about 26% bigger. The formulas derived by Klopfenstein and Reiher at orders higher than 2 are less successful because the price of improved stability is reduced efficiency. Taking the opposite tack, we sought values of κ that would make the NDF’s more accurate than the BDF’s and not much less stable. Of course the leading term of the truncation error cannot be made too small, else it would not dominate and the formula would not behave as expected at realistic step sizes. Because Klopfenstein’s second order formula optimally improves accuracy while retaining L-stability, it serves as the order 2 method of our NDF family.

After getting QNDF2 merged, I started working on variable order QNDF method. In QNDF method, order varies from 1 to 5. In this method order and step size controller is taken from paper [2].

[1] THE MATLAB ODE SUITE, LAWRENCE F. SHAMPINE AND MARK W. REICHELT.
[2] Implementation of an Adaptive BDF2 Formula and Comparison with the MATLAB Ode15s E. Alberdi Celaya, J. J. Anza Aguirrezabala, and P. Chatzipantelidis.