La librairie SciPy ajoute à NumPy des fonctionnalités mathématiques.
import scipy as sp
from scipy import optimize from scipy import interpolate from scipy import integrate ...
La libraire SciPy est particulièrement intéressante pour ces méthodes numériques :
Des informations générales sur ces techniques numériques peuvent être trouvées notamment sur le site de Numerical Recipes. En particulier, les anciennes éditions sont accessibles gratuitement à la lecture. Les méthodes et algorithmes sont transposables à des langages comme le Python, y compris avec l'utilisation de librairies comme SciPy.
La librairie scipy.integrate propose plusieurs programmes permettant de calculer des intégrales définies et intégrer des équations différentielles ordinaires (ODE)
Exemple de calcul avec quad :
#!/usr/bin/env python # -*- coding: utf-8 -*- """ Intégration numérique. Références : http://docs.scipy.org/doc/scipy/reference/integrate.html http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.html quad retourne un tuple dont le premier élément est l'intégrale définie calculée """ from scipy.integrate import quad def f(x): return x**4. I = quad(f,0,2) print(I, I[0])
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ https://docs.scipy.org/doc/scipy-1.0.0/reference/constants.html """ import scipy.constants for key, val in scipy.constants.physical_constants.items(): print(key, val) print(key, scipy.constants.value(key), scipy.constants.unit(key), scipy.constants.precision(key)) print(scipy.constants.find('Boltzmann')) print(scipy.constants.Boltzmann) print(scipy.constants.physical_constants['Boltzmann constant']) print(scipy.constants.value('Boltzmann constant')) print(scipy.constants.unit('Boltzmann constant')) print(scipy.constants.precision('Boltzmann constant'))