Vous êtes sur la page 1sur 2

Université de Rouen Calcul Scientifique

L3-Mathématiques I. DANAILA
2011–2012 ionut.danaila@univ-rouen.fr

À la fin de cette séance vous enverrez vos programmes à mon adresse Email, avec
L3-CS-TP2 en sujet et votre nom et prénom dans le corps du message.

TP 2 : Interpolation numérique 1D et 2D

Exercice 1 Interpolation de Lagrange en 1D (programme TP2_ex1.edp)

Considérons un phénomène décrit par une fonction inconnue f (x) : [a, b] → IR. Nous disposons de
n + 1 observations (mesures), y0 , y1 , . . . yn correspondant à n + 1 valeurs du paramètre x :
a = x0 < x1 < . . . xn−1 < xn = b. Nous nous proposons de modéliser le phénomène f pour prédire
son comportement pour une valeur x̃ différente des points de mesure.
Nous utiliserons l’interpolation de Lagrange pour approcher f (x) par le polynôme de Lagrange pn (x).
1. Définir les paramètres du problème : a = 0, b = 1, n = 8, et la fonction qui va nous permettre de
tester le programme f (x) = sin(10 ∗ x ∗ cos(x)) (Consulter la documentation pour définir une
fonction).
2. Définir deux vecteurs xx et yy de taille n + 1 . Remplir xx avec des valeurs entre a et b, distri-
buées de manière équidistante (chaque sous-intervalle est de longueur constante h). Remplir yy
avec les valeurs f (xx(i)).
3. Ecrire dans un fichier, sur deux colonnes, xx et yy et tracer le graphique de f avec Gnuplot.
4. Calculer les différences divisées dans un tableau c de taille n + 1 suivant l’algorithme
pour k = 0 % n faire :



ck ← yyk

fin


pour p = 1 % n faire :



pour k = n & p faire :


ck ← (ck − ck−1 )/(xk − xk−p )

fin




fin
5. Définir un vecteur xP qui contient des abscisses des points (de prédiction) distribuées entre a et
b avec un pas constant de h/2.
6. Le vecteur f xP va contenir les valeurs correspondant à l’évaluation du polynôme d’interpola-
tion : pn (xPi ). Calculer ces valeurs en utilisant l’algorithme de Horner pour calculer y = pn (x̃) :
y = cn

pour k = n − 1 & 0 faire :


y = (x̃ − xk )y + ck




fin
7. Ecrire dans un fichier, sur deux colonnes, xP et f xP et tracer le points interpolés ; superposer
avec le graphique de f .

1
8. Rajouter dans le programme un calcul de f x par interpolation linéaire ar morceaux (utiliser l’al-
gorithme présenté en cours basé sur les éléments finis 1D). Superposer sur une même figure les
trois courbes, comme dans l’exemple plus bas.

Interpolation 1D f(x)=sin(10.*x*cos(x))
1
echantillonage (n=8)
Lagrange (n=16)
Lineaire par morceaux (n=16)
sin(10.*x*cos(x))

0.5

-0.5

-1

-1.5
0 0.2 0.4 0.6 0.8 1

Exercice 2 Phénomène de Runge (programme TP2_ex2.edp)

Utiliser le programmer précédent pour approcher la fonction f (x) = (0.1 + x2 )−1 sur [−1, 1]. On
considère h = 0.2. Commenter le résultat.

Exercice 3 Interpolation 2D avec FreeFem++ (programme TP2_ex3.edp)

Nous allons explorer les possibilités offertes par FreeFem++ pour interpoler une fonction 2D, f (x, y).
1. Construire le maillage (Thg) du carré [−1, 1] × [−1, 1] avec (n = 20) × (m = 30) points
distribués sur les frontières (consulter la documentation pour l’instruction square).
2. Définir l’espace des éléments finis P 1 (linéaires) associé à Thg et représenter sur ce maillage
grossier la fonction f (x, y) = (x + y) ∗ exp(−6. ∗ (x ∗ x + y ∗ y)). On va noter l’approximation
P 1 ainsi obtenue par fg. Visualiser cette variable.
3. Construire un maillage fin (Thf) du même carré avec (n = 70) × (m = 70) points distribués
sur les frontières. Trouver ff qui l’interpolé de fg sur le nouveau maillage. Visualiser ff. Com-
menter.
4. Réaliser la situation inverse : on dispose d’un maillage fin et on calcule l’interpolé de la fonction
sur un maillage grossier. (programme TP2_ex3b.edp)

Programmes à envoyer par Email :


TP2_ex1.edp et le graphique Gnuplot obtenu
TP2_ex2.edp et le graphique Gnuplot obtenu
TP2_ex3.edp
TP2_ex3b.edp

Vous aimerez peut-être aussi