Équations différentielles

Résoudre les équations du programme et déterminer une solution avec une condition initiale.

Télécharger le PDF
Un mot d’encouragement, si tu en as besoin

Tu peux avancer à ton rythme. Une difficulté ne définit pas ce dont tu es capable.

Trouver du soutien
Avant de commencer5 questions pour vérifier tes bases
1. Quelle fonction a pour dérivée 2x sur ℝ ?
2. Quelle est la dérivée de f(x)=e^(2x) sur ℝ ?
3. Si u et v sont dérivables, quelle formule donne la dérivée de uv ?
4. Quelle est la solution de 2x − 6 = 0 ?
5. Pour f(x)=x²−2 sur [−1 ; 3], quelles sont les images des deux bornes ?

Pourquoi étudier les équations différentielles ?

De quoi parle-t-on ?

Une équation différentielle est une équation où l'inconnue est une fonction \(y(t)\) et où interviennent \(y\) et ses dérivées \(y'\), \(y''\), etc. Elle permet de modéliser de nombreuses évolutions continues, lorsque les hypothèses du modèle relient une grandeur à ses variations.

En Terminale, on étudie notamment \(y'=ay+b\), avec \(a\) et \(b\) constants, et \(y'=ay+f(t)\) à partir d'une solution particulière.

Les applications concrètes

Schéma : Les applications concrètes

Ces lois sont des modèles sous hypothèses : taux constants, milieu stable et grandeurs suffisamment régulières. Une croissance exponentielle de population peut être pertinente sur une durée limitée ; elle ne garantit pas des ressources illimitées. Les paramètres se mesurent et le modèle doit être comparé aux observations.

En physique nucléaire : dans un modèle de décroissance radioactive, le nombre moyen \(N(t)\) de noyaux non désintégrés vérifie \(N'(t)=-\lambda N(t)\), avec \(\lambda>0\). La solution est \(N(t)=N_0\e^{-\lambda t}\). Le nombre réel de noyaux évolue par désintégrations individuelles ; la fonction continue décrit ici une moyenne.

En biologie : une population de bactéries se multiplie proportionnellement à sa taille : \(P'(t)=kP(t)\). Solution : \(P(t)=P_0\e^{kt}\) (croissance exponentielle). C'est le modèle de Malthus.

En thermodynamique : un objet chaud refroidit vers la température ambiante \(T_a\) avec \(T'(t)=-k(T(t)-T_a)\). C'est la loi de refroidissement de Newton, une équation \(y'=ay+b\).

En électricité : le circuit RC obéit à \(u'(t)+\frac{1}{RC}u(t)=\frac{E}{RC}\), où \(u\) est la tension aux bornes du condensateur. C'est une équation \(y'=ay+b\).

L'idée directrice

Schéma : L'idée directrice

L'idée avant la formule

Chercher une fonction à partir de sa dérivée

Un faisceau de courbes

Schéma : Un faisceau de courbes

Chaque petit segment indique une pente égale à sa hauteur \(y\). À hauteur égale, la pente est la même, quelle que soit l'abscisse. Les courbes doivent suivre ces directions ; le point de départ les distingue.

L'équation \(y'=ay+b\) : évolution vers un équilibre

Le cours formel

Qu'est-ce qu'une équation différentielle ?

L'équation \(y'=f\) : lien avec les primitives

L'équation \(y'=ay\) : croissance et décroissance exponentielles

Structure des solutions de \(y'=ay\)

Le calcul par combinaison linéaire est accessible avec la dérivation. Les mots « espace vectoriel » et « dimension » ci-dessous sont un approfondissement de vocabulaire ; ils ne sont pas nécessaires pour résoudre les exercices du socle.

Le problème de Cauchy : condition initiale

L'équation \(y'=ay+b\) : évolution vers un équilibre

Principe de superposition : solution générale \(=\) homogène \(+\) particulière

Un second membre qui dépend du temps

Signe et variations des solutions

Vérifier qu'une fonction est solution, retrouver une ED

Temps caractéristiques

Le problème de Cauchy pour \(y'=ay+b\)

Pour \(a=0\), l'unique solution est \(y(t)=y_0+b(t-t_0)\). On choisit ce cas avant d'utiliser une formule contenant \(1/a\).

Mise sous forme canonique

Résumé graphique : allure des solutions

Construire une approximation : la méthode d'Euler

Observer l'effet du pas. Avant d'ouvrir le laboratoire, prévois si le premier pas dépasse l'équilibre 1 quand \(h=0{,}5\), puis quand \(h=1{,}5\). Change ensuite le rang : la trajectoire exacte oscille-t-elle, ou est-ce la simulation ?

Changer le pas : comprendre la méthode d’Euler

On cherche y′ = 1 − y avec y(0) = 0. La solution exacte se rapproche de 1. Prévois le premier résultat d’Euler avec un pas de 0,5, puis de 1,5 : la simulation reste-t-elle sous 1 ?

Bleu : solution exacte y(t) = 1 − exp(−t). Corail : points et segments d’Euler. Pointillés : équilibre y = 1. L’axe du temps s’adapte au dernier instant ; l’axe vertical reste de −2 à 4. Les valeurs hors fenêtre figurent dans le tableau.

Euler donne yₙ₊₁ = yₙ + h(1 − yₙ), à l’instant tₙ = nh. Avec h = 0,5, les premières valeurs sont 0 ; 0,5 ; 0,75 ; 0,875. Avec h = 1,5, elles sont 0 ; 1,5 ; 0,75 ; 1,125. La solution exacte reste pourtant strictement sous 1 à tout instant fini.

Lire les valeurs et les coordonnées

Euler donne yₙ₊₁ = yₙ + h(1 − yₙ), à l’instant tₙ = nh. Avec h = 0,5, les premières valeurs sont 0 ; 0,5 ; 0,75 ; 0,875. Avec h = 1,5, elles sont 0 ; 1,5 ; 0,75 ; 1,125. La solution exacte reste pourtant strictement sous 1 à tout instant fini.

Soustrais 1 dans la relation d’Euler : yₙ₊₁ − 1 = (1 − h)(yₙ − 1). Relie le signe et la valeur absolue de 1 − h aux dépassements et à leur amplitude. Changer le pas change l’approximation, pas l’équation ni sa solution exacte.

Schéma : Construire une approximation : la méthode d'Euler

Le polygone d'Euler joint les points calculés par des segments. Dans le second cas, il traverse l'équilibre ; la vraie solution reste strictement entre 0 et 1 pour \(t>0\), et vaut 0 en \(t=0\). La figure n'autorise aucune modification de la loi exacte.

from math import isfinite

def euler(F, t0, y0, T, n):
    if type(n) is not int or n < 1:
        raise ValueError("n doit etre un entier positif")
    if not all(isfinite(v) for v in (t0, y0, T)) or T <= t0:
        raise ValueError("donnees finies et T > t0 attendus")
    h = (T-t0)/n
    if not isfinite(h) or h <= 0:
        raise ValueError("pas non representable")
    y = y0
    points = [(t0, y)]
    for k in range(n):
        t = t0+k*h
        suivant = T if k == n-1 else t0+(k+1)*h
        if not t < suivant:
            raise ValueError("dates confondues par arrondi")
        pente = F(t, y)
        if not isfinite(pente):
            raise ValueError("pente non finie")
        y = y + (suivant-t)*pente
        if not isfinite(y):
            raise ValueError("valeur non finie")
        points.append((suivant, y))
    return points

Le code avance jusqu'à \(T\) en \(n\) pas, avec les écarts effectifs des dates flottantes. Ses contrôles d'entrées ne prouvent ni l'existence d'une solution ni la précision de l'approximation.

Tableau récapitulatif

Boîte à outils : Réflexes pour le bac

Dans les deux tableaux qui suivent, les écritures de l'équilibre supposent \(a\neq0\). Pour la demi-vie, \(a<0\) et \(y_0>0\) ; pour une relaxation affine, on applique la demi-vie à la distance à l'équilibre.