Vue d'ensemble

SciPy 1.8, publié le 6 février 2022, apporte de nouvelles fonctions d'algèbre linéaire et améliore les performances des solveurs.

Fonctionnalités principales

Nouvelles fonctions d'algèbre linéaire

Le module scipy.linalg ajoute de nouvelles décompositions et des solveurs optimisés pour les systèmes linéaires structurés.

python
from scipy import linalg
import numpy as np

# Décomposition LU
A = np.array([[2, 1, 1], [4, 3, 3], [8, 7, 9]], dtype=float)
P, L, U = linalg.lu(A)
print(f'L diagonal: {np.diag(L)}')

# Résolution de système linéaire
b = np.array([1, 2, 3], dtype=float)
x = linalg.solve(A, b)
print(f'Solution: {x}')

Optimisations de performance

Les solveurs d'optimisation et d'intégration ont été accélérés grâce à une meilleure utilisation des bibliothèques BLAS/LAPACK sous-jacentes.

python
from scipy import optimize
import numpy as np

# Minimisation de fonction
def rosenbrock(x):
    return (1 - x[0])**2 + 100 * (x[1] - x[0]**2)**2

result = optimize.minimize(
    rosenbrock, x0=[0, 0], method='L-BFGS-B'
)
print(f'Minimum: {result.x}')  # ~[1, 1]
print(f'Valeur: {result.fun:.6f}')  # ~0

Sources