Semaine 3 · Jour 2 · En savoir plus

LE CALCUL
SCIENTIFIQUE AVANCÉ

Cinq fonctions qui vont plus loin qu'ajuster et prédire

Au-delà de la prédiction

Équations différentielles
Intégration & dérivation
Résolution & optimisation
Fourier (FFT)
Monte-Carlo

Ajuster une courbe et prédire, c'est déjà beaucoup. Mais la bibliothèque scipy ouvre une boîte à outils bien plus large : modéliser le temps, intégrer, optimiser, analyser des signaux, estimer par le hasard. Voici cinq fonctions qui calculent le monde.

Équations différentielles : solve_ivp

from scipy.integrate import solve_ivp # un cafe qui refroidit : dT/dt = -k (T - ambiante) def variation(temps, temperature): return -0.1 * (temperature - 20) solution = solve_ivp(variation, [0, 60], [90], t_eval=np.linspace(0, 60, 100))

On décrit comment une quantité change (sa variation à chaque instant), et solve_ivp calcule son évolution dans le temps. C'est LE vrai « prédire le futur » : refroidissement, croissance d'une population, chute d'un objet, propagation d'une épidémie.

Intégrer & dériver, sans formule

Aire sous la courbe
# distance = aire sous v(t) distance = np.trapz(vitesses, temps)
Pente locale
# vitesse = pente de x(t) vitesses = np.gradient(positions, temps)

Le calcul intégral et différentiel directement sur des mesures : np.trapz additionne l'aire sous la courbe (une quantité accumulée), np.gradient donne la pente en chaque point (un taux de variation). Aucune formule à dériver à la main.

Résoudre & optimiser

f(x) = 0 ?
from scipy.optimize import brentq racine = brentq(fonction, 0, 10)
Le minimum d'une fonction
from scipy.optimize import minimize resultat = minimize(cout, [1.0])

brentq trouve où une fonction s'annule (un équilibre, une intersection, une racine) sans calcul à la main. minimize cherche le minimum d'une fonction : minimiser un coût, une erreur, maximiser un rendement (en minimisant son opposé).

Fourier : les fréquences cachées

# un signal = somme de vibrations spectre = np.fft.fft(signal) frequences = np.fft.fftfreq(len(signal), pasDeTemps) # le pic du spectre = la frequence dominante
spectre

La transformée de Fourier décompose un signal en ses fréquences : elle révèle des cycles cachés qu'on ne voit pas à l'œil. On l'utilise pour les sons, les marées, les cycles saisonniers, le filtrage du bruit.

Monte-Carlo : estimer par le hasard

# estimer pi : des points au hasard dans un carre points = np.random.rand(100000, 2) distances = np.sqrt(points[:, 0]**2 + points[:, 1]**2) interieur = np.sum(distances <= 1) pi_estime = 4 * interieur / 100000 # ≈ 3.14159

Quand une formule est trop dure, on tire au hasard des milliers de fois et on compte. Ici, la proportion de points qui tombent dans le quart de cercle donne π. La méthode de Monte-Carlo estime des aires, des risques, des intégrales impossibles autrement.

Quelle fonction pour quel besoin ?

Tu veux...Outil
prédire une évolution dans le tempsscipy.integrate.solve_ivp
une aire / un taux de variationnp.trapz · np.gradient
résoudre une équation (f(x)=0)scipy.optimize.brentq
minimiser / optimiserscipy.optimize.minimize
analyser un signal / des cyclesnp.fft.fft
estimer par le hasardnp.random + comptage

Ces fonctions sont le cœur du calcul scientifique : derrière une météo, une fusée, un médicament ou une simulation, il y en a toujours quelques-unes au travail.

À EXPLORER !

Chaque fonction tient en une ligne - choisis-en une et essaie-la dans ton carnet
⤺ Refermer le diaporama