## D   A   T   A   W   O   K

Creation: March 16 2019
Modified: November 26 2019

# Numerical Analysis with Python and Octave

Under the name Numerical Analysis identifies the study of numerical methods for the resolution of complex problems.

The numerical methods are algorithms executable by a machine, that allows a, usually approximate, resolution of complex physical and mathematical issues.

The evaluation of a numerical method is mainly done on the basis of two key features:

• Accuracy: how much the results obtained from the application of the resolutive method are accurate.
• Effectiveness: computational cost of the method. Is the time necessary to the method to terminate with an acceptable result.

These two evaluation criteria give rise to what can be defined as the analysis of the solvability of a problem. Indeed is not only necessary to have a method that is able to solve a problem, but the method should be able to return reliable results in a useful time. Otherwise the method used, provided it works, is completely ineffective.

As an example, consider the problem of weather forecasts . Why are, very often, long-term forecasts completely incorrect? The reason is that the numerical calculation method complexity for this problem strongly increases with time. To get answers within acceptable terms (it would be useful to have an answer about the tomorrow weather before tomorrow evening!) many factors necessary for a punctual evaluation are not considered, in this way the resolution time decreases but, obviously, at the expenses of results accuracy.

This short book goes through the foundation problems and resolutions methods that are usually targeted by an undergraduate academic course. All the numerical methods are acompained by both a Python and an Octave implementation.

proudly self-hosted on a cheap Raspberry Pi 2