====== Les bases de SciPy====== La librairie SciPy ajoute à NumPy des fonctionnalités mathématiques. ===== Directive d'importation ==== * Méthode standard : import scipy as sp * Importation par sous-modules (//cf// le [[http://docs.scipy.org/doc/scipy/reference/api.html#guidelines-for-importing-functions-from-scipy|site de Scipy]]) : from scipy import optimize from scipy import interpolate from scipy import integrate ... ===== Fonctionnalités ===== La libraire SciPy est particulièrement intéressante pour ces méthodes numériques : * intégrales numériques * intégration d'équations différentielles ordinaires * Recherche de racines d'équations * minimisation de fonctions * modélisation par moindres carrés * fonctions spéciales * transformées de Fourier * analyse du signal * interpolation * algèbre linéaire, y compris les problèmes aux valeurs propres et vecteurs propres Des informations générales sur ces techniques numériques peuvent être trouvées notamment sur le site de [[http://www.nr.com/|Numerical Recipes]]. En particulier, les anciennes éditions sont [[http://www.nrbook.com/a/bookcpdf.php|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. ===== Intégrales définies ===== La librairie [[http://docs.scipy.org/doc/scipy/reference/integrate.html|scipy.integrate]] propose plusieurs programmes permettant de calculer des intégrales définies et intégrer des [[http://fr.wikipedia.org/wiki/%C3%89quation_diff%C3%A9rentielle|é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]) ===== Constantes physiques ===== #!/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')) ===== Références ===== * [[http://docs.scipy.org/doc/scipy/reference/tutorial/index.html|SciPy tutorial]] * [[http://docs.scipy.org/doc/scipy/reference/index.html|Reference guide]] * [[http://scipy-lectures.github.io/intro/scipy.html|Scipy : high-level scientific computing]], de Adrien Chauve, Andre Espaze, Emmanuelle Gouillart, Gaël Varoquaux, Ralf Gommers * [[http://wiki.scipy.org/Cookbook|Cookbook]] * [[http://wiki.scipy.org/Cookbook/LoktaVolterraTutorial?action=show&redirect=LoktaVolterraTutorial|Lotka-Volterra]] * [[http://wiki.scipy.org/Cookbook/BrownianMotion|Mouvement brownien]] * [[https://uiuc-cse.github.io/2014-01-30-cse/lessons/thw-scipy/tutorial.html]]