Interpolations
Transcription
Interpolations
Courbes et interpolations Programmes en Visual Basic TABLE DES MATIÈRES §1 Introduction................................................................................................ 2 §2 Interpolations linéaires............................................................................... 2 §3 Polynômes de Lagrange ............................................................................. 6 §4 §5 Méthode des moindres carrés .................................................................... 9 Interpolation quadratique ......................................................................... 13 §6 Interpolation cubique ............................................................................... 15 §7 Courbes paramétrées et éléments de cinématique ................................... 19 §8 Courbes de Bézier .................................................................................... 25 1 Jean-Marc Ledermann § 1 Introduction Étant donnés des points du plan, il s’agit de trouver une courbe, généralement polynomiale, soit qui passe par ces points, soit qui passe près de ces points avec, éventuellement, des conditions supplémentaires (par exemple sur la pente). Exemple A partir de quelques points du plan (fig. 1) on peut les relier par une interpolation linéaire (fig. 2) ou polynomiale (fig. 3) ou encore construire une courbe qui approche ces points (fig. 4). 3 3 fig. 1 2 2 1 1 3 1 2 3 4 fig. 2 1 5 2 3 4 5 3 fig. 3 2 fig. 4 2 1 1 1 2 3 4 5 1 2 3 4 5 § 2 Interpolations linéaires Exercice 1 On a mesuré la température à différents moments de la journée, et reporté ces valeurs dans le tableau ci-dessous. heure du relevé 8h00 10h00 12h00 14h00 16h00 18h00 20h00 température 11 14 16 17 19 15 12 a) Représenter ces données par un graphique. b) Peut-on interpoler ces données pour obtenir une température à 13h00 et à19h20 ? c) Peut-on extrapoler ces données pour obtenir une température à 21h00 ? et à 24h00 ? d) Créer une fonction f(t) qui donne une interpolation de la température pour t [8.00;20.00] Remarque t est donné en heures et non pas en heures et minute. 2 Courbes et interpolations Exercice 2 L’extrait ci-dessous est tiré d’un décret français du 3 janvier 1989 concernant la teneur maximale de fluor dans l’eau destinée à la consommation humaine. Pour les eaux destinées à la consommation humaine, la teneur en fluor doit être inférieure à 1’500 microgrammes par litres pour une température moyenne de l'aire géographique considérée comprise entre 8 degrés C et 12 degrés C et à 700 microgrammes par litres pour une température moyenne de l'aire géographique considérée comprise entre 25 et 30 degrés C. Pour les températures moyennes comprises entre 12 et 25 degrés C, la teneur limite en fluor est calculée par interpolation linéaire. a) Quelle est cette teneur maximale tolérée pour une région pour laquelle la température moyenne est de 17 degrés C ? b) Quelle est la température moyenne d’une commune française pour laquelle la teneur maximale tolérée de fluor est de 1'200 microgrammes par litre d’eau potable ? Exercice 3 Le graphe de la fonction f(x) = sin(x) pour x [π;π] et donnée ci-dessous. 1 0.5 -3 -2 -1 1 2 3 -0.5 -1 a) Sur ce graphe, après avoir placé les points A(– ; 0), B(– π2 ; –1), C(0 ; 0), D( π2 ; 1) et E( ; 0), relier ces points par des segments de droite puis donner la fonction correspondante g définie par intervalles (morceaux). Quelle est la valeur de l'erreur e1(x) = f(x) – g(x) en x = π4 ? b) Sur ce même graphe, dessiner l’arc de parabole qui passe par les points A, B et C ainsi que dessiner l’arc de parabole qui passe par les points C, D et E puis donner la fonction correspondante h définie par intervalles. Quelle est la valeur de l'erreur e2(x) = f(x) – h(x) en x = π4 ? §2 Interpolations linéaires 3 1 0.5 -3 -2 -1 1 2 3 -0.5 -1 c) Trouver une fonction k du 3me degré telle que k(x) = f(x) pour x = –, x = 0, x = π2 et x = . Dessiner le graphe de k. Quelle est la valeur de l'erreur e3(x) = f(x) – k(x) en x = π2 , x = π4 et x = 3π4 ? Exercice 4 Écrire un programme qui permet, par l'intermédiaire de la souris, de choisir et d'enregistrer des points sur une zone d'image. Les points sont numérotés de 1 à n, leurs coordonnées sont enregistrées dans deux variables indicées, l'une PX(1), PX(2), …, PX(n) pour les abscisses et l'autre, PY(1), PY(2), …, PY(n) pour les ordonnées. Rappel Les variables indicées doivent être déclarées : Dim PX(100) As Integer Dim PY(100) As Integer Remarques Les points donnés doivent être d'abscisses croissantes. Rappel La procédure Picture1_MouseDown( … ) est automatiquement exécutée lors d’un clic de la souris dans la zone d’image Picture1 et les coordonnées de la souris sont contenues dans les variables x et y. 4 Courbes et interpolations Exercice 5 a) Écrire un programme qui permet de donner des points avec la souris puis, après un clic sur un bouton de commande, construise une interpolation linéaire qui passe par les points donnés (ligne brisée qui relie ces points). b) Compléter le programme de sorte qu'une abscisse x étant donnée (dans une zone de texte et comprise entre PX(1) et PX(n)), il calcule son image y par la fonction d'interpolation linéaire et affiche le point correspondant. Remarque Pour calculer la valeur de y, le programme doit d'abord déterminer entre quels points successifs se trouve le point d'interpolation. c) Modifier encore le programme de sorte que l’abscisse du point d’interpolation puisse être donnée avec la souris. Remarque La souris a ici un double rôle, dans un premier temps elle permet d’enregistrer des points et, dans un deuxième temps (après le dessin de l’interpolation), elle permet de désigner l’abscisse d’un point. Une variable, nommée par exemple Modesouris, peut prendre la valeur 0 pour le premier rôle et la valeur 1 pour le deuxième. La procédure Picture1_MouseDown( … ) donnée ci-dessous, effectuera donc l’une ou l’autre des actions. Private Sub Picture1_MouseDown( … ) If mode = 0 Then Call points(X, Y) Else Call interpol(X) End If End Sub Où la procédure point(x,y) enregistre le point de coordonnées x et y et la procédure interpol(x) détermine l’ordonnée du point d’interpolation d’abscisse x. §2 Interpolations linéaires 5 § 3 Polynômes de Lagrange Exercice préliminaire a) Trouver un polynôme l1(x) qui s'annule en x = 2 et x = 3 et qui prend la valeur y = 1 en x = 5. b) Trouver un polynôme l(x) qui s'annule en x1 et x2 et qui prend la valeur y3 en x3 . c) Trouver un polynôme l2(x) qui s'annule en x = 2 et x = 5 et qui prend la valeur y = 1 en x = 3. d) Trouver un polynôme l3(x) qui s'annule en x = 3 et x = 5 et qui prend la valeur y = 4 en x = 2. e) On considère le polynôme p(x) = l1(x) + l2(x) + l3(x). Que vaut p(2), p(3), p(5) ? Pour trouver un polynôme de degré n – 1 dont le graphe passe par n points du plan donnés, il est possible de résoudre un système de n équations à n inconnues. La méthode d'interpolation de Lagrange permet de fabriquer directement un tel polynôme P(x) à partir des n points et sans résoudre de système. Si on note (x1;y1), (x2;y2), …, (xn;yn) ces n points, alors ce polynôme P de Lagrange s'écrit : n P( x) Lk ( x) yk L1 ( x) y1 L2 ( x) y2 k 1 Ln ( x) yn Les polynômes Lk, les « petits Lagranges » sont définis par n Lk ( x) i 1 ik x xi xk xi ( x x1 ) ( x x2 ) ( x xk 1 ) ( x xk 1 ) ( x xn ) ( xk x1 ) ( xk x2 ) ( xk xk 1 ) ( xk xk 1 ) ( xk xn ) Lk(x) est un polynôme qui prend la valeur 1 pour x = xk et qui s'annule pour x = xi, i = 1, …n et i k Lk(x)·yk prend donc la valeur yk pour x = xk et s'annule pour x = xi, i = 1, …n et ik P(x) est un donc un polynôme qui prend la valeur yk pour x = xk , k = 1, …n 6 Courbes et interpolations Exemple Construction du polynôme de Lagrange dont le graphe passe par les 3 points (1;1), (3;5) et (4;10). L1 ( x) ( x 3) ( x 4) 1 2 ( x 7 x 12) , (1 3) (1 4) 6 L2 ( x) ( x 1) ( x 4) 1 ( x 2 5 x 4) , (3 1) (3 4) 2 L3 ( x) ( x 1) ( x 3) 1 2 ( x 4 x 3) (4 1) (4 3) 3 1 1 1 P( x) ( x 2 7 x 12) 1 ( x 2 5 x 4) 5 ( x 2 4 x 3) 10 6 2 3 1 5 10 7 25 40 12 20 30 ( ) x 2 ( )x ( ) 6 2 3 6 2 3 6 2 3 x2 2 x 2 Exercice 6 a) En suivant la méthode de Lagrange, donner une expression du polynôme P(x) dont le graphe est la cubique passant par les quatre points P0(O; yo). P1(1; y1), P2(2; y2) et P3(3; y3) b) Comment faut-il choisir y4 pour que le point P4(4; y4) soit sur la cubique? Exercice 7 On se propose d'estimer par un polynôme de Lagrange P(x) de degré 2 la fonction exponentielle f : x 2 x , en tenant compte de trois valeurs : f(–l), f(1) et f(3). a) Chercher les coefficients du polynôme P(x) en résolvant un système de trois équations à trois inconnues. b) Utiliser la méthode de Lagrange pour déterminer le polynôme P(x) et ses coefficients. c) Calculer exactement l'erreur d'interpolation f(x) -P(x) en x = O et en x = 2. d) Vérifier que sur l'intervalle [1 ; 3] , le polynôme de Lagrange donne une estimation par excès de la fonction. Estimer, dans cet intervalle, le maximum de la différence P(x) – f(x) . §3 Polynômes de Lagrange 7 Exercice 8 a) Écrire un programme qui trace le graphe d'un polynôme de Lagrange passant par des points désignés à l'aide de la souris. b) Compléter le programme de sorte qu’il affiche l’ordonnée d’un point du polynôme de Lagrange dont l’abscisse est donnée (dans une zone de texte ou avec la souris) . Exercice 9 La masse volumique de l’eau est donnée en fonction de la température par le tableau ci-dessous. (oC) (kg·m-3) 0 5 10 20 30 999.84 999.97 999.70 998.20 995.64 a) Trouver, en utilisant la méthode de Lagrange avec les valeurs du tableau, un polynôme d’interpolation puis le représenter graphiquement en utilisant Mathematica. b) Trouver la masse volumique de l’eau à 4 oC en utilisant une interpolation de Lagrange. c) Trouver la masse volumique de l’eau à 4 oC en utilisant une interpolation linéaire. d) Pour quelle température la masse volumique de l’eau est-elle de 999 kg·m3 ? 1. Par interpolation linéaire. 2. Par interpolation de Lagrange avec les valeurs pour 0 oC, 10 oC, 20 oC et 30 oC données dans le tableau. Indication : utiliser Mathematica 8 Courbes et interpolations § 4 Méthode des moindres carrés Étant donné une liste de points du plan P1(x1;y1), P2(x2;y2), P3(x3;y3), …, Pn(xn;yn), on cherche une droite d’équation y = a x + b qui approche (au mieux) ces n points. La méthode des moindres carrés consiste à choisir la droite dont la somme des carrés des écarts (distance prise verticalement) entre les points donnés et la droite soit aussi petite que possible. P10 d10 P8 d8 P3 d3 d2 d1 P5 d5 P6 d6 y=ax+b d9 d7 P9 P7 d4 P4 P2 P1 Exemple Cherchons la droite y ax b qui approche le mieux, au sens des moindres carrés, les points A(0;0), B(1;1), C(2;1) et D(3;2). Calculons les carrés des écarts d12 (a 0 b 0)2 b2 , d22 (a 1 b 1)2 a 2 b2 2ab 2a 2b 1 , d32 (a 2 b 1)2 4a 2 b2 4ab 4a 2b 1 , d42 (a 3 b 2)2 9a 2 b2 6ab 12a 4b 4 , puis la somme E de ces carrés des écarts E d12 d22 d32 d42 14a 2 4b2 12ab 18a 8b 6 . Il faut trouver les valeurs de a et b de sorte que E soit minimal. E est une fonction de a, elle atteint son minimum lorsque E'(a)=0, mais E est également une fonction de b qui atteint son minimum lorsque E'(b)=0. E '(a) 28a 12b 18 E '(b) 12a 8b 8 28a 12b 18 0 a 3 , b 1 12a 8b 8 0 5 10 L'équation de la droite des moindres carrés cherchée est y 3 x 1 5 10 §4 Méthode des moindres carrés 9 De façon générale, il s’agit donc de choisir les coefficients a et b de façon à minimiser l’expression n n n k 1 k 1 k 1 d n 2 d k 2 (( yk (axk b))2 ( yk axk b) 2 E d12 d 2 2 On peut considérer E comme une fonction dont la variable est b : n E (b) ( yk axk b)2 k 1 Cette fonction est un polynôme de 2me degrés, elle admet un minimum pour la valeur de b qui annule la dérivée E’(b) n n n n n k 1 k 1 k 1 k 1 k 1 E '(b) 2( yk axk b) (1) 2 ( yk axk b) 2 yk 2 axk 2 b 2 nb En posant E’(b) = 0, on obtient l’équation n n k 1 k 1 n n yk axk k 1 k 1 n 2 yk 2 axk 2nb 0 b 1 n 1 n y a xk y ax k n n k 1 k 1 où x est la moyenne des xk et y est la moyenne des yk. On peut également considérer E comme une fonction dont la variable est a n E (a) ( yk axk b)2 k 1 Cette fonction admet un minimum pour la valeur de a qui annule la dérivée E’(a). n n E '(a) 2( yk axk b)( xk ) 2 ( xk yk axk 2 bxk ) k 1 k 1 2 xk yk a xk 2 bxk k 1 k 1 k 1 n n n n n n 2 2 xk yk a xk ( y ax ) xk k 1 k 1 k 1 n n n n 2 xk yk a xk 2 xk y a xxk k 1 k 1 k 1 k 1 n n 2 ( yk y ) xk a ( xk x ) xk k 1 k 1 10 Courbes et interpolations En posant E’(a) = 0, on obtient l’équation n n k 1 k 1 ( yk y ) xk a ( xk x ) xk 0 D'où l'on tire la valeur de a. n a ( yk y ) xk k 1 n ( xk x ) xk k 1 Conclusion Étant donné n points du plan P1(x1;y1), P2(x2;y2), P3(x3;y3), … , Pn(xn;yn), l’équation de la droite des moindres carrés est : y = a x + b avec n a ( yk y ) xk k 1 n et ( xk x ) xk b y ax où x 1 n 1 n et x y yk k n n k 1 k 1 k 1 On peut montrer que a peut également s'écrire n a 1 n xk yk x y n k 1 a 1 n 2 xk x 2 n k 1 ( xk x ) yk k 1 n ( xk x ) ou 2 k 1 Exercice 10 Écrire un programme qui trace la droite des moindres carrés pour des points donnés avec la souris. Exercice 11 On donne les valeurs ci−contre x 1 3 4 6 8 9 11 14 y 1 2 4 4 5 7 8 9 a) Calculer la droite des moindres carrés. b) Calculer la droite des moindres carrés après avoir inversé les rôles de x et y. c) Dessiner ces 2 droites dans le même système d’axes. §4 Méthode des moindres carrés 11 Exercice 12 Écrire un programme qui trace un cercle centré à l'origine et qui approche, au sens des moindres carrés, des points donnés avec la souris. Étant donnée n points du plan, (x1;y1), …, (xn,yn), le problème revient à trouver un rayon r n de sorte que E (r ) k 1 xk 2 yk 2 r 2 soit minimal. Trouver, par la méthode des moindres carrés, le centre et le rayon d'un cercle qui approche n points donnés est difficile. Une autre méthode consiste à choisir comme centre du cercle le point (xc;yc) où xc est la moyenne des abscisses des points données et yc la moyenne des ordonnées des points donnés. En suivant cette méthode, écrire un programme qui trace un cercle qui approche des points donnés avec la souris. Exercice 13 Trouver une parabole qui approche au mieux (au sens des moindres carrés) les points A(–1;0), B(0;1), C(1;1) et D(2;–1). Exercice 14 Dans Excel, le dessin d'une droite des moindres carrés peut se faire automatiquement en ajoutant une courbe de tendance de type linéaire à un graphique. Avec les données de l'exercice 11, afficher une courbe de tendance linéaire, calculer ensuite les coefficients a et b de la droite des moindres carrés y = a x + b, puis représenter cette droite. 12 Courbes et interpolations § 5 Interpolation quadratique Étant donné n points du plan, P1, P2, …, Pn, on cherche à construire une courbe formée de n – 1 arcs de parabole. Le premier de ces arcs est d’extrémités P1 et P2, le deuxième d’extrémités P2 et P3, le n – 1 ème d’extrémités Pn-1 et Pn. Chacun de ces arcs est le graphe d'une fonction fk(x) = ax2 + bx + c. Ces arcs doivent est reliés sans rupture de pente, la dérivée à la fin d'un arc doit donc être égale à la dérivée à l'origine de l'arc suivant. P1 1er arc 2ème arc (P3 3ème arc (P2 P4 Exercice 15 a) Trouver les coefficients a, b et c d'une fonction f (x) = ax2 + bx + c telle que f (0) = 0, f (x1) = y1 et f '(0) = p0 (x1, y1 et p0 sont donnés). b) Étant donné 2 points du plan (PX(1);PY(1)) et (PX(2);PY(2)) ainsi qu'une valeur p0, (données dans une zone de texte), écrire le programme qui trace un arc de parabole d'extrémités (PX(1);PY(1)) et (PX(2);PY(2)) et dont la pente en (PX(1);PY(1)) vaut p0. Quel est la pente en (PX(2);PY(2)) ? Indication Trouver la parabole qui passe par (0;0) et (x1;y1) où x1 = PX(2) – PX(1) et y1 = PY(2) – PY(1) c) Étant donné n points du plan (PX(1);PY(1)), (PX(2);PY(2)), …, (PX(n);PY(n)) (désignés à l’aide de la souris) ainsi qu'une valeur p0 (données dans une zone de texte), écrire le programme qui trace une courbe formée d'une succession d'arcs de parabole. Les extrémités du premier arc sont les points (PX(1);PY(1)) et (PX(2);PY(2)), sa pente en (PX(1);PY(1)) vaut p0 (donnée par l'utilisateur dans une zone de texte). Les extrémités du deuxième arc sont les points (PX(2);PY(2)), (PX(3);PY(3)) et sa pente en (PX(2);PY(2)) est égale à la pente du premier arc en ce point ; et ainsi de suite … §5 Interpolation quadratique 13 Exercice 16 a) Exprimer les coefficients a, b et c d'une parabole f(x) = ax2 + bx + c dont le graphe passe par les points (0;0), (x1;y1) et (x2;y2). Pour tester vos coefficients, écrire un programme qui trace un arc de parabole qui passe par 3 points donnés. b) Le programme de l'exercice précédent permet de construire une courbe formée d'arcs de parabole dont les extrémités sont des points donnés et dont on précise la pente p0 à l'origine du premier arc. Pour rendre cette construction plus automatique, il faut trouver un moyen de calculer cette pente p0 en fonction des points donnés. Une première méthode pourrait consister à choisir pour p0 la pente du segment qui relie les 2 premiers points, mais ce choix conduit à obtenir un segment de droite pour le premier arc. Une bonne méthode consiste à déterminer la parabole qui passe par les 3 premiers points donnés et à choisir pour p0 la pente de cette parabole au premier point. Modifier ainsi le programme créé pour l'exercice précédent. Exercice 17 On donne les points A(0;0), B(1;1), C(2;0) et D(3;2). a) Déterminer la parabole f1 dont le graphe passe par les points A, B et C. b) Déterminer la parabole f2 dont le graphe passe par les points C et D et dont la pente en C est égale à la pente de f1 en C. c) Dessiner le graphe de f ( x) ff ((xx)) sisi xx[0;2] [2;3] 1 2 d) Déterminer la cubique g2 dont le graphe passe par les points C et D, dont la pente en C est égale à la pente de f1 en C et tel que g2''(2) = f1''(2). e) Dessiner le graphe de g ( x) gf ((xx)) sisi xx[0;2] [2;3] 1 2 14 Courbes et interpolations § 6 Interpolation cubique Étant donné n points du plan, , on cherche à construire une courbe qui passe par ces point et qui est formée de arcs de cubique. Chacun de ces arcs de cubique est le graphe d'une fonction ( ) Le premier arc de cubique, , passe par les points ( ( ) ( )), le deuxième, , passe par les points ( ( ( ) ( )) et ainsi de suite. ( ( ) ( )) et ( ) ( )) et Il faut quatre conditions pour déterminer la cubique qui forme un arc reliant deux points; ces quatre conditions sont : la cubique passe par les 2 extrémités de l'arc (2 conditions) la pente de la cubique est donnée aux 2 extrémités de l'arc (2 autres conditions). Ces arcs doivent est reliés sans rupture de pente, la dérivée à la fin d'un arc doit donc être égale à la dérivée à l'origine de l'arc suivant. Pour créer une telle courbe il faut pouvoir définir de façon automatique la pente en chaque point donné. Il existe plusieurs façons de définir ces pentes; on peut, par exemple, choisir comme pente en un point donné la même pente que le segment qui relie les deux points adjacents. Ce choix des pentes ne s'applique ni au premier point, ni au dernier point et il faut donc une autre méthode pour choisir les pentes aux extrémités de la courbe. On peut, par exemple, choisir comme pente au premier point la pente du segment qui relie les deux premiers points et pour le dernier point, la pente du segment qui relie les deux derniers points. Une autre méthode (meilleure) consiste à choisir, pour le premier point, la pente correspondante d'une parabole passant par les trois premiers points et de même pour le dernier point. P 5 (P 3 3ème arc P1 4ème arc 2ème arc 1er arc P4 P2 §6 Interpolation cubique 15 Exercice 18 a) Trouver les coefficients a, b, c, d d'une fonction f(x) = ax3 + bx2 + cx + d, telle que f(0) = 0, f(x1) = y1, f'(0) = p0 et f'(x1) = p1 (x1, y1, p0 et p1 sont donnés) Indication, on trouve 3 y x (2 p p1 ) ( p p0 2bx1 ) d = 0, c = p0, b 1 1 2 0 et a 1 x1 3x12 b) Étant donné P1(PX(1);PY(1)) et P2(PX(2);PY(2)) (donnés à l'aide de la souris) ainsi que les valeurs p1 et p2 (données dans une zone de texte), écrire le programme qui trace un arc de cubique d'extrémités P1 et P2, dont la pente en P1 vaut p1 et la pente en P2 vaut p2. c) Étant donné n points du plan P1 de coordonnées (PX(1);PY(1)), P2 de coordonnées (PX(2);PY(2)), …, Pn de coordonnées (PX(n);PY(n)), écrire le programme qui trace une courbe formée d'une succession d'arcs de cubique. Les extrémités du premier arc sont les points P1 et P2, la pente p1 est la même que celle du segment P1 P2 et la pente en P2 est la même que celle du segment P1 P3. Les extrémités du deuxième arc sont les points P2 et P3, la pente en P2 est la même que celle du segment P1 P3 et la pente en P3 est la même que celle du segment P2 P4. … Les extrémités du dernier arc sont les points Pn-1 et Pn. La pente en Pn-1 est la même que celle du segment Pn-2 Pn. La pente en Pn est la même que celle du segment Pn-1 Pn. d) Modifier l'exercice précédent de sorte que la pente au premier point soit la même que celle de la parabole qui passe par les trois premiers points et que la pente au dernier point soit la même que celle de la parabole qui passe par les trois derniers points. e) Modifier encore le programme de sorte que, plutôt que de choisir en chaque point la pente du segment qui relie les deux points voisins, il choisisse la pente, en ce point, de la parabole qui passe par trois points consécutifs : la pente en Pk est celle, en Pk, de la parabole qui passe par Pk-1, Pk et Pk+1. 16 Courbes et interpolations Exercice 19 On appelle souvent spline une courbe formée d’arcs de polynômes, par exemple d’arcs paraboliques ou d’arcs cubiques. Un vrai spline, ou spline naturel, est formé d’arcs de cubiques et possède les propriétés supplémentaires suivantes :, il est partout 2 fois dérivable et possède une deuxième dérivée nulle aux extrémités. f1 P2 f2 ( f3 P3 f1’’(x1)=0 f1’(x2) = f2’(x2) f1’’(x2) = f2’’(x2) P1 f4 P4 f3’(x2) = f4’(x2) f3’’(x2) = f4’’(x2) f2’(x2) = f3’(x2) f2’’(x2) = f3’’(x2) P5 f4’’(x5)=0 Un vrai spline passant par n points du plan P1(x1 ;y1), P2(x2 ;y2), …, Pn(xn ;yn) est donc formé de cubiques f1, f2, …, fn-1, telles que, f1 (x1) = y1 f2 (x2) = y2 f3(x3) = y3 …………… fn-1(xn-1) = yn-1 et f2’ (x2) = f1’(x2) f3’ (x3) = f2’(x3) ….……………… fn-1’(xn-1) = fn-2’(xn-1) fn-1’’(xn) = 0 f1’’(x1) = 0 f2’’ (x2) = f1’’(x2) f3’’ (x3) = f2’’(x3) .……………….…… fn-1’’(xn-1) = fn-2’’(xn-1) f1(x2) = y2 f2(x3) = y3 f3(x4) = y4 …..…………. fn-1(xn) = yn On obtient ainsi un système de 4(n – 1) équations à 4(n – 1) inconnues (les 4 coefficients des n – 1 cubiques). a) Déterminer, en posant, puis résolvant un système de 8 équations à 8 inconnues, les 2 cubiques f 1 ( x) a1 x3 b1 x 2 c1 x d 1 et f 2 ( x) a2 x3 b2 x 2 c2 x d 2 formant le vrai spline qui passe par les points A(–1 ;1), B(0 ;0) et C(1 ;3). À l’aide de Mathematica, dessiner ce spline pour et comparer cette courbe avec la parabole qui passe par les points A, B et C. Rappel sur l’utilisation de Mathematica ● Définition d’une fonctions f[x_] :=x^2 + 2x +4 ● Fonction définie sur des intervalles f[x_] :=If[x<…, … , …] ● Graphes de fonctions Plot[{f[x],g[x]},{x,–1,1},PlotRange -> {–1,3},AspectRatio -> Automatic] §6 Interpolation cubique 17 Pour déterminer le spline défini par n points, le système d’équation est difficile à résoudre, nous ne le ferons pas ici. b) Pour se convaincre que la condition sur la nullité des deuxièmes dérivées aux extrémités est significative, écrire un programme qui, à partir de n points cliqués et de la pente au premier point donnée dans une zone de texte, construit une courbe formée d’arcs de cubiques f1, f2, …, fn-1, satisfaisant aux conditions suivantes. f1 (x1) = y1 f2 (x2) = y2 f3(x3) = y3 …………… fn-1(xn-1) = yn-1 f1’(x1) donné f2’ (x2) = f1’(x2) f3’ (x3) = f2’(x3) ….…………… fn-1’(xn-1) = fn-2’(xn-1) f1’’(x1) = 0 f2’’ (x2) = f1’’(x2) f3’’ (x3) = f2’’(x3) .………………. fn-1’’(xn-1) = fn-2’’(xn-1) f1(x2) = y2 f2(x3) = y3 f3(x4) = y4 …..….… fn-1(xn) = yn Quatre conditions étant données pour chaque cubique, il est ainsi possible, et simple, de les déterminer. Le programme doit encore afficher la deuxième dérivée en xn. c) Le programme terminé, chercher, pour n points donnés, quelle pente il faut attribuer au premier point pour que la deuxième dérivée au dernier point soit nulle et constater que la courbe pour laquelle cette deuxième dérivée est nulle est la plus élégantes. d) Compléter le programme de sorte qu’il détermine par bissection la pente au premier point de sorte que la deuxième dérivée au dernier point soit nulle. Indication Créer, à partir du programme réalisé au point b, une fonction spline(p) qui dessine l’interpolation cubique ayant au premier point une pente p et fourni la valeur de la deuxième dérivée au dernier point. Faire chercher ensuite par bissection un zéro de cette fonction. 18 Courbes et interpolations § 7 Courbes paramétrées et éléments de cinématique Exemples 1 La droite d passant par A(1;2) et parallèle au vecteur d 1 peut être décrite 1 par l'équation paramétrique d : x 1 t où t IR . y 2t Avec Mathematica, la commande ParametricPlot[{1+t, 2–t},{t , -4 , 4} ,AspectRatio Automatic] trace cette courbe dans un repère orthonormé. L'option AspectRatio permet de préciser le rapport hauteur/largeur de la fenêtre d'affichage. Cette même équation xy 12tt décrit le mouvement d'un point mobile M sur la droite d. À l'instant t = 0 le point M est situé en (1;2), à l'instant t = 1 le point M est situé en (2;1), … Exemples 2 c1 : x 2 5 cos(t ) t [0;2 ] est l'équation paramétrique d'un cercle c de y 4 5 sin(t ) centre C (2;4) et de rayon r = 5. C'est également l'équation du mouvement d'un point mobile M1 qui se déplace sur ce cercle. 2 x 2 5 cos( t ) t [0; 2 ] est une équation paramétrique du même c2 : 2 y 4 5 sin(t ) cercle de centre C (2;4) et de rayon r = 5. Le mobile M2 se déplace sur ce même cercle, mais à des vitesses différentes. Le vecteur r (t ) 2 5cos(t ) est le 4 5sin(t ) vecteur position. 2 5cos(t 2 ) Le vecteur r (t ) 2 est 4 5sin(t ) le vecteur position. Le vecteur v (t ) 5sin(t ) est le 5cos(t ) vecteur vitesse que l'on obtient en dérivant x et y en fonction de t. Ce vecteur vitesse est tangent à la courbe en, sa norme donne la vitesse du mobile M en t. La vitesse 10 t sin(t 2 ) Le vecteur v (t ) 2 est le 10 t cos(t ) vecteur vitesse que l'on obtient en dérivant x et y en fonction de t. Ce vecteur vitesse est tangent à la courbe, sa norme donne la vitesse du mobile M en t. v(t ) 5sin(t ) 5cos(t ) 5 est ici constante. 2 §7 2 La vitesse v(t ) 10t n’est pas constante. Courbes paramétrées et éléments de cinématique 19 Graphe de la vitesse en fonction du temps v v Graphe de la vitesse en fonction du temps 10 5 t t 2π Le vecteur a (t ) 5cos(t ) est le 5sin(t ) vecteur accélération que l'on obtient en dérivant le vecteur vitesse. Le vecteur accélération est ici perpendiculaire au vecteur vitesse v (t ) . 2 2 2 a (t ) 10sin(t2 ) 20 t2 cos(t2 ) est 10cos(t ) 20 t sin(t ) le vecteur accélération que l’on peut décomposer en accélération tangentielle at (t ) , parallèle à v (t ) ) et accélération normale (ou centripète) an (t ) , perpendiculaire à v (t ) . 2 2 2 a (t ) 10sin(t2 ) 20 t 2 cos(t2 ) 10cos(t ) 20 t sin(t ) Exemples 3 1 Équation paramétrique d'une courbe de Lissajous c : x sin(7t ) où t [0;2 ] y cos(3t ) Vecteur position : r (t ) sin(7t ) cos(3t ) Vecteur vitesse : v (t ) 7cos(7t ) 3sin(3t ) 1 1 1 Vitesse: v(t ) 49cos2 (7t ) 9sin 2 (3t ) Vecteur accélération : a (t ) 49sin(7t ) 9cos(3t ) Ce vecteur accélération peut-être décomposé en une composante tangentielle at (t ) , parallèle au vecteur vitesse, et une composante normale an (t ) , perpendiculaire au vecteur vitesse. 20 Courbes et interpolations Une courbe paramétrée est formée de l'ensemble des points P( x; y) dont les coordonnées sont des fonctions x g (t ) avec t variant dans un intervalle I. y h(t ) Le point P parcourt une trajectoire, sa position dépend du paramètre t (le temps). Le mouvement du point mobile P est décrit par les fonctions g et h . • • Le vecteur v (t ) g '(t ) est le vecteur vitesse, il dépend du temps t, il est h '(t ) Le vecteur r (t ) g (t ) est le vecteur position, il dépend du temps t. h(t ) tangent à la courbe en P( x; y) où x g (t ) et y h(t ) . • La vitesse v au temps t est égale à la norme du vecteur vitesse, donc v(t ) • g '(t ) h '(t ) 2 2 Le vecteur a g ''(t ) est le vecteur accélération, il dépend du temps t, sa h ''(t ) norme a(t ) a (t ) est l'accélération en t. • Le vecteur accélération se décompose en une accélération tangentielle at , tangente à la courbe et donc parallèle au vecteur vitesse et une accélération normale an , normale à la courbe et donc perpendiculaire au vecteur vitesse. • L'accélération tangentielle at (t ) est la norme du vecteur at , elle est égale à la dérivée de la vitesse at (t ) v '(t ) . • v 2 (t ) L'accélération normale an (t ) est la norme du vecteur an , on a an (t ) R où R est le rayon du cercle osculateur en t (R est appelé rayon de courbure en t). at (t ) v (t ) r (t ) a (t ) an (t ) u2 u1 §7 Courbes paramétrées et éléments de cinématique 21 Exemples Le dessin de la courbe c : x sin(2t ) t [0;2π] y cos(t ) est donnée ci-contre ainsi que le vecteur vitesse en P0 (sin(2t ),cos(t )) pour quelques valeurs de t (t = 0, t = /2, t = et t = 3/2) r (t ) sin(2t ) , v (t ) 2cos(2t ) , cos(t ) sin(t ) La vitesse v(t ) 2 1 a (t ) 4sin(2t ) cos(t ) 2cos(2t ) sin(t ) 2 1 2 en 1 1 π 4 1 2 P0 (sin(2t0 ),cos(t0 )) dépend de t, le graphe de v(t) est donné ci-contre. En t 1 2 3 4 5 6 on a : 1 0 4 r 2 , v 2 , a 2 , 2 2 2 0 at a v2 v 2 , an 4 0 2 v 1 3 2 1 1 1 Exercice 20 Dessiner la courbe x t 2 1 c: où t [2;2] 3 y t t et tracer quelques vecteurs vitesse et vecteurs accélération après avoir complété le tableau ci-contre. t x y x' y' -2 -1,5 -1 -0,5 0 0,5 1 1,5 v x'' y'' En quels points de la courbe la vitesse est-elle minimale ? Déterminer le vecteur accélération tangentielle et le vecteur accélération normal en t = –1. Donner, en ce point le centre et le rayon du cercle osculateur. Trouver, s'ils existent, les points pour lesquels le vecteur accélération est parallèle au vecteur vitesse et les points pour lesquels le vecteur accélération est perpendiculaire au vecteur vitesse. Écrire un programme qui trace cette courbe. Compléter le programme de sorte que, pour une valeur de t donnée, il trace encore les vecteurs vitesse et accélération ainsi que le cercle osculateur. 22 Courbes et interpolations 2 Exercice 21 p a) Trouver l’équation d’une cycloïde, trajectoire que parcours un point fixe d’un cercle lorsque celui-ci roule. M b) Trouver l'équation paramétrique d'une hypocycloïde allongée, trajectoire que parcours un point fixe d'un rayon allongé (de longueur 2) d'un cercle (de rayon 1) roulant à l'intérieur d'un autre cercle (de rayon 7). Exercice 22 Étudier la néphroïde n : x 3 cos(t ) cos(3t ) y 4sin 3 (t ) 7 P(x;y) 1 2 t [0;2π] Intersections avec les axes, points à tangente horizontale et verticale, points à vitesse maximale et minimale et dessin. Exercice 23 A partir de l'équation paramétrique du cercle centré à l'origine, ( ) , et en faisant varier le rayon r, trouver une équa{ ( ) tion paramétrique pour chacune des courbes données ci-dessous. 0.75 0.75 0.5 0.5 0.25 -0.5 0.25 0.5 1 -0.75-0.5 -0.25 0.25 0.5 0.75 -0.25 -0.25 -0.5 -0.5 -0.75 -0.75 a) b) -1 c) Exercice 24 Écrire un programme qui trace le graphe d’une courbe paramétrée, puis tester ce programme avec les courbes données ci-dessous. Courbe de Moritz Cardioïde c : x cos(0.9t ) cos(t ) y cos(0.9t ) sin(t ) c : x (1 cos(t )) cos(t ) y (1 cos(t )) sin(t ) §7 Courbes paramétrées et éléments de cinématique 23 Exercice 25 2 On considère la courbe c : x a1t 2 b1t c1 y a2t b2t c2 où t [0;1] . Trouver a1, a2, b1, b2, c1, c2, sachant que : a) c passe par les points A(0;0) (en t = 0), B(2;1) (en t = ½ ) et C (0; 2) (t = 1) b) c passe par les points A(0;0) (en t = 0) et C (0; 2) (en t = 1), il admet le vecteur vitesse v 4 au point A. 4 Déterminer les points d'intersection de ces 2 courbes avec l'axe Ox ainsi que les points à tangente horizontale et les points à tangente verticale. Trouver le point à vitesse minimale de la première de ces deux courbes. Calculer les coordonnées des points d'intersection des deux courbes. Exercice 26 Trouver l'équation paramétrique d'une courbe dont les 2 fonctions coordonnées sont des cubiques, qui débute au point O(0 ; 0) au temps t = 0 avec le vecteur vitesse v 0 2 2 et qui se termine, au temps t = 1, au point O(0 ;0) également mais avec le vecteur vitesse. v1 22 . Déterminer le vecteur vitesse et le vecteur accélération en t = ½ et en t = ¼. Déterminer la vitesse, l'accélération tangentielle, l'accélération normale et le rayon de courbure en t = ½ et en t = ¼. Déterminer le point le plus haut de cette courbe. Pour quelles valeurs de t la vitesse est-elle la plus petite ? Exercice 27 Écrire un programme qui, étant donné des points du plan, trace une courbe fermée reliant ces points. Cette courbe est formée d’arcs de cubique donnés sous forme paramétrique. Choisir comme vecteur vitesse au point Pk le vecteur vk m Pk 1 Pk 1 où m vaut par exemple 0,8. Compléter le programme de sorte que la valeur de m puisse être choisie. 24 Courbes et interpolations § 8 Courbes de Bézier Dans les années 60, Pierre Bézier (1910-1999), ingénieur chez Renault, imagina une méthode permettant de construire simplement des courbes et des surfaces et de les décrire mathématiquement. Cette méthode, initialement destinée à la conception de carrosserie de voiture, fut reprise par la suite comme base du langage de description graphique PostScript. Actuellement les polices de caractère utilisées par les ordinateurs sont décrites par des courbes de Bézier et la plupart des programmes de dessin et des imprimantes laser utilisent ces courbes. Un arc de Bézier est défini graphiquement par ses 2 extrémités (points principaux P0 et P3) et par 2 (ou plus) points de contrôle (points secondaires P1 et P2). P1 P0 P3 P2 Une courbe de Bézier est formée d'une succession d'arc de Bézier. L'exemple ci-dessous illustre l'utilisation d'une succession d'arcs de Bézier pour former la lettre "a". Un arc de Bézier est défini mathématiquement par une courbe paramétrée où chaque point P de la courbe est défini par une moyenne pondérée des points P0 , P1 , P2 et P3. OP p0 (t ) OP0 p1 (t ) OP1 p2 (t ) OP2 p3 (t ) OP3 avec, comme conditions : p0(t) + p1(t) + p2(t) + p3(t) = 1 (pour tout t) (moyenne) p0(0) =1, p1(0) = 0, p2(0) = 0 et p3(0) = 0 (la courbe passe par P0 en t=0) p0(1) =0, p1(1) = 0, p2(1) = 0 et p3(1) = 1 (la courbe passe par P3 en t=1) §8 Courbes de Bézier 25 Pour trouver les poids p0(t), p1(t), p2(t) et p3(t), Bézier eut l'idée de développer [(1 – t) + t]3 = 1 = (1 –t)3 + 3·(1 - t)2·t + 3·(1 – t)·t2 + t3 et de choisir : p0(t) = (1 –t)3, p1(t) = 3·(1 - t)2·t, p2(t) = 3·(1 – t)·t2 et p3(t) = t3. Un arc de Bézier est donc donné par OP (1 t )3 OP0 3 (1 t )2 t OP1 3 (1 t ) t 2 OP2 t 3 OP3 , t [0;1] Les coordonnées de P sont donc des fonctions du 3ème degré en t, l'arc est un arc de cubique qui commence en P0 (t = 0) et se termine en P3 (t = 3) Exercice 28 Vérifier que les 4 conditions définies ci-dessus sont satisfaites par les poids p0(t), p1(t), p2(t) et p3(t) donnés par Bézier. Par dérivation, on trouve le vecteur vitesse le long de l'arc de Bézier : v 3(1 t )2 OP0 3 (1 4t 3t 2 ) OP1 3 (2t 3t 2 ) OP2 3t 2 OP3 Si t = 0, la vitesse vaut v 3OP0 3OP1 3P0 P1 . Au départ, le vecteur vitesse est égal à 3P0 P1 Si t = 1, la vitesse vaut v 3OP2 3OP3 3P2 P3 . A l'arrivée, le vecteur vitesse est égal à 3P2 P3 Exercice 29 a) Écrire un programme qui trace un arc de Bézier défini par 4 points donnés avec la souris. b) Compléter le programme de sorte qu'une valeur pour t étant donnée entre 0 et 1 (dans une zone de texte), il place le point correspondant ainsi que le tiers du vecteur vitesse en ce point. 26 Courbes et interpolations Exercice 30 P2(2;2) Trouver les équations paramétriques d'un arc de Bézier donné par P0(0;0), P1(0;1), P2(2;2) et P3(3;0), esquisser la courbe obtenue puis trouver les vecteurs vitesses et accélération en t = 0, t = ½ et t = 1. P1(0;1) P3(3;0) P0(0;0) Exercice 31 1 a) Trouver les quatre points P0, P1, P2 et P3 d'un arc de Bézier qui ressemble au graphe de la fonction y = sin(x) pour x [0; ] . 1 2 3 b) Écrire un programme qui, pour un nombre entier n donné, trace une interpolation du graphe de y = sin(x) pour x [0; n ] par une succession d'arcs de Béziers. Exercice 32 Paul de Casteljau, (mathématicien chez Citroën) développa la méthode suivante pour construire géométriquement un point S d'un arc de Bézier : Algorithme de Casteljau pour t = ⅓ P2 Q1 P0Q0 t P0 P1 R1 Q2 P1 PQ 1 1 t PP 1 2 S P2Q2 t P2 P3 R0 Q1R1 t Q1Q2 R0 S t R0 R1 Q0 R0 t Q0Q1 P3 Q0 P0 Le point S est un point de l'arc de Bézier, de plus l'arc de Bézier peut être scindé en 2 arcs plus petits, l'arc défini par P0 Q0 R0 S et l'arc S R1 Q2 P3. a) Construire, par l'algorithme de Casteljau pour t = 1 4 et t = 1 2 , les points de l'arc de Bézier donné par P0(-6;2), P1(-2,10), P2(2;-10) et P3(6;2) puis esquisser cet arc. b) Construire un arc de Bézier donné par 4 points avec Cabri. §8 Courbes de Bézier 27 Exercice 33 A. Un arc de Bézier formé des points P(x;y) tels que OP (1 t )3 OP1 3 (1 t )2 t OS1 3 (1 t ) t 2 OS2 t 3 OP2 , t [0;1] est donné par ses extrémités P1(0;0) et P2(2;0) et par deux points secondaires S1(0;1) et S2(1;0). a) Esquisser cet arc. b) Déterminer les coordonnées du point M correspondant à t = ⅓ ainsi que les composantes du vecteur vitesse en M. c) On fractionne cet arc de Bézier en deux, le premier d'extrémités P1 et M, le second d'extrémités M et P2, de sorte que la courbe globale, définie par ces deux arcs, soit la même que celle esquissée au point a). Déterminer les points secondaires d'un de ces arcs. B. On désire disposer d'une procédure permettant de localiser un point d'un arc de Bézier affiché à l'écran, ce point étant désigné avec la souris. On suppose que l'arc est donné par deux fonctions x = f(t) et y = g(t), t variant de 0 à 1. Écrire la procédure qui, à partir des coordonnées (xs ; ys) de la souris, détermine une valeur t0 du paramètre t de sorte que le point de coordonnées x = f(t0) et y = g(t0), soit un point de l'arc proche du point (xs ; ys). Pour chercher une telle valeur de t0, partager l'intervalle temps [0;1] en 64 parties égales, définir ainsi 65 points de l'arc, déterminer alors le points qui, parmi ces 65 points est le plus proche (xs ; ys). Clic Exercice 34 Un arc de Bézier donné par n + 1 points (2 points principaux et n – 1 points n secondaires) est défini par : OP n t k (1 t )nk OPk k k 0 n! n 1 k a) Sachant que n , monter que n n k k ! (n k )! k k 1 k b) Écrire un programme qui trace un arc de Bézier donné par n + 1 points. 28 Courbes et interpolations