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
ik

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
ik
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  2t

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 12tt 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 )nk  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