ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/document/GMC1035/interpolation.tex
Revision: 939
Committed: Wed Jun 6 19:49:12 2018 UTC (6 years, 11 months ago) by francois
Content type: application/x-tex
File size: 23805 byte(s)
Log Message:
Ajout des notes de cours de GMC1035

File Contents

# User Rev Content
1 francois 939 \section{Mise en situation}
2     Lors d'un essai, la vitesse d'un véhicule est relevée toutes les 5 secondes pour obtenir le tableau de relevés suivant : \\
3     \\
4     \begin{tabular}{|r|r r r r r r r r r r|}
5     \hline
6     t(s) & 0 & 5 & 10 &15 & 20 & 25 & 30 & 35 & 40 & 45\\
7     v(km/h) & 55 &60 &58 & 54& 55 &60 &54 &57 &52 &49 \\
8     \hline
9     \end{tabular}
10     \\
11     Ce tableau peut être représenté par la figure suivante.
12    
13    
14     \begin{figure}[h]
15    
16     \begin{center}
17     \includegraphics[width=10cm,bb=0 0 742 513]{./interpolationexemple.jpg}
18     % interpolationexemple.jpg: 742x513 pixel, 72dpi, 26.18x18.10 cm, bb=0 0 742 513
19    
20    
21     \caption{Tracé du relevé de points}
22     \end{center}
23    
24     \end{figure}
25     L'objectif de ce chapitre est de trouver une fonction qui passe par ces points pour obtenir une expression analytique de la fonction $v=f(t)$. On passe d'une représentation discrète à une représentation continue. Cette méthode se nomme l'interpolation des points.
26     \\
27    
28     \huge\danger\hspace{1cm}\normalsize Il faut bien faire la différence entre les méthodes d'interpolation et les méthodes d'approximation.\\
29     Les méthodes d'interpolation recherche une fonction qui passe exactement par les points donnés alors que les méthodes d'approximation recherche une fonction qui passe le plus proche possible des points sans forcement passer par ces points.
30     \\Nous nous limitons dans ce cours aux méthodes d'interpolation.
31    
32    
33     \section{Interpolation par un polynôme}
34     L'idée de base est de construire un polynôme d'interpolation (ou de collocation) qui passe par les points donnés.
35     \\
36     Un polynôme de degré $n$ s'écrit
37     \begin{eqnarray*}
38     P_n(x)&=&a_0+a_1x+...+a_nx^n\\
39     avec \quad a_n&\neq&0
40     \end{eqnarray*}
41     $P_n(x)$ possède $n$ racines complexes ou réelles. Les racines sont $r_i$ et elles sont définies par $P_n(r_i)=0$.
42     Il existe un seul polynôme de degré $n$ passant par $n+1$ points.
43    
44     Démonstration :
45     Si $Pn(x)$ n'est pas unique alors il existe au moins deux polynômes ($P_{1n}(x)$ et $P_{2n}(x)$) qui passent par $n+1$ points. On calcul alors $d_n(x)$ un polynôme de degré $n$
46     \begin{eqnarray*}
47     d_n(x)=P_{1n}(x)-P_{2n}(x)\\
48     \end{eqnarray*}
49     On calcule ensuite la valeur de $d_n(x)$ pour chaque $n+1$ points d'interpolation $(x_i,y_i)$.
50     \begin{eqnarray*}
51     d_n(x_i)&=&P_{1n}(x_i)-P_{2n}(x_i)\\
52     &=&P_{1n}(x_i)-P_{2n}(x_i)\\
53     &=&y_i-y_i\\
54     &=&0\\
55     \end{eqnarray*}
56     On constate que $d_n(x)$ un polynôme de degré $n$ possède $n+1$ racines. Ce qui est contraire aux propriétés des polynômes. Donc l'hypothèse de non unicité est fausse. $Pn(x)$ est unique.
57    
58     \subsection{Méthode de la matrice de Vandermonde}
59     La première méthode pour calculer le polynôme d'interpolation est de simplement dire que le polynôme passe par $n+1$ points. On construit donc $n+1$ équations et comme il y a $n+1$ inconnues (les $a_i$), on obtient un système linéaire de dimension $(n+1)*(n+1)$ à résoudre.
60     En écrivant que le point $(x_i,y_i)$ appartient au polynôme on a
61     \begin{eqnarray*}
62     P_n(x_i)=a_0+a_1x_i+...+a_nx_i^n=y_i
63     \end{eqnarray*}
64     et on obtient le système
65     \begin{eqnarray*}
66     \begin{pmatrix}
67     1 & x_0 & ... & x_0^n\\
68     1 & x_1 & ... & x_1^n\\
69     & & \vdots&\\
70     1 & x_n & ... & x_n^n\\
71     \end{pmatrix}
72     \begin{pmatrix}
73     a_0\\
74     a_1\\
75     \vdots\\
76     a_n\\
77     \end{pmatrix}
78     =
79     \begin{pmatrix}
80     y_0\\
81     y_1\\
82     \vdots\\
83     y_n\\
84     \end{pmatrix}
85     \end{eqnarray*}
86     La matrice $\begin{pmatrix}
87     1 & x_0 & ... & x_0^n\\
88     1 & x_1 & ... & x_1^n\\
89     & & \vdots&\\
90     1 & x_n & ... & x_n^n\\
91     \end{pmatrix}
92     $ s'appelle la matrice de Vandermonde.
93     Il suffit de résoudre ce système pour obtenir le polynôme.
94    
95     Exemple : Calculer le polynôme d'interpolation qui passent par les points $(0,1)$,$(1,2)$,$(2,9)$ et $(3,28)$.
96     \\Nous avons 4 points, nous devons donc déterminer $P_3(x)$. Dans ce cas le système s'écrit
97     \begin{eqnarray*}
98     \begin{pmatrix}
99     1 & 0 & 0 & 0\\
100     1 & 1 & 1 & 1\\
101     1 & 2 & 4 & 8\\
102     1 & 3 & 9 & 27\\
103     \end{pmatrix}
104     \begin{pmatrix}
105     a_0\\
106     a_1\\
107     a_2\\
108     a_3\\
109     \end{pmatrix}
110     =
111     \begin{pmatrix}
112     1\\
113     2\\
114     9\\
115     28\\
116     \end{pmatrix}
117     \end{eqnarray*}
118     La solution est
119     \begin{eqnarray*}
120     \begin{pmatrix}
121     a_0\\
122     a_1\\
123     a_2\\
124     a_3\\
125     \end{pmatrix}
126     =
127     \begin{pmatrix}
128     1\\
129     0\\
130     0\\
131     1\\
132     \end{pmatrix}
133     \end{eqnarray*}
134     et le polynôme d'interpolation s'écrit $P_3(x)=1+x^3$.
135     \begin{figure}[h]
136    
137     \begin{center}
138     \begin{center}
139     \includegraphics[width=12cm,bb=0 0 746 481]{./interpolationex.jpg}
140     % interpolationex.jpg: 995x641 pixel, 96dpi, 26.33x16.96 cm, bb=0 0 746 481
141     \end{center}
142    
143    
144     \caption{Tracé de l'interpolation des points $(0,1),(1,2),(2,9),(3,28)$}
145     \end{center}
146    
147     \end{figure}
148     Cette méthode apparaît correcte pour obtenir le résultat souhaité. Cependant elle a des désavantages majeurs :
149     \begin{itemize}
150     \item Elle nécessite une résolution d'un système linéaire ce qui peut s'avérer coûteux en temps CPU.
151     \item La matrice de Vandermonde présente des arguments pour dire que son conditionnement peut poser problème. En effet chaque colonne est obtenue en élevant de degré de la colonne précédente de 1. Ce qui a pour effet de faire augmenter en fonction de $n$ l'écart d'ordre entre les nombres de la matrices. Tout est réuni pour augmenter le conditionnement de la matrice dès que $n$ grandit.
152     \item Si on ajoute un point à une liste de points, tout le travail est à refaire. On ne peut pas déduire $P_n(x)$ à partir de $P_{n-1}(x)$. Ceci est problématique pour l'utilisation en temps réel.
153     \end{itemize}
154    
155     \subsection{Méthode de Lagrange}
156    
157     La méthode de Lagrange est un autre moyen d'obtenir le même résultat que la méthode de Vandermonde en corrigeant ses désavantages.
158     \\L'idée de la méthode est de construire des polynômes $L_i(x)$ de degré $n$ tel que pour tous les points d'interpolation $(x_i,y_i)$ on a
159     \begin{eqnarray*}
160     L_i(x_i)=1\quad et\quad L_i(x_j)=0\quad pour \quad 0\le i\le n
161     \end{eqnarray*}
162     Cette définition conduit à la définition de $n+1$ polynômes de degré $n$.
163     \\Nous avons alors
164     \begin{eqnarray*}
165     P_n(x)=\sum_{i=0}^ny_iL_i(x)
166     \end{eqnarray*}
167     \\Démonstration
168     \begin{eqnarray*}
169     P_n(x_j)=\sum_{i=0}^ny_iL_i(x_j)=y_j*L_j(x_j)+\sum_{i=0,i\ne j}^ny_iL_i(x_j)=y_j
170     \end{eqnarray*}
171    
172     Construction des polynômes $L$:
173     \begin{itemize}
174     \item degré 1 : polynôme passant par les point $(x_0,y_0)$ et $(x_1,y_1)$.
175     \begin{eqnarray*}
176     \left.
177     \begin{array}{l}
178     L_0(x_0)=1\\
179     L_0(x_1)=0\\
180     \end{array}
181     \right \}
182     L_0(x)=\frac{x-x_1}{x_0-x_1}\\
183     \left.
184     \begin{array}{l}
185     L_1(x_0)=0\\
186     L_1(x_1)=1\\
187     \end{array}
188     \right \}
189     L_1(x)=\frac{x-x_0}{x_1-x_0}\\
190     P_1(x)=y_0\frac{x-x_1}{x_0-x_1}+y_1\frac{x-x_0}{x_1-x_0}
191     \end{eqnarray*}
192     \item degré 2 : polynôme passant par les point $(x_0,y_0)$, $(x_1,y_1)$ et $(x_2,y_2)$.
193     \begin{eqnarray*}
194     \left.
195     \begin{array}{l}
196     L_0(x_0)=1\\
197     L_0(x_1)=0\\
198     L_0(x_2)=0\\
199     \end{array}
200     \right \}
201     L_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}\\
202     \left.
203     \begin{array}{l}
204     L_1(x_0)=0\\
205     L_1(x_1)=1\\
206     L_1(x_2)=0\\
207     \end{array}
208     \right \}
209     L_1(x)=\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}\\
210     \left.
211     \begin{array}{l}
212     L_2(x_0)=0\\
213     L_2(x_1)=0\\
214     L_2(x_2)=1\\
215     \end{array}
216     \right \}
217     L_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}\\
218     P_2(x)=y_0\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}+y_1\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}+y_2\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}
219     \end{eqnarray*}
220     \item degré $n$
221     \end{itemize}
222    
223     \begin{eqnarray*}
224     L_i(x)=\frac{(x-x_0)...(x-x_{i-1})(x-x_{i+1})...(x-x_n)}{(x_i-x_0)...(x_i-x_{i-1})(x_i-x_{i+1})...(x_I-x_n)}
225     \end{eqnarray*}
226     En reprenant l'exemple du paragraphe précédent qui consiste à rechercher le polynôme d'interpolation qui passe par les points $(0,1)$,$(1,2)$,$(2,9)$ et $(3,28)$.
227     \\On calcule les polynômes $L$ :
228     \begin{eqnarray*}
229     L_0(x)&=&\frac{(x-1)(x-2)(x-3)}{(0-1)(0-2)(0-3)}=-\frac{1}{6}(x^3-6x^2+11x-6)\\
230     L_1(x)&=&\frac{(x-0)(x-2)(x-3)}{(1-0)(1-2)(1-3)}=\frac{1}{2}(x^3-5x^2+6x)\\
231     L_2(x)&=&\frac{(x-0)(x-1)(x-3)}{(2-0)(2-1)(2-3)}=-\frac{1}{2}(x^3-4x^2+3x)\\
232     L_3(x)&=&\frac{(x-0)(x-1)(x-2)}{(3-0)(3-1)(3-2)}=\frac{1}{6}(x^3-3x^2+2x)\\
233     P_3(x)&=&(1)\frac{-1}{6}(x^3-6x^2+11x-6)+(2)\frac{1}{2}(x^3-5x^2+6x)+(9)\frac{-1}{2}(x^3-4x^2+3x)+(28)\frac{1}{6}(x^3-3x^2+2x)\\
234     &=&x^3+1
235     \end{eqnarray*}
236     Cette méthode est efficace mais non récursive. Les polynômes de degré $n+1$ ne peuvent pas être calculé à partir des polynômes de degré $n$. L'utilisation pour des processus en temps réel peut être un problème.
237    
238     \subsection{Méthode de Newton}
239     On écrit le polynôme $P_n(x)$ sous la forme
240     \begin{eqnarray*}
241     P_n(x)=a_0+a_1(x-x_0)+a_2(x-x_0)(x-x_1)+...+a_n(x-x_0)(x-x_1)...(x-x_{n-1})
242     \end{eqnarray*}
243     et on identifie les $a_i$ en calculant successivement $P_n(x_i)=y_i$
244     \begin{eqnarray*}
245     P_n(x_0)&=&a_0=y_0=f(x_0)\\
246     P_n(x_1)&=&a_0+a_1(x_1-x_0)=y_1\\
247     & &y_0+a_1(x_1-x_0)=y_1\quad a_1=\frac{y_1-y_0}{x_1-x_0}=\frac{f(x_1)-f(x_0)}{x_1-x_0}\\
248     \end{eqnarray*}
249     On pose $f[x_i,x_{i+1}]=\frac{f(x_{i+1})-f(x_i)}{x_{i+1}-x_i}$ d'où $a_1=f[x_0,x_1]$\\
250     \begin{eqnarray*}
251     P_n(x_2)&=&a_0+a_1(x_2-x_0)+a_2(x_2-x_0)(x_2-x_1)=y_2\\
252     & &f(x_0)+f[x_1,x_0](x_2-x_0)+a_2(x_2-x_0)(x_2-x_1)=f(x_2)\\
253     a_2&=&\frac{1}{(x_2-x_0)(x_2-x_1)}\left(f(x_2)-f(x_0)-(x_2-x_0))f[x_0,x_1]\right)\\
254     &=&\frac{1}{x_2-x_0}\left(\frac{f(x_2)-f(x_0)}{x_2-x_1}-\frac{x_2-x_0}{x_2-x_1}f[x_0,x_1]\right)\\
255     &=&\frac{1}{x_2-x_0}\left(\frac{f(x_2)-f(x_1)+f(x_1)-f(x_0)}{x_2-x_1}-\frac{x_2-x_0}{x_2-x_1}f[x_0,x_1]\right)\\
256     &=&\frac{1}{x_2-x_0}\left(\frac{f(x_2)-f(x_1)}{x_2-x_1}+\frac{f(x_1)-f(x_0)}{x_1-x_0}\frac{x_1-x_0}{x_2-x_1}-\frac{x_2-x_0}{x_2-x_1}f[x_0,x_1]\right)\\
257     &=&\frac{1}{x_2-x_0}\left(f[x_1,x_2]+f[x_0,x_1]\frac{x_1-x_0}{x_2-x_1}-\frac{x_2-x_0}{x_2-x_1}f[x_0,x_1]\right)\\
258     &=&\frac{1}{x_2-x_0}\left(f[x_1,x_2]-f[x_0,x_1]\right)\\
259     \end{eqnarray*}
260     En posant $f[x_i,x_{i+1},x_{i+2}]=\frac{f[x_{i+1},x_{i+2}]-f[x_i,x_{i+1}]}{x_{i+2}-x_i}$ il vient $a_2=f[x_0,x_1,x_2]$
261    
262     En généralisant la démarche de calcul de $a_2$ et en posant $f[x_i,..,x_j]=\frac{f[x_{i+1},..,x_j]-f[x_i,..,x_{j-1}]}{x_j-x_i}$ pour $j>i+1$ on a
263     \begin{eqnarray*}
264     a_i=f[x_0,...,x_i]
265     \end{eqnarray*}
266     On évalue le polynôme d'interpolation en construisant la table des différences divisées.\\
267     \begin{tabular}{|r|r|r|r|r|r|}
268     \hline
269     $x_i$ & $f(x_i)$ & $f[x_i,x_{i+1}]$ & $f[x_i,x_{i+1},x_{i+2}]$ & $...$ & $f[x_i,...x_n]$ \\
270     \hline
271     $x_0$ & $f(x_0)=a_0$ & & & & \\
272     & & $f[x_0,x_1]=a_1$ & & & \\
273     $x_1$ & $f(x_1)$ & & $f[x_0,x_1,x_2]=a_2$ & & \\
274     & & $f[x_1,x_2]$ & & ... & $f[x_1,...,x_n]=a_n$ \\
275     $x_2$ & $f(x_2)$ & & $f[x_1,x_2,x_3]$ & & \\
276     & & $f[x_2,x_3]$ & & & \\
277     $x_3$ & $f(x_3)$ & & & & \\
278    
279     \hline
280     \end{tabular}\\
281     \\En reprenant l'exemple du paragraphe précédent qui consiste à rechercher le polynôme d'interpolation qui passe par les points $(0,1)$,$(1,2)$,$(2,9)$ et $(3,28)$ on calcule la table des différences divisées pour cet exemple \\
282     \\
283     \begin{tabular}{|r|r|l|l|l|}
284     \hline
285     $x_i$ & $f(x_i)$ & $f[x_i,x_{i+1}]$ & $f[x_i,x_{i+1},x_{i+2}]$ & $f[x_i,x_{i+1},x_{i+2},x_{i+3}]$ \\
286     \hline
287     $0$ & $1$ & & & \\
288     & & $\frac{2-1}{1-0}=1 $ & & \\
289     $1$ & $2$ & & $\frac{7-1}{2-0}=3$ & \\
290     & & $\frac{9-2}{2-1}=7$ & &$\frac{6-3}{3-0}=1$ \\
291     $2$ & $9$ & & $\frac{19-7}{3-1}=6$ & \\
292     & & $\frac{28-9}{3-2}=19 $ & & \\
293     $3$ & $28$ & & & \\
294    
295     \hline
296     \end{tabular}
297     \\
298     \\On calcule alors le polynôme d'interpolation
299     \begin{eqnarray*}
300     P_3(x)&=&1+1(x-0)+3(x-0)(x-1)+1(x-0)(x-1)(x-2)\\
301     &=&x^3+1\\
302     \end{eqnarray*}
303     on remarque que
304     \begin{eqnarray*}
305     P_2(x)&=&1+1(x-0)+3(x-0)(x-1)\\
306     &=&3x^2-2x+1\\
307     \end{eqnarray*}
308     ou que
309     \begin{eqnarray*}
310     P_3(x)&=&P_2(x)+1(x-0)(x-1)(x-2)\\
311     \end{eqnarray*}
312     Si on ajoute des points à l'interpolation on peut trouver le nouveau polynôme en ajoutant une correction au polynôme de degré inférieur.
313    
314    
315     \subsection{Erreur d'interpolation}
316     Soit $E_n(x)$ l'erreur d'interpolation alors
317     \begin{eqnarray*}
318     E_n(x)=f(x)-P_n(x)
319     \end{eqnarray*}
320     Puisque on fait de l'interpolation, on a
321     \begin{eqnarray*}
322     E_n(x_i)=0
323     \end{eqnarray*}
324     Tout comme l'erreur de la formule de Taylor peut être définie sans être calculée, l'erreur d'interpolation se calcule de la manière suivante
325     \\ Il existe $\zeta (x)\in ]x_0,x_n[$ tel que
326     \begin{eqnarray*}
327     E_n(x)=\frac{f^{(n+1)}\zeta (x)}{(n+1)!}(x-x_0)...(x-x_n)
328     \end{eqnarray*}
329    
330     \begin{itemize}
331     \item Tout comme dans la formule d erreur de la formule de Taylor, on sait que $\zeta (x)$ existe mais on ne sait pas le calculer.
332     \item L'erreur est nulle aux points d'interpolation.
333     \item L'erreur est petite autour des points d'interpolation
334     \item L'erreur est un polynôme de degré $n$. Si $n$ est grand (plus grand que $3$) le polynôme est de degré important et l'erreur oscille beaucoup. L'erreur devient ainsi importante quand le degré est important. Et comme le degré est lié aux nombre de points d'interpolation cette manière d'interpoler est peu intéressante.
335     \end{itemize}
336    
337    
338    
339    
340     \section{Interpolation par des polynômes par morceau}
341     L'objectif est de choisir le degré des polynômes d'interpolation quelque soit le nombre de points d'interpolation tout en conservant des courbes lisses et régulières.
342     Pour obtenir des courbes lisses, il faut des fonctions dérivables plusieurs fois. Plus le degré est grand plus la courbe est lisse mais plus le degré est grand plus l'oscillation est importante. Il faut faire un compromis pour faire le bon choix.
343     Ainsi nous nous arrêtons sur une interpolation par des polynômes de degrés $3$. Nous choisissons la méthode des splines cubiques qui consiste à relier les points par des polynômes de degré $3$.
344     \subsection{Les splines cubiques}
345     Soit $n+1$ points d'interpolation noté $(x_i,y_i=f(x_i)=f_i)$ pour $0\le i \le n$.
346     \\Pour les $n$ intervalles $[x_i,x_{i+1}]$ avec $0\le i \le n-1$ on pose
347     \begin{eqnarray*}
348     h_i&=&x_{i+1}-x_i\\
349     p_i(x)&=&f_i+f'_i(x-x_i)+\frac{f''_i}{2!}(x-x_i)^2+\frac{f'''_i}{3!}(x-x_i)^3\\
350     \end{eqnarray*}
351     On a donc $4n$ coefficients à déterminer : $f_i,f'_i,f''_i,f'''_i$.
352     \\On va essayer d'exprimer toutes les inconnues en fonctions des $f''_i$ Pour cela on ajoute 1 inconnue supplémentaire qui est $f''_n$ pour aboutir à $4n+1$ inconnues.
353     Cette nouvelle inconnue peut s'exprimer en fonction des autres inconnues :
354     \begin{eqnarray}
355     \label{eqnspline}
356     f''_n(x)=f''_{n-1}(x_n)+f'''_{n-1}(x_n-x_{n-1})=f''_{n-1}(x_n)+h_{n-1}f'''_{n-1}
357     \end{eqnarray}
358     Nous allons écrire maintenant les différentes conditions de régularité de l'interpolation :
359     \begin{itemize}
360     \item Nous faisons une interpolation : $p_i(x)=f(x_i)=f_i$ pour $0\le i \le n$
361     \item Continuité de la dérivée seconde pour les $n-1$ points intérieurs
362     \begin{eqnarray*}
363     p''_{i+1}(x_{i+1})&=&p''_{i}(x_{i+1}) \quad 0\le i \le n-2\\
364     f''_{i+1}&=&f''_i+f'''_i(x_{i+1}-x_i)=f''_i+f'''_ih_i\\
365     f'''_i&=&\frac{f''_{i+1}-f''_i}{h_i}
366     \end{eqnarray*}
367     En ajoutant la relation précédente \eqref{eqnspline} il vient
368     \begin{eqnarray*}
369     f'''_i&=&\frac{f''_{i+1}-f''_i}{h_i} \quad 0\le i \le n-1
370     \end{eqnarray*}
371     \item Continuité de la fonction pour les $n-1$ points intérieurs et le point final
372     \begin{eqnarray*}
373     p_{i+1}(x_{i+1})&=&f(x_{i+1})=f_{i+1} \quad 0\le i \le n-1\\
374     &=&f_i+f'_i(x-x_i)+\frac{f''_i}{2!}(x-x_i)^2+\frac{f'''_i}{3!}(x-x_i)^3 \quad 0\le i \le n-1\\
375     &=&f_i+f'_ih_i+\frac{f''_i}{2}h_i^2+\frac{f'''_i}{6}h_i^3 \\
376     h_if'_i&=&f_{i+1}-f_i-\frac{f''_i}{2}h_i^2-\frac{f'''_i}{6}h_i^3 \\
377     f'_i&=&\frac{f_{i+1}-f_i}{h_i}-\frac{f''_i}{2}h_i-\frac{f'''_i}{6}h_i^2 \\
378     f'_i&=&f[x_i.x_{i+1}]-\frac{f''_i}{2}h_i-\frac{f'''_i}{6}h_i^2 \\
379     f'_i&=&f[x_i.x_{i+1}]-\frac{f''_i}{2}h_i-\frac{\frac{f''_{i+1}-f''_i}{h_i}}{6}h_i^2 \\
380     f'_i&=&f[x_i.x_{i+1}]-\frac{f''_i}{3}h_i-\frac{f''_{i+1}}{6}h_i \\
381     \end{eqnarray*}
382     \item Continuité de la dérivée première pour les $n-1$ points intérieurs
383     \begin{eqnarray*}
384     p'_i(x_{i+1})&=& p'_{i+1}(x_{i+1}) \quad 0\le i \le n-2\\
385     f'_i+(x_{i+1}-x_i)f''_i+(x_{i+1}-x_i)^2\frac{f'''_i}{2}&=&f'_{i+1}\\
386     f'_i+h_i f''_i+h_i^2\frac{f'''_i}{2}&=&f'_{i+1}\\
387     f[x_i.x_{i+1}]-\frac{f''_i}{3}h_i-\frac{f''_{i+1}}{6}h_i+h_i f''_i+h_i^2\frac{f'''_i}{2}&=&f[x_{i+1},x_{i+2}]-\frac{f''_{i+1}}{3}h_{i+1}-\frac{f''_{i+2}}{6}h_{i+1}\\
388     f[x_i.x_{i+1}]-\frac{f''_i}{3}h_i-\frac{f''_{i+1}}{6}h_i+h_i f''_i+h_i^2\frac{\frac{f''_{i+1}-f''_i}{h_i}}{2}&=&f[x_{i+1},x_{i+2}]-\frac{f''_{i+1}}{3}h_{i+1}-\frac{f''_{i+2}}{6}h_{i+1}\\
389     f[x_i.x_{i+1}]-\frac{f''_i}{3}h_i-\frac{f''_{i+1}}{6}h_i+h_i f''_i+h_i\frac{f''_{i+1}-f''_i}{2}&=&f[x_{i+1},x_{i+2}]-\frac{f''_{i+1}}{3}h_{i+1}-\frac{f''_{i+2}}{6}h_{i+1}\\
390     h_if''_i+2(h_i+h_{i+1})f''_{i+1}+h_{i+1}f''_{i+2}&=&6f[x_{i+1},x_{i+2}]-6f[x_{i},x_{i+1}]\\
391     \frac{h_i}{h_i+h_{i+1}}f''_i+2f''_{i+1}+\frac{h_{i+1}}{h_i+h_{i+1}}f''_{i+2}&=&\frac{6f[x_{i+1},x_{i+2}]-6f[x_{i},x_{i+1}]}{h_i+h_{i+1}}\\
392     \frac{h_i}{h_i+h_{i+1}}f''_i+2f''_{i+1}+\frac{h_{i+1}}{h_i+h_{i+1}}f''_{i+2}&=&6f[x_i,x_{i+1},x_{x+2}]\\
393     \end{eqnarray*}
394     \end{itemize}
395     On obtient ainsi $n-1$ équations pour les $n+1$ coefficients $f''_i$. Pour les deux autres équations on fixe la courbure aux deux extrémités : $f''_0=a$ et $f''_n=b$.
396     \\Si $a=b=0$ on parle de spline cubique naturelle.
397     \\ On aboutit alors au système suivant
398    
399     \begin{eqnarray*}
400     \begin{pmatrix}
401     1 & 0 & 0 & 0 & ... & 0\\
402     \frac{h_0}{h_0+h_1} & 2 & \frac{h_1}{h_0+h_1} & 0 & ... & 0\\
403     0 &\frac{h_1}{h_1+h_2} & 2 & \frac{h_2}{h_1+h_2} & ... & 0\\
404     & & & &\vdots & &\\
405     0 &0 & 0 & 0 & ... & \frac{h_{n-1}}{h_{n-2}+h_{n-1}}\\
406     0 & 0 & 0 & 0 & ... & 1\\
407     \end{pmatrix}
408     \begin{pmatrix}
409     f''_0\\
410     f''_1\\
411     f''_2\\
412     \vdots\\
413     f''_{n-1}\\
414     f''_n\\
415     \end{pmatrix}
416     =
417     \begin{pmatrix}
418     a\\
419     6f[x_0,x_1,x_2]\\
420     6f[x_1,x_2,x_3]\\
421     \vdots\\
422     6f[x_{n-2},x_{n-1},x_n]\\
423     b\\
424     \end{pmatrix}
425     \end{eqnarray*}
426    
427     Pour finir les $f''_i$ sont solutions de ce système tridiagonal avec pivot toujours différent de $0$ et les autres inconnues sont
428     \begin{eqnarray*}
429     f_i&=&f(x_i)=y_i\\
430     f'_i&=&f[x_i.x_{i+1}]-\frac{f''_i}{3}h_i-\frac{f''_{i+1}}{6}h_i\\
431     f'''_i&=&\frac{f''_{i+1}-f''_i}{h_i}\\
432     p_i(x)&=&f_i+f'_i(x-x_i)+\frac{f''_i}{2!}(x-x_i)^2+\frac{f'''_i}{3!}(x-x_i)^3\\
433     avec\quad 0 &\le& i \le n-1
434     \end{eqnarray*}
435     \\
436     \\
437     Exemple : interpolation d'une spline cubique naturelle pour les points $(1,1),(2,9),(4,2),(5,11)$
438     \\
439     \\
440     On construit d'abord la table des différences divisées \\ \\
441     \begin{tabular}{|r|r|l|l|l|}
442     \hline
443     $x_i$ & $f(x_i)$ & $f[x_i,x_{i+1}]$ & $f[x_i,x_{i+1},x_{i+2}]$ & $h_i$ \\
444     \hline
445     $1$ & $1$ & & & $1$ \\
446     & & $\frac{9-1}{2-1}=8 $ & & \\
447     $2$ & $9$ & & $\frac{\frac{-7}{2}-8}{4-1}=\frac{-23}{6}$ & $2$ \\
448     & & $\frac{2-9}{4-2}=\frac{-7}{2}$ & & \\
449     $4$ & $2$ & & $\frac{9-\frac{-7}{2}}{5-2}=\frac{25}{6}$ & $1$ \\
450     & & $\frac{11-2}{5-4}=9 $ & & \\
451     $5$ & $11$ & & & \\
452    
453     \hline
454     \end{tabular}
455     \\
456     \\
457     On peut ensuite écrire le système :
458     \\
459     \begin{eqnarray*}
460     \begin{pmatrix}
461     1 & 0 & 0 & 0 \\
462     \frac{1}{3} & 2 & \frac{2}{3} & 0 & \\
463     0 &\frac{2}{3} & 2 & \frac{1}{3} \\
464     0 & 0 & 0 & 1\\
465     \end{pmatrix}
466     \begin{pmatrix}
467     f''_0\\
468     f''_1\\
469     f''_2\\
470     f''_3\\
471     \end{pmatrix}
472     =
473     \begin{pmatrix}
474     0\\
475     6\frac{-23}{6}\\
476     6\frac{25}{6}\\
477     0\\
478     \end{pmatrix}
479     =
480     \begin{pmatrix}
481     0\\
482     -23\\
483     25\\
484     0\\
485     \end{pmatrix}
486     \end{eqnarray*}
487     La solution de ce système est
488     \begin{eqnarray*}
489     \begin{pmatrix}
490     f''_0\\
491     f''_1\\
492     f''_2\\
493     f''_3\\
494     \end{pmatrix}
495     =
496     \begin{pmatrix}
497     0\\
498     \frac{-141}{8}\\
499     \frac{147}{8}\\
500     0\\
501     \end{pmatrix}
502     \end{eqnarray*}
503     L'interpolation est donc
504     \begin{itemize}
505     \item pour $x \in [1,2]$
506     \begin{eqnarray*}
507     f_0&=&1\\
508     f'_0&=&f[x_0,x_1]-ho\frac{f''_0}{3}-h_0\frac{f''_1}{6}=8-1\frac{0}{3}-1\frac{\frac{-141}{8}}{6}=\frac{175}{16}\\
509     f''_0&=&0\\
510     f'''_0&=&\frac{f''_1-f''_0}{h_0}=\frac{\frac{-141}{8}-0}{1}=\frac{-141}{8}\\
511     p_0(x)&=&1+\frac{175}{16}(x-1)+\frac{0}{2}(x-1)^2+\frac{-141}{6*8}(x-1)^3
512     \end{eqnarray*}
513     \item pour $x \in [2,4]$
514     \begin{eqnarray*}
515     f_1&=&9\\
516     f'_1&=&f[x_1,x_2]-h1\frac{f''_1}{3}-h_1\frac{f''_2}{6}=\frac{-7}{2}-2\frac{\frac{-141}{8}}{3}-2\frac{\frac{147}{8}}{6}=\frac{17}{8}\\
517     f''_1&=&\frac{-141}{8}\\
518     f'''_1&=&\frac{f''_2-f''_1}{h_1}=\frac{\frac{147}{8}-\frac{-141}{8}}{2}=18\\
519     p_1(x)&=&9+\frac{17}{8}(x-2)+\frac{-141}{2*8}(x-2)^2+\frac{18}{6}(x-2)^3
520     \end{eqnarray*}
521     \item pour $x \in [4,5]$
522     \begin{eqnarray*}
523     f_2&=&2\\
524     f'_2&=&f[x_2,x_3]-h_2\frac{f''_2}{3}-h_2\frac{f''_3}{6}=9-1\frac{\frac{147}{8}}{3}-1\frac{0}{6}=\frac{23}{8}\\
525     f''_2&=&\frac{147}{8}\\
526     f'''_2&=&\frac{f''_3-f''_2}{h_2}=\frac{0-\frac{147}{8}}{1}=\frac{-147}{8}\\
527     p_2(x)&=&2+\frac{23}{8}(x-4)+\frac{147}{2*8}(x-4)^2+\frac{-147}{8*6}(x-4)^3
528     \end{eqnarray*}
529    
530     \end{itemize}
531    
532     \subsection{Les splines paramétrées}
533     \subsubsection{Construction}
534     En CAO, souvent on utilise des splines pour faire passer une courbe par une série de points. Ces courbes ne sont pas de la forme $y=f(x)$ ce qui fait que les méthodes vues ne sont pas directement utilisables.
535     \\Le problème est de faire passer une courbe par les points $(x_0,y_0,z_0),...,(x_n,y_n,z_n)$. Pour cela, nous allons transformer ce problème en un problème paramétrique, la courbe est définie par un paramètre $t$.
536     \\Ainsi les points les points s'écrivent $(x(t_0),y(t_0),z(t_0)),...,(x(t_n),y(t_n),z(t_n))$. On obtient ainsi une courbe paramétrée $C(t)=\overrightarrow{x}[x(t),y(t),z(t)]$
537     \\ On construit une série de paramètre $t$ appelé vecteur noeud ou ``knot'' et on réalise une interpolation dans chacune des directions de l'espace pour déterminer les interpolations de $x(t),y(t),z(t)$.
538     \\ Pour la série $t$, on a une infinité de choix. Les plus courant sont \begin{itemize}
539     \item $t_i=i$.
540     \item $t_0=0$ et $t_i=t_{i-1}+\| \overrightarrow{x_i}-\overrightarrow{x_{i-1}}\|_2$
541     \end{itemize}
542    
543     Exemple : Tracer la courbe qui passe les points $(1,0)$,$(\frac{\sqrt{2}}{2},\frac{\sqrt{2}}{2})$,$(0,1)$,$(\frac{-\sqrt{2}}{2},\frac{\sqrt{2}}{2})$,$(-1,0)$ ,$(\frac{-\sqrt{2}}{2},\frac{-\sqrt{2}}{2})$,$(0.-1)$,$(\frac{\sqrt{2}}{2},\frac{-\sqrt{2}}{2})$ et $(1,0)$.
544     \\
545     \\On construit un vecteur de $t=[0$ $1$ $2$ $3$ $4$ $5$ $6$ $7$ $8]$ et on réalise l'interpolation $x(t)$ et $(y(t)$ pour obtenir la figure suivante
546     \begin{center}
547     \includegraphics[width=12cm,bb=0 0 499 347]{./splineex.jpg}
548     % splineex.jpg: 665x463 pixel, 96dpi, 17.59x12.25 cm, bb=0 0 499 347
549     \end{center}
550    
551     Le résultat montre que le cercle n'est vraiment un cercle parfait.
552     \subsubsection{Exemple de modification des splines cubiques pour les courbes fermées}
553     Pour que la courbe précédente parraisse bien lisse au point de départ et au point d'arrivée, il faut utiliser des relations pour fixer le début et la fin de la courbe au lieu de prendre des splines cubiques naturelles.
554     Les conditions supplémentaires à imposer sont
555     \begin{eqnarray*}
556     \left \{
557     \begin{array}{l}
558     P'_0(x_0)=P'_{n-1}(x_n)\\
559     P''_0(x_0)=P''_{n-1}(x_n)\\
560     \end{array}
561     \right.
562     \end{eqnarray*}
563     \begin{eqnarray*}
564     \left \{
565     \begin{array}{l}
566     f'_0=f'_{n-1}+h_{n-1}f''_{n-1}+\frac{h^2_{n-1}}{2}f'''_{n-1}\\
567     f''_0=f''_{n-1}+h_{n-1}f'''_{n-1}\\
568     \end{array}
569     \right.
570     \end{eqnarray*}
571     \begin{eqnarray*}
572     \left \{
573     \begin{array}{l}
574     f[x_0,x_1]-h_0\frac{f''_0}{3}-h_1\frac{f''_1}{6}=f[x_{n-1},x_n]-h_{n-1}\frac{f''_{n-1}}{3}-h_{n-1}\frac{f''_1}{6}+h_{n-1}f''_{n-1}+\frac{h^2_{n-1}}{2}\frac{f''_n-f''_{n-1}}{h_{n-1}}\\
575     f''_0=f''_{n-1}+h_{n-1}\frac{f''_n-f''_{n-1}}{h_{n-1}}\\
576     \end{array}
577     \right.
578     \end{eqnarray*}
579     \begin{eqnarray*}
580     \left \{
581     \begin{array}{l}
582     h_0\frac{f''_0}{3}+h_0\frac{f''_1}{6}+h_{n-1}\frac{f''_{n-1}}{6}+h_{n-1}\frac{f''_{n}}{3}=f[x_0,x_1]-f[x_{n-1},x_n]\\
583     f''_0-f''_{n}=0\\
584     \end{array}
585     \right.
586     \end{eqnarray*}
587     En remplaçant la première et la dernière équations par ces équations dans le système, nous obtenons une courbe parfaitement lisse. Dans ce cas le système n'est plus tridiagonal l'algorithme LU fourni en annexe ne fonctionne plus. Il faut utiliser un algorithme de LU plus géneral comme celui vu au chapitre précédent.
588     Le résultat donne la courbe suivante :
589     \begin{center}
590     \begin{center}
591     \includegraphics[width=12cm,bb=0 0 929 604]{./splineex2.jpg}
592     % splineex2.jpg: 1238x805 pixel, 96dpi, 32.76x21.30 cm, bb=0 0 929 604
593     \end{center}
594     \end{center}