0% ont trouvé ce document utile (0 vote)
98 vues2 pages

Interpolation Numérique 1D et 2D

Ce document décrit des exercices d'interpolation numérique 1D et 2D. L'exercice 1 concerne l'interpolation de Lagrange 1D pour approcher une fonction inconnue à partir de mesures. L'exercice 2 étudie le phénomène de Runge. L'exercice 3 traite de l'interpolation 2D avec FreeFem++.

Transféré par

ygg736974
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
98 vues2 pages

Interpolation Numérique 1D et 2D

Ce document décrit des exercices d'interpolation numérique 1D et 2D. L'exercice 1 concerne l'interpolation de Lagrange 1D pour approcher une fonction inconnue à partir de mesures. L'exercice 2 étudie le phénomène de Runge. L'exercice 3 traite de l'interpolation 2D avec FreeFem++.

Transféré par

ygg736974
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Rouen Calcul Scientifique

L3-Mathématiques I. DANAILA
2011–2012 [email protected]

À 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