Laboratoire de modélisation par morceaux

Utilise deux règles linéaires séparées en x = c, puis évalue les valeurs et le comportement du saut.

Chargement de la simulation interactive...

Leçon

La théorie — Laboratoire de modélisation par morceaux

Une fonction définie par morceaux n’est pas une règle avec une exception ; ce sont deux règles complètes, plus l’indication de celle qui s’applique où. Ici une règle linéaire gouverne tout ce qui est en dessous d’un point de rupture c et une seconde gouverne tout à partir de c. La question intéressante n’est jamais ce que fait chaque morceau — ce sont de simples droites — mais ce qui se passe à la couture.

Ce que signifie chaque symbole

c
le point de rupture : l’entrée à laquelle la règle change.
f(c⁻)
vers quoi tend le morceau de gauche quand x approche c par en dessous. C’est une limite, pas une valeur : en c, la règle de gauche ne s’applique plus.
f(c⁺)
la valeur que prend réellement le morceau de droite en c, et donc la valeur de la fonction en ce point.
jump
f(c⁺) − f(c⁻). Nul exactement quand les deux morceaux se rejoignent.

D’où vient la formule

  1. Écrivez la définition avec sa condition : f(x) = m₁x + b₁ pour x < c, et f(x) = m₂x + b₂ pour x ≥ c. Notez à quel morceau appartient le point de rupture lui-même — ici celui de droite, ce qui explique le cercle creux sur la branche gauche et le point plein sur la droite.
  2. En c, la fonction a une valeur donnée par la règle de droite, m₂c + b₂. La règle de gauche n’y a pas de valeur, mais elle a une destination : lorsque x monte vers c, m₁x + b₁ tend vers m₁c + b₁. C’est la limite à gauche.
  3. La continuité en un point signifie que les limites des deux côtés et la valeur coïncident. Ici la limite à droite et la valeur sont une seule et même chose : deux des trois sont donc automatiques, et toute la condition se réduit à une équation, m₁c + b₁ = m₂c + b₂.
  4. Une équation, et n’importe quel coefficient peut être déplacé pour la satisfaire : b₂ = (m₁ − m₂)c + b₁. La continuité est donc toujours atteignable et jamais gratuite — il faut y consacrer un paramètre. Quand on ne le fait pas, le reliquat est exactement ce que l’affichage appelle le saut : (m₂c + b₂) − (m₁c + b₁).

Comment lire ce que vous voyez

Le segment bleu est la règle de gauche et l’orange celle de droite, chacun tracé aussi loin que sa propre condition l’autorise. Au point de rupture, la branche bleue s’achève par un cercle creux — une destination qu’elle n’occupe jamais — et l’orange commence par un point plein, la valeur réelle de f(c). Quand les deux coïncident, les cercles se superposent et la ligne du saut affiche 0. Le point turquoise est f(x₀) pour ce que vous mettez dans la case d’évaluation, et les trois dernières lignes traduisent l’image en nombres : si les morceaux se rejoignent, de combien la pente change au passage, et si la marche descendante crée une plage d’entrées qui coûtent plus cher que le point de rupture lui-même.

Suppose
Les deux morceaux sont des droites, il y a exactement un point de rupture, et il est situé à un endroit connu. La convention semi-ouverte compte et relève d’un choix : la règle de droite possède x = c, donc f(c) vaut m₂c + b₂. Inversez la convention et la valeur au seul point c change, mais pas le saut.
Ne tient plus quand
La vraie difficulté surgit quand c n’est pas connu mais estimé. Un point de rupture estimé à partir des mêmes données que celles servant à ajuster les droites est un paramètre choisi pour minimiser l’erreur : les erreurs types usuelles de la régression sont alors trop petites et l’ajustement paraît meilleur qu’il ne l’est — c’est précisément pour cela qu’existent les méthodes de régression segmentée. Et un modèle à deux morceaux ne dit rien d’un troisième régime : prolonger l’une des droites au-delà de la plage observée, c’est supposer une règle jamais testée.

La continuité au point de rupture doit être fabriquée 🖖

La ligne du saut mérite toute votre attention : trois des quatre préréglages y affichent une valeur non nulle. Au seuil, le tarif du taxi passe de 13 à 12, la remise entraîne une baisse de 2,5 et la courbe de refroidissement, de 4,8. Dans chaque cas, le passage au tarif le moins cher fait baisser le total. Ici, la continuité n’est pas acquise ; elle résulte d’une égalité précise que vous devez obtenir : m₁c + b₁ = m₂c + b₂. Le préréglage de l’impôt la vérifie volontairement : son second terme constant vaut −2, résultat de la résolution de la condition de continuité par rapport à b₂. Dans le préréglage du taxi, remplacez 8 par 9 pour le second terme constant : le saut vaut alors 0.

Une fonction, deux règles 🖖

Un modèle défini par morceaux utilise une règle linéaire avant le point de rupture c et une autre après — comme un taximètre qui applique d'abord un tarif, puis un tarif moins cher. Les deux morceaux se raccordent sans à-coup seulement s'ils coïncident en c : continu exactement lorsque m1·c + b1 = m2·c + b2. Sinon, l'affichage indique un saut — le graphe bondit vers le haut ou vers le bas à la jointure.

Le coin qui propulse l'apprentissage profond 🖖

La fonction d'activation au cœur de la plupart des réseaux de neurones modernes, ReLU, n'est qu'une fonction linéaire par morceaux : pente 0 tant que x est négatif et pente 1 dès qu'il devient positif, raccordées au point de rupture x = 0. Elle y est continue mais n'a pas de dérivée — un angle vif, non une courbe lisse. Empilez des millions de ces unités et le réseau entier calcule encore une seule et immense fonction linéaire par morceaux continue.

Une remise peut rendre huit plus cher que dix 🖖

Chargez le préréglage de remise sur quantité et regardez la dernière ligne de l’affichage. Le tarif passe de 1,2 à 0,7 à dix unités et le total baisse avec lui : dix unités coûtent 9,5 alors que huit coûtent 9,6. La ligne donne toute la zone : à partir de 7,916667 unités et jusqu’au point de rupture, vous payez plus que si vous en commandiez simplement dix. Tout saut vers le bas crée un tel intervalle, et c’est une chose étrange à inscrire dans une grille tarifaire, car elle récompense le client qui en veut huit d’en commander dix et d’emporter les deux autres pour rien. Voilà la raison pratique de vérifier la continuité, et non une raison décorative. Passez au préréglage de refroidissement et la ligne indique qu’il n’existe aucune zone de ce type — une branche descendante ne remonte jamais au-dessus de la valeur vers laquelle elle se dirige.

Problème entièrement résolu

  1. Un seuil tarifaire à 5 et la plage où acheter plus coûte moins cher 6 étapes

    Un tarif applique 2x + 3 en dessous d'un point de rupture situé à 5 et 0,8x + 8 au-dessus. Calculez la valeur en 7 — puis trouvez l'intervalle où acheter plus coûte moins cher.

    1. Deux droites et une règle déterminant celle qui s'applique. La seule précaution concerne la frontière : en x = 5 exactement, c'est la seconde branche qui s'applique.

    2. Approchez le point de rupture des deux côtés. La limite à gauche et la valeur réelle diffèrent, et l'ampleur de ce désaccord constitue le saut.

    3. Les pentes diffèrent également, et ce de façon indépendante. Une fonction peut être continue avec un point anguleux, ou présenter un saut sans point anguleux ; celle-ci fait les deux.

    4. Passons maintenant à la question intéressante. Déterminons où la première branche a déjà dépassé la valeur initiale de la seconde branche.

    5. Cette inégalité est vérifiée de 4,5 jusqu'au point de rupture, et sur tout cet intervalle, l'achat le plus grand est le moins cher.

    6. La condition qui éliminerait cette fenêtre mérite d'être formulée, car c'est celle à laquelle satisfait un barème bien conçu.

    Réponse

    13,6, et entre 4,5 et 5, il faut toujours acheter 5. La seconde branche commence à 12 alors que la première continue de monter au-delà, de sorte que quiconque se trouve dans cette fenêtre paie plus pour avoir moins. Cette fenêtre n'est pas un artefact d'arrondi — elle représente 10% de l'ensemble de la première tranche, et c'est exactement ce qu'engendre un tarif discontinu. Les barèmes réels l'évitent en raccordant les morceaux : la continuité exige b₂ − b₁ = (m₁ − m₂)c, ce qui nécessiterait ici que 5 soit égal à 6. Les tranches d'imposition marginales sont conçues ainsi à dessein, c'est pourquoi l'idée reçue selon laquelle une augmentation peut réduire votre salaire net est fausse pour l'impôt sur le revenu et vraie pour presque toutes les remises sur quantité jamais imprimées.

Références (2)

Exemples de problèmes

  • modèle de tarif de taxi - Avant le seuil fixé à 5, la fonction vaut 2x + 3 ; après, elle vaut 0,8x + 8. Lorsque vous le franchissez, la valeur passe de 13 à 12. Remplacez 8 par 9 pour le second terme constant : le saut devient nul.
  • modèle de remise sur volume - Le prix est de 1,2 par unité jusqu’à dix unités, puis de 0,7 avec un terme constant de 2,5 : 10 unités coûtent 9,50, contre 9,60 pour 8 unités. Au-delà de 7,916667 unités, il est toujours moins avantageux de commander la quantité exacte que d’en commander simplement 10.
  • phases de refroidissement - Un modèle décroissant, de pente -0,5 puis -0,1, avec une baisse de 4,8 au seuil. C’est le seul préréglage pour lequel l’outil ne signale aucune zone de surcoût, puisqu’une branche décroissante ne peut dépasser ses valeurs antérieures.
  • tranche d’imposition marginale - Le seul préréglage sans saut : 20% jusqu’à 10 et 40% au-delà, avec la seconde ordonnée à l’origine à −2 pour que les morceaux se rejoignent exactement