P. 1
Application des différentes méthodes numériques d’interpolations en MATLAB

Application des différentes méthodes numériques d’interpolations en MATLAB

|Views: 10,347|Likes:
Publié parBenkhada Hamane
Les méthodes numériques d’interpolation,Application de la méthode d’interpolation en MATLAB,. Définition de l’analyse numérique,Les particularités de MATLAB ,Présentation de MATLAB,Introduction et Historique de MATLAB,L’objectif de l’interpolation,Interpolation.
Les méthodes numériques d’interpolation,Application de la méthode d’interpolation en MATLAB,. Définition de l’analyse numérique,Les particularités de MATLAB ,Présentation de MATLAB,Introduction et Historique de MATLAB,L’objectif de l’interpolation,Interpolation.

More info:

Categories:Types, School Work
Published by: Benkhada Hamane on May 19, 2010
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/12/2014

pdf

text

original

1

République Algérienne Démocratique et Populaire
ECOLE NORMALE SUPERIEURE D’ENSEIGNEMENT TECHNIQUE
- ORAN -
DÉPARTEMENT DU GÉNIE ELECTRIQUE
MAGISTER PREMIERE ANNEE
OPTION
ANALYSE ET COMMANDE DES MACHINES ELECTRIQUES
MODULE DES METHODES NUMERIQUES
Sous la direction de : Mr. BELAIDI.
Réalisé par : Mr. HAMANE BEKHADA.
E-mail :hamane.bekhada@yahoo.com
Promotion 2008-2009
Application des différentes méthodes
numériques d’interpolations en
2
Sommaire
Introduction générale 03
Chapitre I : Les méthodes numériques d’interpolation
I.1. Définition de l’analyse numérique
I.1.1. Définition générale
I.1.2. Définition mathématique
I.1.3. Définition algorithmique
I.1.4. Champ d’application
I.2. Position du problème
I.3. L’objectif de l’interpolation
I.4. Interpolation
I.4.1. Interpolation linéaire
I.4.2. L’interpolation de Lagrange
I.4.3. Limites de l’interpolation polynomiale
I.4.4. Interpolation par des splines
I.4.5. Approximation au sens des moindres carrés
I.4.5.1. Droite des moindres carrés
I.4.5.2. Généralisation : polynôme des moindres carrés
I.4.6. La méthode de Newton
I.4.6.1.Évaluation de polynôme
I.4.6.2. Calcul des coefficients
I.4.7. La méthode de Neville
04
04
04
04
04
04
05
05
05
06
06
07
09
09
10
10
10
11
12
Chapitre II : Application de la méthode d’interpolation en MATLAB
II.1. Présentation de MATLAB
II.1.1. Introduction et Historique de MATLAB
II.1.2. Les particularités de MATLAB
II.1.3. MATLAB peut-il s’en passer de la nécessité de Fortran ou du C
II.1.4.Écriture d’un programme MATLAB
II.1.5. Génération de graphique avec MATLAB
II.2. Opérations sur les polynômes dans MATLAB
II.2.1. Multiplication des polynômes
II.2.2. Division des polynômes
II.2.3. Manipulation de fonctions polynomiales dans MATLAB
II.2.4 Évaluation d’un polynôme
II.3. Interpolation linéaire et splines cubiques
II.4. Interpolation de Lagrange
II.5. Interpolation au sens des moindres carrés
II.6. Interpolation par La méthode de Newton
II.6.1. Calcul Polynôme de Newton
II.6.2. Calcul le coefficient de Newton
II.7. Interpolation par La méthode de Neville
Conclusion générale
Référence Bibliographique
14
14
15
15
15
16
16
17
17
18
19
20
21
23
25
25
26
27
28
29
3
Introduction générale
Depuis une vingtaines d’années, la puissance croissante des ordinateurs a permis d’aborder, puis de
résoudre complètement des problèmes de plus en plus nombreux et de plus en plus difficiles, par leur
complexité propre et par le nombre des informations à traiter ,l’ingénieur d’aujourd’hui ne doit pas
ignorer ces techniques ,ni les situations nouvelles qu’elles permettent de considérer .
De ce fait, il doit posséder une bonne formation tant en Analyse Mathématique qu’en Analyse
Numérique et en Analyse Statistique, en vue d’une meilleur compréhension des phénomènes et donc
d’une meilleur utilisation de ce nouveau moyen d’investigation et de décision.
Les principaux problèmes rencontrés par des ingénieurs dans les domaines scientifiques et techniques
ont souvent une origine dans une des grandes branches de la physique ou de la mécanique où les
équations différentielles, intégral, intégro-différentielles te aux dérivées partielles jouent un rôle tout à
fait fondamental.
On peut citer, par exemple, en :
 Génie atomique, les problèmes de transfert de chaleur et de transfert de neutrons.
 Sciences des matériaux, les problèmes de diffusion.
 Mécanique quantique, les problèmes de propagations des ondes
(Equation de SCHRODINGER).
 Génie civil, les problèmes de résistance des matériaux et de mécanique des sols.
 Bâtiments, les problèmes de mécanique des structures et d’acoustique.
 Automobile et Aviation, les problèmes de lissage des carrosseries et des cellules.
 Electrotechnique, l’étude des réseaux complexes de distribution.
 Hydraulique, les écoulements permanents et transitoires, la propagation d’ondes, les coups de
bélier.
Par ailleurs, dans toutes les branches d’activités industrielles et économiques, en particulier dans les
génies (chimique, civil, électrique, mécanique, métallurgique,...),les ingénieurs sont amenés à résoudre
des problèmes d’optimisation c’est-à-dire à choisir, entre plusieurs solutions possibles, celle qui est la
meilleure .Il s’agit donc de minimiser ,ou de maximiser ,un critère (coût, profit, distance, temps,
masse, énergie, rendement,…) sur l’ensemble est définit par un système d’équation et/ou d’inéquation
qui traduisent les contraintes imposées aux paramètres soit par des raisons techniques, soit par des
règlements.
Un problème d’optimisation se rencontre sous différentes formes en particulier en programmation
linéaire et non linéaire, en théorie de l’approximation, en théorie de contrôle (avec équations
différentielles ou aux dérivées partielles), en programmation stochastique, en programmation en
nombre entier, en programmation dynamique. [1]
Le travail présenté, consiste à l’étude des méthodes numériques de l’interpolation
 Le premier chapitre sera consacré à l’étude des méthodes numériques et toutes les méthodes
d’interpolation.
 Enfin Le deuxième chapitre, consistera en une présentation de MATLAB et la programmation
des ces méthodes d’interpolation en MATL
4
Chapitre I :
Les méthodes numériques d’interpolation
I.1. Définition de l’analyse numérique : [1]
I.1.1 .Définition générale :
L’analyse numérique est le domaine des mathématiques où l’on étudie des algorithmes permettant de
résoudre des problèmes de l’analyse mathématiques au moyen du calcul arithmétique.
I.1.2. Définition mathématique :
La mathématique de l’analyse numérique s’intéresse à l’étude des conditions d’existence et d’unicité
de la solution ainsi qu’aux performances du procédé de résolution (convergence, stabilité, précision,
etc.) d’un problème.
I.1.3 .Définition algorithmique :
La résolution algorithmique d’un problème comporte :
 L’approximation d’un problème mathématique décrit en termes d’opérateurs de l’analyse (i.e. :
dérivées, intégrales …) par un problème numérique définit au moyen des seuls opérations
arithmétiques.
 L’élaboration d’un procédé de résolution de ce problème numérique associé.
I.1.4 .Champ d’application :
Les méthodes numériques s’intéressent à trouver une approximation de la solution de :
1-Problème dont on ne connaît pas l’expression analytique.
2-Problème dont la solution analytique est inconnue ou inexploitable.
Les méthodes numériques ont donc les caractéristiques suivantes :
 Elles peuvent remplacer les méthodes analytiques quand celles-ci font défaut ou qu’elles sont
de mise en œuvre trop complexe ;
 Elles conduisent à une approximation de la solution, la précision pouvant généralement
s’améliorer au prix d’un effort de calcul plus important.
 Elles sont directement adaptables sur ordinateur, mais elles peuvent parfois échouer.
Pour mon cas j’ai choisi les méthodes numériques des interpolations.
I.2. Position du problème : [5]
Étant donné un ensemble de doublets numériques (résultats expérimentaux, par exemple), le problème
à résoudre consiste à trouver un modèle mathématique (polynomial, trigonométrique, exponentiel,
etc.), et ses paramètres significatifs (c'est à dire ses coefficients), afin de réduire (on parle de
régression) toute une information en une expression mathématique utilisable, c’est à dire calculable,
intégrable, dérivable, etc. Lorsque les doublets sont considérés comme ‘sûrs’, au sens expérimental du
mot, on tentera une interpolation qui restituera toutes les valeurs numériques des doublets là où ils se
trouvent. Lorsque les doublets sont entachés d’incertitudes sur leurs déterminations, en particulier s’ils
sont très nombreux, on tentera une approximation qui restituera ‘au mieux’ l’information contenue
dans les doublets. On raisonne sur une fonction numérique ‘f’ à une seule variable réelle x, connue
pour N valeurs. Soit n, le nombre de paramètres du modèle mathématique à déterminer.
5
(a) (b)
Figure. I.1. (a) : Le modèle est vérifié pour tous Les doublets interpolation
Figure. I.1. (b) : Le modèle est optimisé entre tous les doublets approximation
I.3. L’objectif de l’interpolation : [5]
L’objectif principal de l’interpolation est d’interpoler des données connues à partir des points discrets.
Dans ce cas, la valeur de la fonction entre ces points peut être estimée. Cette méthode d’estimation
peut être étendue et utilisée dans divers domaines ; à savoir la dérivation et l’intégration numérique des
polynômes.
I.4. Interpolation : [5]
Étant donné (n+1) points {(x
0,
y
0
), (x
1,
y
1
),..., (x
n,
y
n
)}.Les (x
i
)
0s i s n
sont appelés points d’interpolation.
Les (y
i
)
0s i s n
représentent les valeurs d’interpolation. Pour interpoler une fonction f, on définit ces
valeurs d’interpolation comme suit :
y
i =
f (x
i
), ¬i=0,…, n
I.4.1. Interpolation linéaire : [6]
L'interpolation la plus simple est l'interpolation linéaire qui s'écrit à une dimension.
f(c) = pf
i
+ (1-p) f
i+1
; 1s is N-1
Ou [x
i
; x
i+1
] est le sous-intervalle contenant x et
i i
i
x x
x x
P
÷
÷
=
+
+
1
1
Cette méthode est imparable. Non seulement elle est rapide et ne présuppose pas un espacement
régulier des points, mais elle assure que f(x) est toujours situe dans le rectangle défini par les points
diamétralement opposes (x
i
; f
i
) et (x
i+1
; f
i+1
). Son inconvénient majeur, surtout si l'échantillonnage est
« diffus", elle produit une fonction d'apparence non lissée, plutôt en ligne brisée. Ceci peut être tries
gênant (en particulier, la dérivée première est discontinue).
6
I.4.2 L’interpolation de Lagrange : [4]
Une solution simple, élégante et économique de ce problème est fournie par l’utilisation de la base des
polynômes de Lagrange.
On considère les n + 1 polynômes L
i
de degré ≤ n qui vérifient, pour tout i et j compris entre 0 et n, les
égalités :
¹
´
¦
=
=
0 ) (
1 ) (
j i
i i
x L
x L
Les polynômes L
i
sont détermines de façon unique par les n + 1 équations ci-dessus.
Il est facile de montrer qu’ils forment une base de l’espace des polynômes de degré inférieur ou égal à
n et qu’ils s’´ecrivent :
I
= =
÷
÷
=
n
i j j
j i
j
i
x x
x x
x L
0
) (
Exprimé dans cette nouvelle base, le polynôme d’interpolation s’´ecrit
¯
=
=
n
i
i i x L y x P
0
) ( ) (
La relation ci-dessus, facile à vérifier, explique l’intérêt de la base de Lagrange.
Les coefficients du polynôme d’interpolation cherché sont, dans cette base, tout simplement les valeurs
y
i
données. Exprimé autrement, le changement de base, de la base canonique à la base de Lagrange, a
transformé le système à résoudre en un système à matrice identité.
Il peut montrer que l'erreur dans l'interpolation polynôme est :
) (
!
) )...( )( (
) ( ) (
) (
2 1
1 c
n
n
n f
n
x x x x x x
x P x f
÷ ÷ ÷
= ÷ ÷
Où le ξ se situe quelque part dans l'intervalle (x
1
, x
n
) ; sa valeur est autrement inconnue. Elle est
instructive pour noter que plus un point de repères est de x lointain, plus qu'il contribue à l'erreur au x.
I.4.3. Limites de l’interpolation polynomiale : L’interpolation polynomiale est la base de
nombreuses techniques numériques, en particulier les techniques d’intégration approchée. Elle se
généralise de façon naturelle aux cas de dimension supérieure à un. [4]
Cependant elle a des limites :
 théoriques : on n’est pas assuré de la convergence du polynôme d’interpolation vers la fonction
interpolée lorsque l’on fait tendre le nombre de points d’interpolation (et donc le degré du
polynôme) vers l’infini.
 numériques : même dans le cas où la convergence théorique est assurée, les instabilités de
calcul provenant de l’accumulation des erreurs d’arrondis, auxquelles le procédé
d’interpolation polynomiale est particulièrement sensible, limite l’usage de cette technique dès
que le nombre de points d’interpolation dépasse la dizaine ;
 pratiques : remarquons que dans de nombreux cas, les valeurs données résultent d’expériences
ou de calculs préalables. Ces valeurs sont donc approximatives. Le problème réel n’est alors
plus un problème d’interpolation, mais plutôt un problème de meilleure approximation pour
lequel les méthodes de moindres carrés, sont mieux adaptées.
7
I.4.4. Interpolation par des splines :
Pour éviter l’inconvénient, signalé plus haut, de l’augmentation du degré du polynôme et de
l’instabilité qui en résulte, lorsque le nombre de points est grand,
Figure. I.2 : Divergence de l’interpolation polynomiale pour la fonction
2
1
1
x
y
+
=
. Phénomène de
Runge .En pointillés : la fonction, en train pleins : le polynôme d’interpolation de
degré 10 Construit sur 11 points régulièrement espacés.
Tout en restant dans un procédé d’interpolation, on subdivise l’ensemble des points donnés en
plusieurs sous-ensembles. On réalise les interpolations sur ces petits sous-ensembles, ce qui permet de
se limiter à des polynômes de bas degré.
Les fonctions polynomiales par morceaux obtenues sont à la base des éléments finis de Lagrange.
Figure. I.3.Une fonction affine par morceaux
Figure. I.4.Une fonction polynomiale de degré deux par morceaux
Les interpolations ci-dessus produisent des fonctions globalement continues mais non continûment
dérivables.
Les splines cubiques d’interpolation sont des fonctions cubiques par morceaux, globalement C
2
. On
obtient leur expression analytique, segment par segment, en imposant les conditions suivantes aux
points x
i
d’interpolation
s (x
i
) = y
i
donné pour i = 0,…, n, s′ et s′′ continues
8
Figure .I.5 .Spline cubique d’interpolation pour
2
1
1
x
y
+
=
Les inconnues du problème sont alors les dérivées secondes C
i
de la spline aux points x
i
. On suppose la
dérivée seconde de la spline affine par intervalles. On intègre deux fois en prenant en compte les
conditions de continuité de la dérivée et les valeurs données y
i
aux points x
i
. On en déduit les
expressions suivantes de la spline sur chaque intervalle [x
i
, x
i+1
] :
i
i
i
i
i
i i
i
i i
i
i
i
i
h
x x
y
h
x x
y x x hi
h
x x C
x x h
h
x x C
x S i
i ) ( ) (
) (
) (
6
) (
) (
6
) ( 1
1
3
1
3
1
1 ÷
+
÷
+

÷ ÷
÷
+

÷ ÷
÷
= +
+ +
+
+
Avec h
i
= x
i+1
-x
i,
et où les C
i
sont solutions du système tridiagonal :
1
1
1
1
1
1
1
1 ) ( ) (
6 3 6 ÷
÷
+
+
+
÷
÷
÷ ÷
+
÷
= +
+
+
i
i i
i
i
i i
i
i
i
i i
i
i
h
y y
y
h
y y
C
h
C
h h
C
h
Pour i = 1,…, n- 1, complété, en général, par C
0
= C
n
= 0.
Voici par exemple (Figure .1.4) la spline cubique d’interpolation de la fonction
2
1
1
) (
x
x f
+
=
Sur 10 intervalles. On observe la stabilité de cette interpolation par contraste avec le résultat obtenu
(Figure. 1.2) par interpolation polynomiale.
I.4.5. Approximation au sens des moindres carrés : [3]
L’instabilité du procédé d’interpolation polynomiale lorsque le nombre de points augmente, d’une part,
l’incertitude des résultats de mesure, d’autre part, conduisent à préférer à l’interpolation des méthodes
d’approximation. Ainsi il est clair que l’expérimentateur qui relèvera 100 points quasiment alignés sera
plus intéressé par la droite passant “ au mieux ” par ces 100 points plutôt que par le polynôme de degré
99 réalisant l’interpolation exacte.
9
Figure. I. 6.Droite des moindres carrés
La plus célèbre et la plus utile des méthodes d’approximation est la méthode des moindres carrés. La
formalisation de l’idée intuitive d’une droite représentant “au mieux” un nuage de points au sens des
moindres carrés fait de la manière suivante.
I.4.5.1. Droite des moindres carrés :
Soient N valeurs y
1
, y
2
, ...y
i
, ...y
N
données aux N abscisses x
1
, x
2
, ...x
i
, ...x
N
.
Le polynôme P de degré un : P(x) = a
0
+ a
1
x (représenté par une droite) qui réalise la meilleure
approximation au sens des moindres carrés des valeurs y
i
données aux points x
i
est celui qui minimise
la somme des carrés des écarts entre les y
i
et les P (x
i
), soit
¯
=
+ ÷ =
N
i
i i x a a y a a S
1
2
1 0 1 0 )] ( [ ) , (
S apparaît comme le carré de la norme euclidienne du vecteur de composantes y
i
-(a
0
+ a
1
x
i
). La
minimisation de S s’interprète donc comme la recherche du vecteur le plus proche du vecteur Y
R
N
de composantes y
i
, dans le sous-espace de dimension deux engendré par les vecteurs U, de
composantes toutes égales à 1, et X, de composantes x
i
. Comme la norme utilisée est la norme
euclidienne, le vecteur le plus proche est le projet´e orthogonal. On obtient ses composantes a
0
et a
1
en
écrivant les relations d’orthogonalité :
¦
¦
¹
¦
¦
´
¦
= + ÷ = ÷ ÷
= + ÷ = ÷ ÷
¯
¯
=
=
N
i
i i i
N
i
i i
x x a a y X X a U a Y
x a a y U X a U a Y
1
1 0 1 0
1
1 0 1 0
0 )] ( [ ) (
0 1 )] ( [ ) (
Ceci conduit au système dit des équations normales pour a
0
et a
1
, coefficients de la droite des moindres
carrés (ou de régression) cherchée.
|
|
|
|
.
|

\
|
=
|
|
.
|

\
|
|
|
|
|
.
|

\
|
¯
¯
¯ ¯
¯
=
=
= =
=
i
N
i
i
N
i
i
N
i
i
N
i
i
N
i
i
y x
y
a
a
x x
x N
1
1
1
0
1
2
1
1
10
I.4.5.2. Généralisation : polynôme des moindres carrés :
Il est facile de généraliser le calcul précédent au cas de la recherche du polynôme de degré ≤ m,
avec m << N, qui réalise la meilleure approximation au sens des moindres carrés des y
i
. Ce polynôme
minimise
| |
2
1
2
2 1 0 1 .... ( ) ,..., , ( 0
¯
=
+ + + ÷ =
N
i
m
i m i i i m x a x a x a a y a a a S
On obtient les relations d’orthogonalité :
( )
( )
( )
¦
¦
¹
¦
¦
´
¦
= ÷ ÷ ÷
= ÷ ÷ ÷
= ÷ ÷ ÷
0 ...
....
0 ...
0 ...
1 0
1 0
1 0
m m
m
m
m
m
m
X X a X a U a Y
X X a X a U a Y
U X a X a U a Y
Où l’on a noté X
m
le vecteur de composantes.
m
i x
Les valeurs des coefficients a
k
du polynôme des moindres carrés s’en déduisent après résolution du
système linéaire déduit de la formule précédente.
I.4.6. La méthode de Newton : [2]
I.4.6.1.Évaluation de polynôme :
Bien que la méthode de Lagrange soit conceptuellement simple, elle ne se prête pas à un algorithme
rentable. Le meilleur procédé informatique est obtenu par la méthode de Newton, la où le polynôme
d’interpolation est écrit sous la forme :
n n n a x x x x x x a x x x x a x x a x P ) )...( )( ( ... ) )( ( ) ( ) ( 1 2 1 3 2 1 2 1 1 1 ÷ ÷ ÷ ÷ ÷ + + ÷ ÷ + ÷ + =
Ce polynôme se prête à un procédé d'évaluation rentable. Considérez, par exemple, quatre points
donnés (n = 4). Ici le polynôme d’interpolation est :
| | ( ) 4 3 3 2 2 1 1
3 2 1 3 2 1 2 1 1 3
) ( ) ( ) (
) )( )( ( ) )( ( ) ( ) ( 4
a x x a x x a x x a
a x x x x x x a x x x x a x x a x P
÷ + ÷ + ÷ + =
÷ ÷ ÷ + ÷ ÷ + ÷ + =
11
Ce qui peut être évalué avec les relations de récurrence suivantes :
) ( ) ( ) (
) ( ) ( ) (
) ( ) ( ) (
) (
2
3
1 1 3
1 2 2 2
0 3 1
4 0
x P x x a x P
x P x x a x P
x P x x a x P
a x P
÷ + =
÷ + =
÷ + =
=
Pour n arbitraire nous avons :
n a x P = ) ( 0
;
1 ,..., 2 , 1 ), ( ) ( ) ( 1 ÷ = ÷ + = ÷ ÷ ÷ n k x P x x a x P k k n k n k
I.4.6.2. Calcul des coefficients:
Les coefficients de P
n−1
(x) sont déterminés en forçant le polynôme pour passer par chaque point
donné : y
i
= P
n−1
(x
i
), i = 1, 2,…, N. Ceci rapporte les équations simultanées (a):
n n n n n n n a x x x x x x a x x a y
a x x x x a x x a y
a x x a y
a y
) )...( )( ( ... ) (
) )( ( ) (
2 ) (
1 2 1 1 1 1
3 2 3 2 1 3 3
1 2 1 2
1 1
3 1 1
÷ ÷ ÷ ÷ + + ÷ + =
÷ ÷ + ÷ + =
÷ + =
=

Présentation des différences divisées :
1
1
1 1
3
3
2 2
3
2
2
2
1
1
,..., 5 , 4 ,
,..., 4 , 3 ,
,..., 3 . 2 ,
÷ ÷
÷
÷ ÷
÷
÷
÷
÷
÷
÷
V ÷ V
= V
=
V V
= V
=
V V
= V
= = V
n n
n
n
i
n
n
i
i
i
i
i
i
i
i
i
x x
y y
y
n i
x x
y y
y
n i
x x
y y
y
n i
x x
y y
y
i

La solution de l’équation (a) est : 1 1 y a = 2 2 y a V = 3
2
3 y a V = ... n
n
n y a V =
Si les coefficients sont calculés à la main, il est nécessaire de travailler avec le format dans le
tableau.I.1 suivant (pour n = 5) :
12
Les limites de diagonale (y
1
, ∇y
2
, ∇
2
y
3
, ∇
3
y
4
et ∇
4
y
5
) dans la table sont les coefficients du polynôme. Si
les points donnés sont énumérés dans l'ordre différent, les entrées dans la table changeront, mais le
polynôme résultant sera même-rappellent qu'un polynôme du n−1 interpolant n de degré des points
donnés distincts est unique.
I.4.7. La méthode de Neville : [2]
La méthode de Neville d'interpolation implique deux étapes : calcul des coefficients, suivi de
l'évaluation du polynôme. Ceci fonctionne bien si l'interpolation s’effectué à plusieurs reprises à
différentes valeurs de x utilisant le même polynôme. Si seulement un point est pour être interpolé, une
méthode qui calcule l'interpolant dans un pas à pas, comme L'algorithme de Neville, est un meilleur
choix.
Laissez le P
k
[x
i
, x
i+1
,…, x
i+k
] dénotent le polynôme du degré k qui passe de k+ 1 des points donnés (x
i
,
y
i
), (x
i+1
, y
i+1
),…, (x
i+k
, y
i+k
). Pour un seul point de repères, nous avons : P
0
[x
0
]= y
i
L'interpolant basé sur deux points de repères est :
| |
| |
1
1 0 0 1
1 1
) ( ) (
,
+
+

+
+
÷
÷ + ÷
=
i i
i i i i
i i
x x
x P x x x P x x
x x P
C'est facile de vérifie que P
1
[x
I
, x
i+1
] passe les deux des points donnés ; c'est-à-dire,
P
1
[x
I
, x
i+1
] = yi quand x = x
i
, et P
1
[x
I
, x
i+1
] = y
i+1
quand x = x
i+1.
L'interpolant à trois points est :
| |
| |
2
2 , 1 1 1 1 2
2 1 2
) ( , ) (
, ,
+
+ +

+ +
+ +
÷
÷ + ÷
=
i i
i i i i i i
i i i
x x
x x P x x x x P x x
x x x P
Pour prouver que cet interpolant est intersecté les points donnés, nous substituons la seconde x = x
i
,
On obtenant :
P
2
[x
i,
,x
i+1
,x
i+2
] = P
1
[x
i,
,x
i+1
]=y
i
13
De même, rendements x = x
i+2
P
2
[x
i
, x
i+1
, x
i+2
] = P1 [x
i+1
, x
i+2
] = y
i+2
En conclusion, quand x = x
i+1
que nous avons
P
1
[x
i
, x
i+1
] = P
1
[x
i+1
, x
i+2
] = y
i+1
De sorte que :
| | 1
2
1 1 1 2 1
2 1 2
) ( ) (
, , +
+
+ + + + +
+ + =
÷
÷ + ÷
= i
i i
i i i i i i
i i i y
x x
y x x y x x
x x x P
Après avoir établi le modèle, nous pouvons maintenant déduire la formule récursive générale :
| |
| | | |
k i i
k i i i k i k i i i k k i
k i i i
x x
x x x P x x x x x P x x
x x x P
+
+ + + ÷ ÷ + + ÷ +
+ +
÷
÷ + ÷
=
,..., , ) ( ,..., , ) (
,..., ,
2 1 1 1 1 1
1 2
Etant donné la valeur de x, les calculs peuvent être effectués dans le format tabulaire. I.2 suivant
(montré pour quatre points de repères) :
14
Chapitre II :
Application de la méthode d’interpolation en MATLAB
II.1. Présentation de MATLAB : [5]
II.1.1. Introduction et Historique de MATLAB : [5]
MATLAB est une abréviation de Matrix LABoratory. Écrit à l’origine, en Fortran, par C. Moler,
MATLAB était destiné à faciliter l’accès au logiciel matriciel développé dans les projets LINPACK et
EISPACK. La version actuelle, écrite en C par the Math Works Inc., existe en version professionnelle
et en version étudiant. Sa disponibilité est assurée sur plusieurs plates-formes : Sun, Bull, HP, IBM,
compatibles PC (DOS, Unix ou Windows), Macintosh, IMac et plusieurs machines parallèles.
MATLAB est un environnement puissant, complet et facile à utiliser destiné au calcul scientifique. Il
apporte aux ingénieurs, chercheurs et à tout scientifique un système interactif intégrant calcul
numérique et visualisation. C'est un environnement performant, ouvert et programmable qui permet de
remarquables gains de productivité et de créativité.
MATLAB est un environnement complet, ouvert et extensible pour le calcul et la visualisation. Il
dispose de plusieurs centaines (voire milliers, selon les versions et les modules optionnels autour du
noyau Matlab) de fonctions mathématiques, scientifiques et techniques. L'approche matricielle de
MATLAB permet de traiter les données sans aucune limitation de taille et de réaliser des calculs
numériques et symboliques de façon fiable et rapide. Grâce aux fonctions graphiques de MATLAB, il
devient très facile de modifier interactivement les différents paramètres des graphiques pour les
adapter selon nos souhaits.
L'approche ouverte de MATLAB permet de construire un outil sur mesure. On peut inspecter le code
source et les algorithmes des bibliothèques de fonctions (Toolboxes), modifier des fonctions existantes
et ajouter d’autres.
MATLAB possède son propre langage, intuitif et naturel qui permet des gains de temps de CPU
spectaculaires par rapport à des langages comme le C, le Turbo Pascal et le Fortran. Avec MATLAB,
on peut faire des liaisons de façon dynamique, à des programmes C ou Fortran, échanger des données
avec d'autres applications (via la DDE : MATLAB serveur ou client) ou utiliser MATLAB comme
moteur d'analyse et de visualisation.
MATLAB comprend aussi un ensemble d'outils spécifiques à des domaines, appelés Toolboxes (ou
Boîtes à Outils). Indispensables à la plupart des utilisateurs, les Boîtes à Outils sont des collections de
fonctions qui étendent l'environnement MATLAB pour résoudre des catégories spécifiques de
problèmes. Les domaines couverts sont très variés et comprennent notamment le traitement du signal,
l'automatique, l'identification de systèmes, les réseaux de neurones, la logique floue, le calcul de
structure, les statistiques, etc.
MATLAB fait également partie d'un ensemble d'outils intégrés dédiés au Traitement du Signal. En
complément du noyau de calcul MATLAB, l'environnement comprend des modules optionnels qui
sont parfaitement intégrés à l'ensemble :
1) une vaste gamme de bibliothèques de fonctions spécialisées (Toolboxes)
2) Simulink, un environnement puissant de modélisation basée sur les schémas-blocs et de
15
simulation de systèmes dynamiques linéaires et non linéaires.
3) Des bibliothèques de blocs Simulink spécialisés (Blocksets).
4) D'autres modules dont un Compilateur, un générateur de code C, un accélérateur,...
5) Un ensemble d'outils intégrés dédiés au Traitement du Signal : le DSP Workshop.
II.1.2. Les particularités de MATLAB : [5]
MATLAB permet le travail interactif soit en mode commande, soit en mode programmation ; tout en
ayant toujours la possibilité de faire des visualisations graphiques. Considéré comme un des meilleurs
langages de programmations (C ou Fortran), MATLAB possède les particularités suivantes par rapport
à ces langages :
- la programmation facile,
- la continuité parmi les valeurs entières, réelles et complexes,
- la gamme étendue des nombres et leurs précisions,
- la bibliothèque mathématique très compréhensive,
- l’outil graphique qui inclut les fonctions d’interface graphique et les utilitaires,
- la possibilité de liaison avec les autres langages classiques de programmations (C ou Fortran).
Dans MATLAB, aucune déclaration n’est à effectuer sur les nombres. En effet, il n'existe pas de
distinction entre les nombres entiers, les nombres réels, les nombres complexes et la simple ou double
précision. Cette caractéristique rend le mode de programmation très facile et très rapide. En Fortran
par exemple, une subroutine est presque nécessaire pour chaque variable simple ou double précision,
entière, réelle ou complexe. Dans MATLAB, aucune nécessité n’est demandée pour la séparation de
ces variables.
La bibliothèque des fonctions mathématiques dans MATLAB donne des analyses mathématiques très
simples. En effet, l’utilisateur peut exécuter dans le mode commande n’importe quelle fonction
mathématique se trouvant dans la bibliothèque sans avoir à recourir à la programmation.
Pour l’interface graphique, des représentations scientifiques et même artistiques des objets peuvent
être créées sur l’écran en utilisant les expressions mathématiques. Les graphiques sur MATLAB sont
simples et attirent l’attention des utilisateurs, vu les possibilités importantes offertes par ce logiciel.
II.1.3. MATLAB peut-il s’en passer de la nécessité de Fortran ou du C : [5]
La réponse est non. En effet, le Fortran ou le C sont des langages importants pour les calculs de haute
performance qui nécessitent une grande mémoire et un temps de calcul très long. Sans compilateur, les
calculs sur MATLAB sont relativement lents par rapport au Fortran ou au C si les programmes
comportent des boucles. Il est donc conseillé d'éviter les boucles, surtout si celles-ci est grande.
II.1.4.Écriture d’un programme MATLAB : [5]
En MATLAB, les programmes se terminent par une extension ‘.m’ dans le nom du fichier programme.
Aucune compilation n’est à faire avant l’exécution du programme. Au cours de l’exécution, un
message d’erreur apparaît et indique les lieux où se trouvent les erreurs.
Pour lancer l’exécution du programme, il faut se mettre toujours dans le même répertoire où se trouve
ce programme.
16
Ce dernier se trouve dans c:\utilisateur ; il faut changer tout d’abord de répertoire après avoir lancé
MATLAB en tapant "cd c:\utilisateur».
Les fichiers de données sont enregistrés avec une extension ‘.mat’ et les variables sont enregistrées en
double précision.
II.1.5. Génération de graphique avec MATLAB : [5]
MATLAB est un outil très puissant et très convivial pour la gestion des graphiques, que ce soit en une
dimension, en deux dimensions ou en trois dimensions. Pour tracer une courbe y=sin(x) par exemple,
où x=0 :50 ; il suffit de faire :
>>x=0:50;y=sin(x);
>>plot(x, y)
Ci-dessous, un petit résumé très succinct est donné pour tracer, concernant le traçage des graphiques et
la manipulation des axes et des échelles :
 -xlabel(‘temps’) pour donner un titre à l’axe x,
 ylabel(‘vitesse’) pour donner un titre à l’axe y,
 title(‘évolution de la vitesse’)pour donner un titre au graphique,
 grid on afficher le quadrillage dans le graphique,
 grid off masqué le quadrillage dans le graphique,
 hold(‘on’) traçage des courbes sur le même graphique à chaque fois qu’on exécute la
fonction plot,
 hold(‘off’) traçage de chaque courbe sur un nouveau graphique à chaque fois qu’on exécute
la fonction plot,
 close figure(i) fermer (ou quitter) la figure (i),
 close all fermer tous les graphiques ouverts,
 plot(x,y,x,z,x,w) tracer y, z et w en fonction de x sur le même graphe,
 polar(x,y) tracer la courbe y en fonction de x en coordonnées polaires,
 plot(x,y,’+g’) tracer y en fonction de x avec des marques ‘+’ en couleur verte,
 plot3(x,y,z) tracer z en fonction de x et de y en 3D,
 fplot(‘f_nom’,[x-mini, x-maxi]) tracer la fonction f_nom selon les axes données (x),
 axis(‘square’) tracer un graphe géométriquement carré,
 axis(‘off’) masque les axes x et y,
 axis(‘on’) affiche les axes x et y,
 axis([x-mini, x-maxi, y-mini,y-maxi]) affiche le graphique selon les limites
 contour(x,y,z,’niveau’) tracer les lignes iso-valeurs de z dans le plan (x,y) où le niveau
représente le nombre de lignes iso-courbes.
Exemple 1: x=0 :50 ; y=sin(x) ; z=cos(y) +4*x ; contour(x,y,z,40) on obtient 40 iso- courbes.
II.2. Opérations sur les polynômes dans MATLAB :
Dans MATLAB, les polynômes sont représentés sous forme des vecteurs lignes dont les composantes
sont données par ordre des puissances décroissantes. Un polynôme de degré n est représenté par un
vecteur de taille (n+1).
17
Exemple 2:
Le polynôme : f(x)= 8.x
5
+ 2.x
3
-3.x
2
+4.x -2 est représenté par :
>>f= [8 0 2 -3 4 -2]
f =8 0 2 -3 4 -2
D’autres fonctions dans MATLAB telles que : ‘conv’, ‘deconv’, ‘roots’, etc. peuvent être utilisées en
plus des opérations propres aux vecteurs
II.2.1. Multiplication des polynômes :
La fonction ‘conv’ donne le produit de convolution de deux polynômes. L’exemple suivant montre
l’utilisation de cette fonction.
Soient :
Exemple 3 :
¹
´
¦
÷ + ÷ =
+ ÷ + =
1 . 5 . 3 . 2 ) (
4 . 2 . 3 ) (
2 4
2 3
x x x x g
x x x x f
Le produit de convolution : h(x)=f(x)*g(x) est donné par :
>>f = [3 2 -1 4];
>>g= [2 0 -3 5 -1];
>>h=conv(f,g)
h= 6 4 -11 17 10 -19 21 -4
Ainsi, le polynôme h(x) obtenu est :
4 . 21 . 19 . 10 . 17 . 11 . 4 . 6 ) (
2 3 4 5 5 7
÷ + ÷ + + ÷ + = x x x x x x x x h
II.2.2. Division des polynômes :
La fonction ‘deconv’ donne le rapport de convolution de deux polynômes (déconvolution des
coefficients du polynôme). L’exemple suivant montre l’utilisation de cette fonction.
Exemple 4 :
Soient les mêmes fonctions précédentes f(x) et g(x) :
¹
´
¦
÷ + ÷ =
+ ÷ + =
1 . 5 . 3 . 2 ) (
4 . 2 . 3 ) (
2 4
2 3
x x x x g
x x x x f
La division de g(x) par f(x) : est donnée par la fonction ‘deconv’ :
) (
) (
) (
x f
x g
x h ==
>>f = [3 2 -1 4];
>>g= [2 0 -3 5 -1];
>>h=deconv(g,f)
h = 0.6667 -0.4444
Et le polynôme h(x) obtenu est : h(x)=0.6667*x - 0.4444
18
II.2.3. Manipulation de fonctions polynomiales dans MATLAB :
Soit le polynôme suivant :
0 1
2
2
1
1 . . ... . . ) ( a x a x a x a x a x P
n
n
n
n + + + + + =
÷
÷
Où n est degré du polynôme et a
i
(i=0,1,2,…n) sont les coefficients du polynôme.
Ce polynôme peut être écrit sous la forme :
) ). ... ). ) . ((...(...( ) ( 0 1 2 1 a x a x a x a x a x P n n n + + + + = ÷ ÷
Après factorisation, on a :
) )...( ).( ).( .( ) ( 3 2 1 n r x r x r x r x a x P n ÷ ÷ ÷ ÷ =
Où r
0
, r
1
, r
2
,…r
n
sont les racines du polynôme P(x)
Exemple 5:
12 . 8 . 7 . 2 ) (
2 3 4
+ ÷ ÷ + = x x x x x P
Ce polynôme est équivalent à :
) 12 ). 8 ). 7 ). 2 (((( ) ( + ÷ ÷ + = x x x x x P
Ou encore :
) 3 ).( 2 ).( 2 ).( 1 ( ) ( + + ÷ ÷ = x x x x x P
Un polynôme d’ordre n possède n racines qui peuvent être réelles ou complexes.
Dans MATLAB, un polynôme est représenté par un vecteur contenant les coefficients dans un
ordre décroissant.
Exemple 6:
Le polynôme : P(x)=2.x
3
+ x
2
+ 4.x +5 qui est représenté dans MATLAB par :
>>P= [2 1 4 5];
A pour racines . Pour trouver ces racines, on doit exécuter la fonction ‘roots’. D’où :
>>r=roots(P);
Et le résultat donné est :
>> r
r =
0.2500 + 1.5612i
0.2500 - 1.5612i
-1.0000
Les trois racines de ce polynôme (dont 2 sont complexes) sont données sous forme d’un vecteur
colonne. Quand les racines r
i
sont connues, les coefficients peuvent être recalculés par la commande
‘poly’.
19
Exemple 7:
>>poly(r)
ans =
1.0000 0.5000 2.0000 2.5000
La fonction ‘poly’ accepte aussi une matrice comme argument dont elle retourne le polynôme
caractéristique.
Exemple 8 :
>>A= [3 1;2 4];
>>p=poly(A)
p =
1 -7 10
Ainsi, le polynôme caractéristique de la matrice A est : 10 . 7 ) (
2
+ ÷ = x x x P
Les racines de ce polynôme sont les valeurs propres de la matrice A. ces racines peuvent être obtenues
par la fonction ‘eig’ :
>>Val_prop=eig (A)
Val_prop =
2
5
II.2.4. Évaluation d’un polynôme :
Pour évaluer le polynôme P(x) en un point donné, on doit utiliser la fonction ‘polyval’. On évalue ce
polynôme pour x=1, par exemple :
>>polyval (P,1)
ans = 12
Exemple 9:
On veut évaluer en x=2.5 le polynôme suivant :
1 . 2 . 7 . 3
2 3 4
+ ÷ + ÷ = x x x x y
>>C= [3 -7 2 1 1];
>>x=2.5;
>> y=polyval(C, x)
y = 23.8125
Si x est un vecteur contenant plusieurs valeurs, y sera aussi un vecteur qui contiendra le même nombre
d’éléments que x.
20
II.3. Interpolation linéaire et splines cubiques:
Une interpolation consiste à relier les points expérimentaux par une courbe sous forme de segments de
droites ou de courbes polynomiales. Ceci peut être réalisé par la fonction ‘interp1’. La commande
‘interp1(x,y,x
i
,’type’)’ retourne un vecteur de mêmes dimensions que x
i
et dont les valeurs
correspondent aux images des éléments de x
i
déterminées par interpolation sur x et y. Si f est
l’interpolation de y, la chaîne ‘type’ spécifie alors le type d’interpolation qui doit être parmi les
suivants :
- ‘linear’ à interpolation linéaire
- ‘spline’ à interpolation par splines cubiques,
- ‘cubic’ à interpolation cubique.
Si on ne spécifie pas le type, l’interpolation linéaire est choisie par défaut.
Exemple 10:
>>x = 0:10; y = sin(x); xi = 0:.25:10;
>>yi = interp1(x,y,xi,’cubic’); plot(x,y,'o',xi,yi)
Figure. II.1 : Interpolation cubique
Exemple 11 :
Dans le cas suivant, on étudiera ces différents types d’interpolation linéaire et cubique sur un même
exemple de valeurs discrètes de la fonction ‘cosinus’. On appellera l’algorithme : ‘exo_2.m’.
%*************************************
% Utilisation de la commande interp1 *
%*************************************
clear all;
clc;
x=0:10;
y=cos(x); % Points à interpoler
z=0:0.25:10; % Le pas du vecteur z est inférieur à celui de x
21
% Interpolation linéaire
figure(1);
f=interp1(x, y, z);
% Tracé des valeurs réelles et de la courbe d'interpolation
plot(x,y,'*r',z,f);
grid on;
xlabel('Interpolation');
% Interpolation par splines cubiques
figure(2);
f=interp1(x,y,z,'spline');
plot(x,y,'*r',z,f);
grid on;
xlabel('Interpolation par splines cubiques');
En exécutant ce programme, on obtient les courbes suivantes :
Figure. II.2 : Interpolation par splines cubiques Figure. II.3 : Interpolation linéaire
Remarque : La fonction ‘interp2’ réalise l’interpolation dans l’espace trois dimensions (3D).
II.4. Interpolation de Lagrange :
Exemple 12 : Les masses volumiques du matériau pour différentes températures sont données par le
tableau II.1 ci-dessous :
i 1 2 3
Température T (en °C) 94 205 371
Masse volumique R(T) : (en kg/m
3
) 929 902 860
1-Écrire la formule d’interpolation de Lagrange qui permet d’interpoler les différents points de
données précédentes.
2-Trouver les masses volumiques du sodium pour T=251 °C, T=305 °C et T=800 °C en utilisant
l'interpolation de Lagrange.
22
Solution :
a) Puisque le nombre de points est égal à 3, alors le polynôme de Lagrange sera de degré 2. Ce
polynôme s’écrit :
I ¯
= = =
÷
÷
=
3
, 1
3
1
) (
) (
. ) ( ) (
i j j
j i
j
i
i
T T
T T
T R T R
Soit :
) 860 .(
) 205 371 ).( 94 371 (
) 205 ).( 94 (
) 902 .(
) 371 205 ).( 94 205 (
) 371 ).( 94 (
) 929 .(
) 371 94 ).( 205 94 (
) 371 ).( 205 (
) (
÷ ÷
÷ ÷
+
÷ ÷
÷ ÷
+
÷ ÷
÷ ÷
=
T T T T T T
T R
D’où pour T=251 °C, on obtient R(251) = 890.5 kg/m
3
.
L'algorithme de calcul de R(251), R(305) et R(800) est : ‘exo_4.m’ qui est listé ci-dessous :
%****************************************
% Interpolation polynomiale de Lagrange *
%****************************************
clc;
clear;
T=[94 205 371];
R=[929 902 860];
Ti=[251 305 800];
Ri=zeros (size(Ti)); % Initialisation des Ti
n=length(R); % Nombre de points
For i=1:n
y=ones(size(Ti));
For j=1:n
If i~=j
y=y.*(Ti-T(j))/(T(i)-T(j));
End
Ri=Ri+y*R(i)
End
End
Return
Il suffit maintenant d’exécuter le programme ‘exo_4.m’ pour obtenir les résultats de Ri. Ces résultats
sont les suivants :
>>Ri
Ri = 890.5561 876.9316 742.45559
23
II.5. Interpolation au sens des moindres carrés :
Dans le domaine de l’analyse numérique des données, on a souvent besoin d’établir un modèle
mathématique liant plusieurs séries de données expérimentales. L’interpolation polynomiale consiste à
approcher la courbe liant les deux séries de mesures par un polynôme. Les coefficients optimaux de ce
polynôme sont ceux qui minimisent la variance de l’erreur d’interpolation. Ce principe est connu sous
le nom de la méthode des moindres carrés. La fonction ‘polyfit’ retourne le polynôme P de degré n
permettant d’approcher la courbe y=f(x) au sens des moindres carrés.
Exemple 13:
>> x= [1.1 2.3 3.9 5.1];
>>y= [3.887 4.276 4.651 2.117];
>>a=polyfit(x, y, length(x)-1)
a =
-0.2015 1.4385 -2.7477 5.4370
Ainsi, le polynôme d’interpolation de y (d’ordre length(x)-1=3) est :
4370 . 5 . 7477 . 2 . 4385 . 1 . 2015 . 0 ) (
2 3
+ ÷ = x x x x P
Pour déduire l’erreur entre les valeurs expérimentales et le modèle obtenu par la fonction ‘polyfit’, on
dispose de la fonction ‘polyval’ qui retourne la valeur du polynôme P pour toutes les composantes du
vecteur (ou de la matrice) x. Ainsi, cette fonction donne :
>>yi=polyval (a, x)
yi =
3.8870 4.2760 4.6510 2.1170
On remarque ici que les valeurs expérimentales de y sont bien restituées (y=y
i
). Dans ce cas, on a un
coefficient de corrélation qui est égal à 1.
Exemple 14 : Pour mieux comprendre ces fonctions prédéfinis dans MATLAB, on va simuler une
courbe expérimentale par une sigmoïde à laquelle on superpose un bruit du type Gaussien. Cette
courbe sera donnée par :
)) ( . 1 ( . 05 . 0
1
1
x length randn
e
y
x
+
+
=
÷
Le programme exo_3.m correspondant à l’approximation des ces données dans MATLAB par est le
suivant :
clc; % Effacer l'écran
clear all; % Effacer des variables de l'espace de travail
x=-5:0.1:5; % Intervalle de définition et de calcul de la sigmoïde
% Fonction sigmoïde bruitée
y=1./(1+exp(-x))+0.05*randn(1,length(x));
plot (x,y); % Tracé de la sigmoïde bruitée
24
title('Fonction sigmoïde bruitée - Polynôme d''interpolation');
xlabel('x');ylabel('y');
% Polynôme d'interpolation d'ordre 1
P=polyfit(x,y,1);
% Valeurs du polynôme d'interpolation
Vp=polyval(P,x);
% Tracé du polynôme d'interpolation
hold on;
plot(x,Vp,'--');
% Calcul de l'erreur d'interpolation
erreur=y-Vp;
% Tracé de la courbe de l'erreur
plot(x,erreur,':')
grid
gtext('Mesures')
gtext('Erreur')
gtext('Modèle')
hold off
% Affichage du polynôme d'interpolation
disp('Polynôme d''interpolation')
P
Var_erreur=num2str(std(erreur).^2);
disp(['La variance de l''erreur d''interpolation est : ',Var_erreur])
Après exécution du programme, on obtient à l’ordre 1 (droite affine : figure 4 ci-dessous) les résultats
suivants :
>> regres
Polynôme d'interpolation
P =
0.1309 0.5008
La variance de l'erreur d'interpolation est : 0.011277
On remarque ici que le polynôme d’interpolation d’ordre un n’est pas une bonne approximation pour
ces données. En effet, un polynôme d’ordre 5 donne une meilleure approximation de la sigmoïde
(Figure II.5). On change dans le ‘1’ par ‘5’ dans la fonction ‘polyfit’,
et on obtient les résultats suivants :
>> regres
Polynôme d'interpolation
P =
0.0002 -0.0000 -0.0111 0.0008 0.2326 0.4844
La variance de l'erreur d'interpolation est : 0.002279
25
Figure. II.4 : Interpolation linéaire d’ordre 1
Figure. II.5 : Interpolation par un polynôme d’ordre 5
II.6. Interpolation par La méthode de Newton :
II.6.1. Calcul Polynôme de Newton :
La dénotation x-coordonne le choix des points de repères par xData, et le nombre de points de repères
par n, nous avons l'algorithme suivant pour calculer P
n−1
(x) :
Exemple 15:
Function p = newtonPoly (a, xData, x)
% renvoie la valeur du polynôme de Newton dans x
% a = choix de coefficient du polynôme
% a doivent être calculés d'abord par le newtonCoeff.
% xData = x-coordonne des points de repères.
n = length (xData);
p = a (n);
For k = 1: n-1;
p = a (n-k) + (x - xData (n-k))*p;
End
26
II.6.2. Calcul le coefficient de Newton :Des calculs d’ordinateur sont mieux effectués dans une
rangée unidimensionnelle une utilisation de l'algorithme suivant :
Example 16:
Function a = newtonCoeff (xData, yData)
% renvoie la valeur du coefficient de Newton dans x
% xData = x-coordonne des points de repères.
% yData = y-coordonne des points de repères.
n = length (xData);
a = yData;
For k = 2: n
a(k:n) = (a(k:n) - a(k-1))./(xData(k:n) - xData(k-1));
End
Au initial, a contient les y-valeurs des données, de sorte qu'il soit identique à la seconde colonne dans
le tableau1.1. Chaque passage par la boucle produit des entrées dans la prochaine colonne, qui
recouvrent les éléments correspondants de a. Par conséquent, a extrémités contenant vers le haut les
limites diagonales du tableau.1.1 ; c.-à-d., les coefficients du polynôme.
Exemple 17 : Les points de repères dans la table.II.2 se trouvent sur la parcelle de terrain de
f (x) = 4.8 cos πx/20. Interpolez ces données par la méthode de Newton à x = 0, 0.5, 1.0,…, 8.0 et
comparez les résultats au « exigent » des valeurs données par y = f (x).
Solution:
xData = [0.15; 2.3; 3.15; 4.85; 6.25; 7.95];
yData = [4.79867; 4.49013; 4.22430; 3.47313;2.66674; 1.51909];
a = newtonCoeff (xData, yData);
’ x yInterp yExact’
For x = 0: 0.5: 4
y = newtonPoly (a, xData, x);
yExact = 4.8*cos(pi*x/20);
fprintf(’%10.5f’,x,y,yExact)
fprintf(’\n’)
End
Le résultant est.
x yInterp yExact
0.00000 4.80003 4.80000
0.50000 4.78518 4.78520
1.00000 4.74088 4.74090
1.50000 4.66736 4.66738
2.00000 4.56507 4.56507
2.50000 4.43462 4.43462
3.00000 4.27683 4.27683
3.50000 4.09267 4.09267
4.00000 3.88327 3.88328
x 0.15 2.30 3.15 4.85 6.25 7.95
y 4.79867 4.49013 4.2243 3.47313 2.66674 1.51909
27
II.7. Interpolation par La méthode de Neville :
Cet algorithme fonctionne avec la rangée unidimensionnelle y, qui contient au initialisant les y-
valeurs des données (la deuxième colonne dans le tableau 1.2). Chaque passage par la boucle calcule
les limites dans la prochaine colonne de la table, qui recouvrent les précédents éléments de y à la fin de
la procédure, y contient les limites diagonales de la table. La valeur de l'interpolant (évalué à x) qui
passe tous les points de repères est y
1
, le premier l'élément de y.
Exemple 18 :
Function yInterp = neville (xData, yData,x)
% renvoie la valeur d’interpolation dans x
% xData = x-coordonne des points de repères.
% yData = y-coordonne des points de repères.
n = length (xData);
y = yData;
For k = 1: n-1
y(1:n-k) = ((x - xData(k+1:n)).*y(1:n-k)+ (xData(1:n-k) - x).*y(2:n-k+1))/(xData(1:n-k) -
xData(k+1:n));
End
yInterp = y(1);
28
Conclusion générale
L’analyse numérique est donc une science de base dont tout ingénieur doit
connaître le langage afin de :
 résoudre les problèmes simple (ou complexe).
 dialoguer avec les spécialistes pour les problèmes plus complexes.
On trouve des différentes méthodes numériques de résolution, par
exemple :
 la résolution d’intégral.
 Calcul des dérivés et des dérivés partiels.
 La résolution des équations algébriques.
 L’interpolation.
 La résolution des équations différentielles.
 Régime linéaire.
 Méthodes des moindres carrés.
 La résolution des matrices.
 Calcul des valeurs propres et les vecteurs propres.
Au terme de ce travail nous avons consacré notre temps à l’étude des
méthodes numériques et toutes les méthodes d’interpolations et leurs
programmations.
 En premier lieux dans le chapitre 1 nous avons présenté l’analyse
numérique et toutes les méthodes d’interpolation
 Enfin de le chapitre 2 la présentation de MATLAB leurs
programmations en MATLAB
29
Référence Bibliographie
[1] : Méthodes numériques Appliquées.
Par A.GOURDIN et M.BOUMAHRAT.
[2]: Numerical Methods in Engineering with MATLAB.
By JAAN KIUSALAAS.
[3]: METHODES NUMERIQUES : FONCTIONS D’UNE VARIABLE REELLE.
Par JEAN-PIERRE DEDIEU.
[4] : METHODES NUMERIQUES : Eléments d'un premier parcours.
Par JEAN –MARC Huré.
SITES INTERNET :
[5] : http://www.sciences.univnantes.fr/physique/perso/aloui/m_numeri/31inpoly/31inpoly.htm#1
[6] : http://fr.wikipedia.org/wiki/Interpolation_(math%C3%A9matiques)#Interpolation_lin.C3.A9aire

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->