Implementation of an Explicit Runge-Kutta Solver With Adaptive Time-Stepping Based On Error Control
(2024) In Bachelor's Theses in Mathematical Sciences NUMK11 20231Centre for Mathematical Sciences
Mathematics (Faculty of Sciences)
- Abstract
- This work begins by motivating why one would consider using error-based control for a numerical solver. An introduction to some of the preliminary theory for studying numerical methods is given, after which, the relevant theory pertaining to the Runge-Kutta methods and error-based controllers used in this work is covered as well. Furthermore, it is motivated why the solver is implemented the way it is in Python. The effectiveness of the solver is then tested across several different problems including the linear test equation, the double pendulum, a nonlinear ODE problem, and a stiff problem. The results are compared with a benchmark solver from SciPy and are found to be comparable with the solver that is implemented, suffering from... (More)
- This work begins by motivating why one would consider using error-based control for a numerical solver. An introduction to some of the preliminary theory for studying numerical methods is given, after which, the relevant theory pertaining to the Runge-Kutta methods and error-based controllers used in this work is covered as well. Furthermore, it is motivated why the solver is implemented the way it is in Python. The effectiveness of the solver is then tested across several different problems including the linear test equation, the double pendulum, a nonlinear ODE problem, and a stiff problem. The results are compared with a benchmark solver from SciPy and are found to be comparable with the solver that is implemented, suffering from relatively small errors. However, it is noted that ill-suited controller parameters caused disturbances in the results in some cases. In the case of the nonlinear ODE problem and stiff test problem, a further comparison is made with a similar implementation in Julia that uses the same error-based controller which presented noteworthy, if inconclusive, findings. A discussion of the considerations made and difficulties that were encountered with the solver in the Python and Julia implementations studied is presented as well. (Less)
Please use this url to cite or link to this publication:
http://lup.lub.lu.se/student-papers/record/9149706
- author
- Zafari, Adrian LU
- supervisor
- organization
- course
- NUMK11 20231
- year
- 2024
- type
- M2 - Bachelor Degree
- subject
- keywords
- Automatic Control, Runge-Kutta methods, Time-Stepping, Adaptivity, Controller, Initial value problem, Feedback Control, Control Theory
- publication/series
- Bachelor's Theses in Mathematical Sciences
- report number
- LUNFNA-4054-2023
- ISSN
- 1654-6229
- other publication id
- 2023:K31
- language
- English
- id
- 9149706
- date added to LUP
- 2024-04-23 15:32:27
- date last changed
- 2024-04-23 15:32:27
@misc{9149706, abstract = {{This work begins by motivating why one would consider using error-based control for a numerical solver. An introduction to some of the preliminary theory for studying numerical methods is given, after which, the relevant theory pertaining to the Runge-Kutta methods and error-based controllers used in this work is covered as well. Furthermore, it is motivated why the solver is implemented the way it is in Python. The effectiveness of the solver is then tested across several different problems including the linear test equation, the double pendulum, a nonlinear ODE problem, and a stiff problem. The results are compared with a benchmark solver from SciPy and are found to be comparable with the solver that is implemented, suffering from relatively small errors. However, it is noted that ill-suited controller parameters caused disturbances in the results in some cases. In the case of the nonlinear ODE problem and stiff test problem, a further comparison is made with a similar implementation in Julia that uses the same error-based controller which presented noteworthy, if inconclusive, findings. A discussion of the considerations made and difficulties that were encountered with the solver in the Python and Julia implementations studied is presented as well.}}, author = {{Zafari, Adrian}}, issn = {{1654-6229}}, language = {{eng}}, note = {{Student Paper}}, series = {{Bachelor's Theses in Mathematical Sciences}}, title = {{Implementation of an Explicit Runge-Kutta Solver With Adaptive Time-Stepping Based On Error Control}}, year = {{2024}}, }