Cours de Maths complémentaires

Algorithmique et programmation

Les programmes attendus en maths complémentaires : seuils, sommes, méthode des rectangles, simulations et calculs statistiques.

Avant de commencer

  • Écrire une boucle et une fonction en Python.
  • Manipuler une liste.

À la fin du chapitre, tu sais

  • Programmer la recherche d'un seuil.
  • Calculer une somme de termes d'une suite.
  • Approcher une intégrale par la méthode des rectangles.
  • Simuler une expérience aléatoire et estimer une probabilité.
Sommaire

I. Les briques du langage

Aucune notion nouvelle n'apparaît dans cette partie du programme. Les exercices combinent des structures déjà connues, appliquées aux thèmes de l'option.

PropriétéStructures utiles
structureusage
fornombre de répétitions connu
whilerecherche de seuil
listetermes d'une suite, échantillon, série statistique
fonctionbrique réutilisable, avec return
Attention

L'instruction return doit se trouver après la boucle, et non à l'intérieur : placée trop tôt, elle interrompt la fonction dès le premier tour.

II. Suites et seuils

ExempleRecherche de seuil

Pour la suite définie par u0=5000u_0=5\,000 et un+1=0,9un+300u_{n+1}=0{,}9\,u_n+300 :

def seuil(limite):
    u = 5000
    n = 0
    while u > limite:
        u = 0.9 * u + 300
        n = n + 1
    return n

La fonction renvoie le nombre d'années nécessaires pour passer sous la valeur demandée.

ExempleSomme de termes
def somme_geometrique(u0, q, n):
    somme = 0
    terme = u0
    for i in range(n + 1):
        somme = somme + terme
        terme = terme * q
    return somme

Le résultat s'approche de u01q\dfrac{u_0}{1-q} lorsque nn grandit, si la raison qq est comprise entre 00 et 11.

III. Analyse

ExempleMéthode des rectangles
def rectangles(f, a, b, n):
    pas = (b - a) / n
    somme = 0
    for i in range(n):
        somme = somme + f(a + i * pas) * pas
    return somme

Pour une fonction croissante, ce calcul minore l'intégrale ; en partant de range(1, n + 1), il la majore, ce qui fournit un encadrement.

ExempleBalayage pour résoudre une équation
def balayage(f, a, b, pas):
    x = a
    while f(x) < 0 and x < b:
        x = x + pas
    return x - pas, x

La fonction renvoie un encadrement de la solution, d'amplitude égale au pas choisi.

IV. Probabilités et statistiques

ExempleSimulation d'une loi géométrique
from random import random

def rang_premier_succes(p):
    n = 1
    while random() >= p:
        n = n + 1
    return n

En moyennant les résultats de nombreux appels, on retrouve l'espérance théorique 1p\dfrac{1}{p}.

ExempleLoi binomiale
from math import comb

def p_egal(n, p, k):
    return comb(n, k) * p ** k * (1 - p) ** (n - k)
ExemplePoint moyen d'une série double
def point_moyen(X, Y):
    return sum(X) / len(X), sum(Y) / len(Y)

Ce point appartient toujours à la droite des moindres carrés, ce qui permet de vérifier une équation obtenue à la calculatrice.

Passer à la pratique

9 exercices corrigés sur ce chapitre.