Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- construire l'interpolant affine par morceaux d'un tableau de données, majorer son erreur par et dire pourquoi sa dérivée discontinue est parfois rédhibitoire;
- compter les inconnues et les conditions d'une spline cubique — contre — et en déduire qu'il reste exactement deux conditions à choisir, puis écrire les deux choix usuels: spline et spline ;
Ce que le chapitre 6 laisse ouvert
Le chapitre 6 a établi deux résultats qui, mis côte à côte, forment une impasse. D'un côté, par points d'abscisses distinctes passe un et un seul polynôme de degré au plus : l'interpolation polynomiale est toujours possible, et elle est unique. De l'autre, la fonction de Runge sur , interpolée sur des nœuds équidistants, donne une erreur maximale de pour , de pour et de pour : . Les nœuds de Tchebychev réparent le cas particulier, mais ils supposent qu'on choisit les abscisses — ce qui n'est jamais le cas devant un tableau de mesures.
Il faut donc renoncer à quelque chose. Le chapitre 6 renonçait au mauvais candidat: il gardait un seul polynôme et déplaçait les nœuds. Ce chapitre renonce au polynôme unique. L'idée est d'une simplicité désarmante — découper l'intervalle et changer de polynôme à chaque morceau — et elle ouvre sur la totalité de ce que les bibliothèques graphiques, les machines-outils et les logiciels de dessin utilisent aujourd'hui.
La seconde moitié du chapitre renonce à autre chose encore: à passer par les points. Quand les ordonnées sont des mesures entachées d'erreur, exiger que la courbe les traverse toutes revient à exiger qu'elle reproduise le bruit. On lui demandera alors de passer près, au sens le plus économique qui soit, et cette seconde histoire aboutira aux équations normales.
L'interpolation affine par morceaux
Commençons par le cas le plus pauvre et le plus utilisé. Donnons-nous une subdivision
et les valeurs .
Son erreur se déduit en trois lignes de la formule d'erreur du chapitre 6. Sur un seul intervalle , l'interpolation en deux nœuds donne, pour de classe ,
et le produit atteint son maximum en module au milieu de l'intervalle, où il vaut . D'où
Démonstration. Fixons . Le polynôme restreint à cet intervalle est l'interpolant de aux deux nœuds et ; la formule d'erreur de l'interpolation à deux nœuds (chapitre 6) fournit un strictement intérieur tel que
La fonction est un trinôme négatif sur l'intervalle, de sommet en , où
Donc . En majorant par et en prenant le maximum sur , on obtient (7.3).
Voilà qui règle la divergence: sur la fonction de Runge, et la borne (7.3) donne , qui tend vers zéro. L'interpolation par morceaux converge toujours, là où l'interpolation globale peut diverger. Le prix à payer est l'ordre: au lieu de la convergence spectaculaire d'un polynôme sur des nœuds bien choisis.
Le vrai défaut de l'interpolant affine: sa dérivée
Le défaut de n'est pas son erreur, c'est sa régularité. En chaque nœud intérieur, la pente saute de à : est continue mais pas dérivable, et sa dérivée seconde est nulle à l'intérieur des morceaux et indéfinie aux nœuds.
Cela peut être sans conséquence — pour lire une table de logarithmes, personne ne s'en soucie — et cela peut être fatal. Si la courbe décrit la trajectoire d'un outil de fraisage, la discontinuité de la pente est un à-coup; si elle décrit le profil d'une came, la discontinuité de la courbure est un choc d'accélération, donc une contrainte et un bruit; si elle sert de tracé routier ou ferroviaire, elle impose au véhicule une variation instantanée d'accélération latérale. La demande naturelle est donc: une courbe de classe , formée de morceaux polynomiaux du plus bas degré possible.
Posons la question en comptant. Sur intervalles, avec des morceaux de degré , il y a coefficients. Les conditions d'interpolation en imposent (chaque morceau doit passer par ses deux extrémités), et la continuité des dérivées d'ordre à aux nœuds intérieurs en impose . Le décompte donne, pour les trois premiers degrés:
| degré | inconnues | conditions pour | différence |
|---|---|---|---|
| 1 | (interpolation seule, ) |
Le degré 1 est rigide: aucune liberté, et pas de dérivée. Le degré 2 offre la classe mais une seule condition libre, qui doit être posée à une extrémité — l'information s'y propage ensuite de proche en proche, ce qui rend la courbe quadratique par morceaux asymétrique et sujette à des oscillations parasites. Le degré 3 offre la classe et deux conditions libres, une par extrémité: c'est le premier degré où le problème est symétrique. C'est la raison profonde pour laquelle la spline cubique est partout, et non un accident historique.
Pourquoi le degré 3 est-il le bon compromis pour une courbe interpolante de classe ?
La spline cubique interpolante
Les quatre coefficients de chaque morceau sont les inconnues. Le théorème qui suit est le décompte, et c'est la plus jolie arithmétique du chapitre: elle explique d'où vient la liberté résiduelle, donc pourquoi il existe plusieurs sortes de splines.
Démonstration. Les inconnues. Chaque morceau est un polynôme de degré au plus 3, donc porte coefficients dans l'écriture (7.4). Il y a morceaux, d'où inconnues. Le point 1 de la définition ne fournit aucune équation: il définit les inconnues.
Les conditions d'interpolation et la continuité de . Écrivons, pour chaque ,
Cela fait équations par morceau, soit équations. Elles contiennent à la fois le point 2 et la continuité de . En effet, est polynomiale donc continue à l'intérieur de chaque morceau; en un nœud intérieur (), (7.6) donne
donc est continue en et y vaut . Aux deux bords, (7.6) donne et . Réciproquement, si est continue et interpole, alors chaque vaut en et en : (7.6) est exactement équivalente au point 2 joint à la continuité de . : chacune contraint un morceau différent ou une extrémité différente d'un même morceau.
La continuité de . À l'intérieur d'un morceau, existe et est continue. Le seul risque est aux nœuds intérieurs , où l'on impose
soit équations. Rien n'est imposé en ni en , qui n'ont pas de voisin de l'autre côté.
La continuité de . Même raisonnement, aux mêmes nœuds:
soit encore équations. Et c'est tout: n'a pas à être continue — elle ne l'est d'ailleurs pas en général, car est constante par morceau et saute d'un morceau à l'autre. Une spline cubique est de classe et pas davantage, sauf coïncidence.
Le total. En additionnant,
pour inconnues. L'ensemble des solutions, s'il est non vide, est donc un sous-espace affine de dimension au moins . Le théorème 7.3 montrera qu'en ajoutant deux équations bien choisies on obtient une solution et une seule: la dimension vaut donc exactement 2, et deux conditions supplémentaires ne sont pas seulement nécessaires, elles suffisent.
Le système tridiagonal des moments
Résoudre directement les équations en les coefficients serait maladroit. Le bon changement d'inconnues est classique et tient à une remarque: la dérivée seconde d'une spline cubique est affine par morceaux et continue, donc entièrement déterminée par ses valeurs aux nœuds.
Sur , est affine et vaut en , en ; donc
Deux intégrations, puis l'ajustement des deux constantes par et , donnent la forme qui sert dans tout le chapitre:
Par construction, (7.12) satisfait déjà l'interpolation (7.6) et la continuité de (7.8), puisque y est l'interpolant affine par morceaux des , qui est continu. Il ne reste donc à imposer que la continuité de .
En dérivant (7.12) et en écrivant , on obtient, après simplification, la relation à trois termes
pour . Le membre de droite est six fois une différence divisée du second ordre: c'est la courbure discrète des données, exactement la quantité que la spline doit répartir.
En posant et , le système s'écrit
où l'on a supposé et connus — c'est précisément le rôle des deux conditions libres.
- Spline naturelle: , et (7.14) est le système complet, de taille .
- Spline encastrée: et ajoutent les deux lignes et le système devient tridiagonal de taille , de même structure.
Démonstration. Dominance diagonale. Sur la ligne de (7.14), le terme diagonal vaut et la somme des modules des termes hors diagonale vaut au plus (elle vaut exactement cela sur les lignes intérieures, et moins sur la première et la dernière). Comme tous les sont strictement positifs,
Pour le système encastré, la première ligne donne et la dernière : la dominance stricte tient aussi.
Une matrice à diagonale strictement dominante est inversible. Supposons avec , et soit un indice où est maximal; alors . La ligne donne , d'où
ce qui est absurde. Donc et est inversible. (C'est le même argument qui, au chapitre 4, donne la convergence de la méthode de Jacobi sous dominance diagonale stricte.)
Conclusion. Le système (7.14) a donc une solution unique . La fonction définie morceau par morceau par (7.12) est alors bien une spline cubique interpolante: elle est cubique sur chaque morceau par construction; elle interpole, car (7.12) vaut en et en ; sa dérivée seconde est l'interpolant affine par morceaux des , donc continue, ce qui est (7.8); et sa dérivée première est continue aux nœuds intérieurs, ce qui est exactement (7.13). Elle est donc de classe . Réciproquement, toute spline naturelle a des moments qui vérifient (7.13) avec , donc coïncide avec celle-ci. Le raisonnement est identique pour la spline encastrée avec les deux lignes (7.15).
def resoudre_tridiagonal(a, b, c, d):
"""Algorithme de Thomas. a: sous-diagonale, b: diagonale, c: sur-diagonale, d: second membre."""
n = len(b)
cp = [0.0] * n
dp = [0.0] * n
cp[0] = c[0] / b[0]
dp[0] = d[0] / b[0]
Comptons exactement. La première ligne coûte deux divisions. Chacune des lignes intérieures en coûte six: une multiplication et une soustraction pour le pivot m, une division pour cp, puis une multiplication, une soustraction et une division pour dp. La dernière ligne n'en coûte que cinq, puisque le garde if i < n - 1 lui épargne la division de cp. La descente vaut donc opérations. La remontée traite lignes à une multiplication et une soustraction chacune, soit . Au total opérations, linéaire en , ce qui est exactement le compte annoncé au chapitre 3 pour l'algorithme de Thomas. Les listes et ont la longueur de la diagonale par commodité, avec et ignorés.
Écrivez l'algorithme de Thomas. La fonction resoudre_tridiagonal(a, b, c, d) reçoit la sous-diagonale, la diagonale, la sur-diagonale et le second membre, et renvoie la solution. Le programme la teste sur un système dont la solution est .
Construisez les moments de la spline cubique naturelle. La fonction moments_naturels(xs, ys) doit assembler le système (7.13), le résoudre avec resoudre_tridiagonal et renvoyer la liste des moments, extrémités nulles comprises. Le programme l'applique aux données de l'exemple 7.1.
L'erreur d'une spline cubique
Ce résultat est admis: sa démonstration complète repose sur une majoration uniforme de l'inverse de la matrice tridiagonale (7.14) en norme infinie, qui relève de la théorie de la perturbation matricielle plutôt que de ce chapitre; on la trouve dans Quarteroni, Sacco et Saleri, chapitre 8, et dans de Boor, A Practical Guide to Splines. Nous nous contenterons ici de la vérifier numériquement, ce qui est d'ailleurs la seule vérification qui protège d'une erreur d'implémentation.
Prenons sur , pour laquelle et . La table suivante donne l'erreur maximale mesurée sur une grille de 4001 points, pour la spline encastrée (exacte aux bords) et pour la spline naturelle (qui impose alors que vaut et ).
| spline encastrée | rapport | spline naturelle | rapport | ||
|---|---|---|---|---|---|
| 2 | 0,5 | — | — | ||
| 4 | 0,25 |
La lecture est sans ambiguïté. La colonne des rapports de la spline encastrée tend vers 16: diviser par deux divise l'erreur par , c'est l'ordre 4. Celle de la spline naturelle tend vers 4: ordre 2 seulement. La différence tient uniquement aux deux conditions de bord, et elle est brutale — à , la spline encastrée est fois plus précise que la naturelle sur les mêmes nœuds.
Vérifions aussi la borne (7.18) elle-même: à elle vaut , à comparer à l'erreur mesurée ; à , elle vaut contre mesurés. La borne est respectée dans les deux cas, avec un facteur de sécurité d'environ 5 — ce qui est le comportement normal d'une majoration uniforme.
Remettez dans l'ordre les étapes du calcul d'une spline cubique naturelle à partir d'un tableau de données.
Glissez les éléments pour les mettre dans le bon ordre
- Assembler le système tridiagonal (7.14) de taille , de diagonale
- Le résoudre par l'algorithme de Thomas, en opérations
- Déduire les coefficients de chaque morceau par les formules (7.17)
- Calculer les pas et les différences divisées secondes
- Évaluer la spline en un point après avoir localisé l'intervalle qui le contient
- Encadrer la solution des deux moments nuls
B-splines, Bézier, et ce que fait vraiment un logiciel de dessin
La forme (7.4) est commode pour calculer mais mauvaise pour manipuler: modifier une donnée change tous les moments, donc tous les morceaux, puisque le système (7.14) est global. Un dessinateur veut l'inverse: bouger un point de contrôle et ne modifier la courbe que localement.
La réponse est un changement de base. On peut montrer que l'espace des splines cubiques sur une subdivision donnée, de dimension , admet une base de fonctions — les B-splines — qui sont elles-mêmes des splines cubiques, positives, de somme égale à 1 en tout point, et à support borné: chaque est nulle en dehors de quatre intervalles consécutifs. Écrire rend la représentation locale: changer ne modifie que quatre morceaux. La matrice du problème d'interpolation devient bande, et le coût reste linéaire.
Une autre famille mérite d'être nommée, parce que c'est celle que les bibliothèques de tracé emploient le plus souvent: la spline cubique d'Hermite par morceaux. On y impose, en chaque nœud, la valeur et la pente; chaque morceau est alors déterminé par ses quatre conditions locales, sans aucun système à résoudre, et la courbe est de classe mais pas . On échange donc une dérivée seconde continue contre la localité et un coût nul — et, si l'on choisit les pentes de façon à préserver la monotonie des données (schéma de Fritsch–Carlson, pchip dans Matlab et SciPy), on obtient en prime une courbe qui n'invente pas d'oscillation entre deux points voisins, ce qu'une spline cubique ordinaire, elle, peut faire.
En pratique, les logiciels de dessin vectoriel et les formats de police n'interpolent d'ailleurs pas: ils approchent. Le tracé d'un chemin en PostScript, en PDF ou en SVG est une suite de courbes de Bézier cubiques, définies par quatre points de contrôle dont deux seulement sont sur la courbe; les deux autres sont les poignées que l'on tire à la souris. Les polices TrueType utilisent des Bézier quadratiques, les polices PostScript et OpenType/CFF des cubiques. La conception assistée par ordinateur et l'usinage emploient les NURBS, qui sont des B-splines rationnelles à poids, parce qu'elles représentent exactement les coniques — un cercle n'est pas une courbe polynomiale, mais c'est une courbe rationnelle. Toute cette famille descend du même décompte que celui du théorème 7.2; ce qui change est la base choisie et le fait d'imposer, ou non, le passage par les points.
On interpole 21 points par une spline cubique. Combien de coefficients le problème comporte-t-il au total, en comptant quatre coefficients par morceau?
Passer près plutôt que passer par
Changeons de question. Un capteur renvoie six couples censés être alignés, et ils ne le sont pas, parce qu'aucune mesure n'est exacte. Faire passer une courbe par les six points est absurde deux fois: la courbe reproduirait le bruit, et sa valeur en un point non mesuré serait plus fausse que la droite qu'on cherchait.
Le problème et sa formulation matricielle
On se donne couples , , et une famille de fonctions de base avec — typiquement , mais rien ne l'impose. On cherche les coefficients qui rendent la fonction la plus proche possible des données.
Trois remarques avant la théorie. Le problème est linéaire en , même si ne l'est pas en : ajuster une parabole est un problème linéaire. Les résidus sont verticaux, pas orthogonaux à la courbe: on suppose que est connu exactement et que toute l'erreur est sur ; si les deux variables sont bruitées, il faut une autre méthode (la régression orthogonale, ou moindres carrés totaux). Et on minimise des carrés et non des valeurs absolues, pour deux raisons: la fonction est alors différentiable partout, ce qui donne un système linéaire; et la solution est l'estimateur de vraisemblance maximale si les erreurs sont gaussiennes indépendantes de même variance. Le prix de ce choix est la sensibilité aux points aberrants, et nous le paierons plus loin.
Les équations normales
Démonstration. Posons et écrivons un vecteur quelconque sous la forme . Alors , et en développant le carré de la norme euclidienne,
C'est une identité exacte, valable pour tout : la fonction est un polynôme du second degré en , sans aucun reste.
Condition suffisante. Supposons , c'est-à-dire . Le terme croisé de (7.22) disparaît et il reste
pour tout : est bien un minimum global.
Condition nécessaire. Supposons réciproquement que minimise . Fixons un quelconque et considérons la fonction d'une variable réelle
obtenue en remplaçant par dans (7.22). C'est un trinôme en , dérivable, qui atteint son minimum en par hypothèse. Donc . Ceci valant pour , en particulier pour les vecteurs de la base canonique, on conclut , soit (7.21).
Lecture géométrique. La -ième composante de est le produit scalaire de la -ième colonne de avec . Dire que , c'est donc dire que le résidu est orthogonal à chaque colonne, donc à tout leur espace engendré . Autrement dit, est la de sur , et le théorème de la projection garantit qu'elle existe et est unique.
Unicité de . Si est de rang plein en colonnes et si , alors , donc , donc par injectivité. La matrice , qui est manifestement symétrique, est donc inversible; et comme pour , elle est définie positive. Le minimum est atteint en l'unique .
Pour la droite , le système (7.21) est un que l'on peut écrire explicitement:
de déterminant , strictement positif dès que deux abscisses diffèrent (c'est, à un facteur près, la variance des ).
Le coefficient de détermination
Comment dire si l'ajustement est bon? La somme dépend des unités et du nombre de points. On la compare donc à la dispersion des données elles-mêmes.
La décomposition est un théorème de Pythagore: , et les deux termes de droite sont orthogonaux puisque le premier est le résidu et que le second appartient à — à condition que y appartienne aussi, ce qui exige la présence de la constante dans la base.
Sur l'exemple 7.3: V, , et donc exactement. On vérifie , et
Écrivez droite_moindres_carres(xs, ys) qui résout le système (7.23) et renvoie le couple , ainsi que coefficient_determination qui renvoie . Le programme les applique aux six mesures de l'exemple 7.3.
Réglez d'abord la dispersion du nuage: la droite en trait plein suit, mais elle reste centrée sur le modèle. Déplacez ensuite le dernier point, celui qui est entouré, vers le haut du cadre: la droite en trait plein bascule et la somme des carrés explose, alors que la droite bleue — la même régression calculée sans ce point — ne bouge pas d'un pixel. C'est toute la fragilité des moindres carrés devant une donnée aberrante. Augmentez enfin le nombre de points: le même écart pèse moins lourd, sans jamais devenir inoffensif.
Régression polynomiale et le mauvais conditionnement de A transposée A
Rien n'oblige à ajuster une droite. Avec , , on ajuste un polynôme de degré à points, et les équations normales s'écrivent, coefficient par coefficient,
La matrice est la matrice de Gram de la famille pour le produit scalaire discret ; pour la base monomiale, c'est une matrice de de la distribution des abscisses. Elle est symétrique définie positive (théorème 7.5), donc justiciable de la factorisation de Cholesky du chapitre 3, et il est tentant de s'arrêter là: on assemble, on résout par Gauss (chapitre 3), et c'est fini. C'est précisément ce qu'il ne faut pas faire au-delà du degré 3 ou 4, et la raison est le conditionnement du chapitre 4.
Le calcul qui fait peur
Prenons points d'abscisses , , régulièrement réparties sur , et faisons croître le degré. Le nombre de conditionnement , calculé pour qu'il ne soit pas lui-même victime de l'arrondi, vaut:
| degré | taille de | chiffres perdus | |
|---|---|---|---|
| 1 | 22,5 | 1,4 | |
| 2 |
Chaque degré supplémentaire multiplie par un facteur voisin de 32, soit une perte d'environ un chiffre et demi par degré. La dernière colonne est : c'est, d'après le chapitre 4, le nombre de chiffres significatifs qu'une perturbation relative des données peut faire disparaître du résultat. Au degré 6, sur seize chiffres disponibles en double précision, il en reste sept.
D'où cela vient-il? De ce que les colonnes deviennent presque colinéaires sur un intervalle borné: sur , les fonctions et ont un cosinus d'angle supérieur à . La matrice (7.25) est une somme de Riemann: pour des abscisses équiréparties sur ,
c'est-à-dire fois la matrice de Hilbert — l'exemple canonique de matrice mal conditionnée, celui du chapitre 4 et de l'annexe A. Le conditionnement étant invariant par multiplication par un scalaire, , et l'on connaît ces valeurs exactement: , , . Comparez ligne à ligne avec la table: contre , contre . , et c'est pour cela que le chapitre 4 était nécessaire avant celui-ci.
Les trois remèdes
Centrer et réduire. Le conditionnement dépend de l'intervalle. Sur les mêmes 11 abscisses translatées sur , au degré 5, passe de à : quatre ordres de grandeur perdus pour une simple translation, parce que sur toutes les puissances valent à peu près la même chose. À l'inverse, en posant et en ajustant en , on obtient au degré 5 — que sur et deux cent cinquante millions de fois mieux que sur , pour un changement de variable qui coûte deux opérations par point. C'est le remède le moins cher et le plus souvent oublié.
Changer de base. Rien n'oblige à prendre . Si l'on choisit des polynômes orthogonaux pour le produit scalaire discret — obtenus par exemple par Gram–Schmidt sur la base monomiale, ou par la relation de récurrence à trois termes des polynômes de Legendre discrets —, alors devient : les équations normales se découplent et chaque coefficient se lit directement,
Après normalisation des colonnes, et : le conditionnement disparaît par construction. Avantage supplémentaire, ajouter un degré ne change aucun des coefficients déjà calculés, ce qui permet d'augmenter le degré progressivement et de s'arrêter quand cesse de diminuer significativement.
Factoriser. La méthode de référence est la factorisation avec à colonnes orthonormées et triangulaire supérieure: les équations normales deviennent , une simple remontée triangulaire, et l'on n'a jamais formé . C'est ce que font numpy.linalg.lstsq, Matlab et LAPACK. La construction de et relève des transformations de Householder, hors du programme de ce chapitre; retenez le principe et le fait que le coût, opérations environ, reste du même ordre que celui des équations normales.
Écrivez equations_normales(xs, ys, m) qui construit la matrice et le vecteur de la régression polynomiale de degré , **sans construire ** — les formules (7.25) suffisent. Le solveur de Gauss est fourni. Le programme affiche la somme des carrés pour les degrés 1, 2 et 3 sur les données de l'exemple 7.3.
Vous ajustez un polynôme de degré 6 à 11 points d'abscisses régulièrement réparties, en formant et en résolvant par élimination de Gauss en double précision. À quoi devez-vous vous attendre?
Le point aberrant
Les moindres carrés minimisent une somme de carrés: un résidu deux fois plus grand pèse quatre fois plus. Un point faux pèse donc démesurément, et l'effet est facile à chiffrer sur les données de l'exemple 7.3.
Supposons qu'en relevant la dernière mesure l'opérateur ait heurté la table et lu V au lieu de V. Un seul nombre change, sur six. Les nouvelles sommes sont et , d'où
Comparons aux valeurs saines et :
| grandeur | données saines | avec le point faux | sans le point du tout |
|---|---|---|---|
| pente | 0,1000 | 0,1579 | 0,1045 |
| ordonnée | 0,0200 | −0,1343 | 0,0080 |
| somme | 0,0238 | 0,2876 | 0,0219 |
| 0,9671 | 0,8584 | 0,9522 |
La pente augmente de 57,9 %, et l'ordonnée à l'origine change de signe — un capteur qui délivrerait mV à vide. Mais la ligne décisive est la troisième colonne: supprimer purement et simplement la mesure ne déplace la pente que de à , soit . Autrement dit, un point faux fait treize fois plus de dégâts qu'un point manquant. C'est le résultat à retenir: devant une donnée suspecte, l'écarter est presque toujours moins coûteux que la garder.
Une mise en garde sur la dernière ligne du tableau, qui est un piège tendu par lui-même. La troisième colonne affiche , moins que les de la colonne saine, et l'on serait tenté d'en conclure que retirer le point a dégradé l'ajustement. C'est faux, parce que les trois ne portent pas sur les mêmes données: en passant de six à cinq points on retire la mesure la plus éloignée de la moyenne, donc chute de à alors que bouge à peine, de à . Le quotient monte mécaniquement. ; d'un jeu à l'autre, seuls les coefficients et l'écart-type résiduel sont comparables — ici vaut V sur six points et V sur cinq, deux valeurs du même ordre, ce qui est la bonne lecture.
Deux mécanismes se combinent. Le premier est la pondération quadratique. Le second est le bras de levier: la mesure fautive est à l'extrémité de l'intervalle des abscisses, là où un écart fait pivoter la droite au maximum. La même erreur commise au centre du nuage aurait déplacé l'ordonnée sans presque toucher la pente. L'explorateur ci-dessus permet de vérifier les deux effets, en déplaçant le point marqué et en augmentant : la droite ajustée sans lui, en bleu, ne bouge jamais, et c'est la mesure exacte du dégât.
Reprenez les six mesures de l'exemple 7.3 en remplaçant la dernière par V. Calculez la nouvelle pente , en V/kg.
Modèles linéarisables, et le piège du logarithme
Beaucoup de lois ne sont pas linéaires en leurs paramètres, et pourtant un changement de variable les ramène au cas précédent:
La recette est universelle: on transforme, on ajuste une droite par (7.23), on revient. Elle est correcte du point de vue algébrique, et elle ne résout pas le problème posé. Car ajuster minimise , alors que le problème d'origine demandait de minimiser . Ce sont deux critères différents, et ils n'ont pas le même minimum.
Le logarithme comprime les grandes valeurs et dilate les petites: minimiser l'écart sur revient à peu près à minimiser l'écart relatif sur , donc à accorder aux mesures les plus petites — souvent les plus bruitées, celles de la fin d'une décroissance — un poids qu'elles ne méritent pas.
Synthèse
- L'interpolation par morceaux échange l'ordre contre la robustesse. L'interpolant affine a une erreur qui tend toujours vers zéro, là où l'interpolation globale peut diverger; son défaut est sa dérivée discontinue, inacceptable dès qu'une trajectoire physique est en jeu.
- Le décompte est la clé de la spline cubique. Pour intervalles: coefficients, conditions d'interpolation, de continuité de et de continuité de , soit conditions. Il reste conditions libres, ce qui engendre les familles naturelle ( nulle aux bords), encastrée ( imposée), périodique et .
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
- Une spline cubique interpole 15 points. Donner le nombre d'inconnues, le nombre de conditions imposées par la définition, et le nombre de conditions libres.
- Écrire les deux équations supplémentaires d'une spline naturelle, puis celles d'une spline encastrée avec et .
- La condition not-a-knot impose la continuité de en et en . Montrer qu'elle revient à dire que et sont le même polynôme.
On interpole , , par une spline cubique naturelle.
- Écrire et résoudre le système des moments.
- Donner les deux morceaux et explicitement.
On dispose des cinq mesures suivantes, où est un temps en minutes et une concentration en mg/L:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 3,0 | 4,6 | 5,8 | 7,4 | 8,2 |
- Calculer les quatre sommes nécessaires et résoudre les équations normales.
On ajuste un polynôme de degré 2 aux cinq abscisses .
- Écrire pour la base monomiale et calculer .
Soit de rang plein en colonnes, , et la solution des équations normales. On pose .
Références
- Quarteroni, A., Sacco, R. et Saleri, F., Méthodes numériques — algorithmes, analyse et applications, Springer, Milan, chap. 8 (interpolation par morceaux, splines et approximation au sens des moindres carrés).
- de Boor, C., A Practical Guide to Splines, éd. révisée, Springer, New York (la référence sur les B-splines et la condition not-a-knot).
- Rappaz, J. et Picasso, M., Introduction à l'analyse numérique, Presses polytechniques et universitaires romandes, Lausanne, chap. 5.
- Burden, R. L. et Faires, J. D., Numerical Analysis, Cengage, Boston, chap. 3 (splines cubiques) et chap. 8 (approximation discrète).
- Trefethen, L. N. et Bau, D., Numerical Linear Algebra, SIAM, Philadelphie, leçons 11 et 18 à 20 (moindres carrés, factorisation et conditionnement).
- Björck, Å., Numerical Methods for Least Squares Problems, SIAM, Philadelphie (l'ouvrage de référence sur les équations normales et leurs alternatives).