Aller au contenu principal

Introduction à Scipy

Introduction à Scipy

Dans ce tutoriel, nous allons explorer les bases de Scipy, une puissante bibliothèque de calcul scientifique pour Python. Scipy propose une large gamme de fonctions pour les mathématiques, les sciences et les applications d'ingénierie. Nous aborderons les sous-thèmes suivants :

  1. Installation : Comment installer la bibliothèque Scipy sur votre système.
  2. Importation de Scipy : Apprenez comment importer la bibliothèque Scipy et ses sous-modules.
  3. Algèbre linéaire : Effectuez des opérations d'algèbre linéaire de base à l'aide de Scipy.
  4. Intégration numérique : Comprenez comment intégrer numériquement des fonctions avec Scipy.
  5. Optimisation : Utilisez Scipy pour résoudre des problèmes d'optimisation.
  6. Interpolation : Apprenez les techniques d'interpolation avec Scipy.

Commençons !

1. Installation

Avant d'utiliser Scipy, vous devez vous assurer qu'il est installé sur votre système. Ouvrez votre terminal et exécutez la commande suivante :

pip install scipy

2. Importation de Scipy

Pour commencer à utiliser Scipy, importez-le ainsi que les sous-modules spécifiques dont vous avez besoin. Voici un exemple d'importation de Scipy et du sous-module linalg (algèbre linéaire) :

import scipy
from scipy import linalg

3. Algèbre linéaire

Le sous-module d'algèbre linéaire de Scipy (scipy.linalg) propose différentes fonctions pour les opérations d'algèbre linéaire de base. Explorons quelques exemples :

Inversion de matrices

import numpy as np
from scipy import linalg

A = np.array([[1, 2], [3, 4]])
A_inv = linalg.inv(A)

print(A_inv)

Sortie :

[[-2.   1. ]
[ 1.5 -0.5]]

Valeurs propres et vecteurs propres

import numpy as np
from scipy import linalg

A = np.array([[1, 2], [3, 4]])
valeurs_propres, vecteurs_propres = linalg.eig(A)

print("Valeurs propres :", valeurs_propres)
print("Vecteurs propres :", vecteurs_propres)

Sortie :

Valeurs propres : [-0.37228132+0.j  5.37228132+0.j]
Vecteurs propres : [[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]

4. Intégration numérique

Le sous-module d'intégration de Scipy (scipy.integrate) nous permet d'effectuer des intégrations numériques. Voyons un exemple utilisant la fonction quad :

from scipy import integrate

résultat, erreur = integrate.quad(lambda x: x**2, 0, 2)

print("Résultat :", résultat)
print("Erreur :", erreur)

Sortie :

Résultat : 2.666666666666667
Erreur : 2.960594732333751e-14

5. Optimisation

Le sous-module d'optimisation de Scipy (scipy.optimize) propose des outils puissants pour résoudre des problèmes d'optimisation. Voici un exemple utilisant la fonction minimize :

from scipy import optimize

def f(x):
return (x[0] - 1)**2 + (x[1] - 2.5)**2

estimation_initiale = [0, 0]
résultat = optimize.minimize(f, estimation_initiale)

print(résultat)

Sortie :

      fun: 4.429571755037639e-22
hess_inv: array([[0.49999999, 0.99999999],
[0.99999999, 2. ]])
jac: array([ 1.33226763e-08, -6.77626358e-08])
message: 'Optimization terminated successfully.'
nfev: 63
nit: 9
njev: 21
status: 0
success: True
x: array([1.00000002, 2.49999994])

6. Interpolation

Le sous-module d'interpolation de Scipy (scipy.interpolate) nous permet d'effectuer des interpolations de données. Voyons un exemple utilisant la fonction interp1d :

import numpy as np
from scipy import interpolate

x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([0, 2, 4, 6, 8, 10])

f = interpolate.interp1d(x, y)

x_nouveau = np.array([1.5, 3.7])
y_nouveau = f(x_nouveau)

print("Valeurs interpolées :", y_nouveau)

Sortie :

Valeurs interpolées : [ 3.  7.4]

Félicitations ! Vous avez maintenant appris les bases de Scipy. Expérimentez avec ces concepts et explorez les vastes fonctionnalités offertes par Scipy pour améliorer davantage vos compétences en calcul scientifique.