Algorithmique et programmation
Python pour les mathématiques : boucles, fonctions, simulations probabilistes et algorithmes classiques.
Structures de base en Python
Boucle for
for i in range(n): # i prend les valeurs 0, 1, ..., n-1
# bloc
Boucle while
while condition:
# bloc
Fonctions
def f(x):
return x**2 + 1
Algorithmes mathématiques classiques
Suite par récurrence
u = 1 # u_0
for n in range(10):
u = 0.5 * u + 1
print(u) # approximation de la limite
Dichotomie
def dichotomie(f, a, b, eps=1e-6):
while b - a > eps:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m
else:
a = m
return (a + b) / 2
Algorithme d’Euclide
def pgcd(a, b):
while b != 0:
a, b = b, a % b
return a
Simulation probabiliste
Lancer de dé
import random
def simulation(n):
count = 0
for _ in range(n):
if random.randint(1, 6) == 6:
count += 1
return count / n
print(simulation(10000)) # ≈ 1/6
Simulation loi binomiale
import random
def binomiale(n, p, nb_essais=10000):
resultats = []
for _ in range(nb_essais):
k = sum(1 for _ in range(n) if random.random() < p)
resultats.append(k)
return resultats
Calcul numérique de l’intégrale (méthode des rectangles)
def integrale(f, a, b, n=1000):
h = (b - a) / n
s = sum(f(a + i * h) for i in range(n))
return s * h
Bonnes pratiques
- Utiliser des noms de variables explicites
- Tester les cas limites
- Commenter les blocs importants
- Vérifier les résultats par des estimations théoriques