Vous êtes sur la page 1sur 12

7 - Analyse des donnees

Analyse des donnees



Dans ce chapitre, nous allons regarder les capacltes de Matlab a analyser les donnees: analyses statistiques, analyses du type regression, interpolation ou transformee de Fourier.

Statistiques, histogrammes et probabilites

II est souvent utile de faire des statistiques sur des donnees. Matlab propose toute une gamme de fonctions qui permettent de faire une telle analyse, comme la moyenne, la rnediane, l'ecart-tvpe, etc ...

Moyenne, valeur medlane et histogramme

La moyenne est la somme des donnees divisee par Ie nombre de donnees. La medtane est la valeur au milieu d'un ensemble impair de donnees. Ces donnees peuvent etre representees en histogrammes qui representant la frequence d'apparition de valeurs en fonction des valeurs. Prenons par exemple, une classe de 11 etudlants dont on souhaite analyser les notes en informatique :

x=[14 12 16 15 13 15 18 13 15 17 14] y=[12.5 13.5 14.5 15.5 16.5 17.5] moyenne=mean(x)

mediane=median(x)

figure(l)

subplot(2,2,1) ihist(x) ititle('histogramme : hist(x)') xlabel('notes') iylabel(lfrequences') iaxis([11 19 0 4])

subplot(2,2,2) ihist(x,5) ititle('histogramme avec 5 classes hist(x,5) ') xlabel('notes') iylabel('frequences') i axis([11 19 0 4])

subplot (2,2,3) i hist (x , y) i

title('histogramme avec milieu de classes precise: hist(x,y) ') xlabel('notes') iylabel('frequences') i axis([11 19 0 4])

moyenne=14.7273 mediane=15

histogramme : hist(x)

histogramme avec 5 classes: hist(x,5)

4,-~----~----------~-,

3

o

o

12

14

16

18

12

14

16

18

notes

histogramme avec milieu de classes precise: histtx.y)

4,-~----------------~-,

notes

3

o

12

14

16

18

notes

On voit sur cet exemple que la commande hist (x) genere un histogramme avec un maximum de 10 classes reparties entre Ie minimum et maximum des donnees, hist (x, n ) permet de fixer Ie nombre de classes, hist (x, y) permet de fixer la valeur centrale de chacune des classes.

45

7 - Analyse des donnees

Frequences absolue et relative

La trequence absofue est Ie nombre d'apparition d'une valeur. Par exemple, dans I'exemple precedent, la valeur 15 sort 3 fois. Sa frequence absolue est done 3 et sa frequence relative est 3111 soit 27% du temps.

Quand Ie nombre de donnees a analyser est tres grand, on peut eviter de rentrer chaque donnees en les regroupant prealablernent. Par exemple, on a recupere des donnees de 100 tests d'etirernents : on a applique 91, 92. 93, 94, 95 et 96 newtons 13, 15,22.19,17 et 14 fois respectivement.

% Donnees pour forces d'etirement : frequence absolue

y=[91*ones(I,13) ,92*ones(I,15),93*ones(I,22) ,94*ones(I,19),95*ones(I,17) ,96*one s (1,14)]

x= [91 : 96]

% Donnees pour forces d'etirement tests=100

yl=[13 15 22 19 17 14]/tests i figure (1)

c 11 h-.;"' 1 rv t- J? . 1 1 \

x= [91 : 96]

% Donnees pour forces d'etirement tests=100

yl=[13 15 22 19 17 14]/tests i figure (1)

cllh ..... l,..,t-(? 1 1\

frequence relative

frequence relative

o

92

93

94

95

96

F recuence re!ati\€

0.25 - ----

01

o

0.15

0.05

91

92

93

94

95

96

force d'etirernent en N

On voit sur cet exemple que la frequence relative utilise la fonction graphique bar (x , y) et non plus la commande hist (x,y).

Probablllte

La probabilite est exprimee par une valeur entre 0 et 1 ou comme un pourcentage entre 0 et 100. Par exernple, si on utilise deux des. chaque Ian cement aboutit a 36 possibllltes puisque chaque de peut produire six ehiffres. II n'y a qu'une seule facon d'obtenir une somme de 2, mais deux d'obtenir une somme de 3, etc. I ~ nrnh~hilitp cI'ohtpnir Imp <omms clp clPIJ)/ pc;t clone

1/36 et celie d'avoir 3 est de 2/36, etc... G.2~·----··--------~--- - .. _._-

% probabilite pour la somme de deux des somme=[2 3 4 567 8 9 10 11 12] proba=[12 3 4 5 654 3 2 1] ./36 i

% frequence pour une etude de 100 lancements frequence_rel=[55 8 11 20 10 8 12 7 10 4]/100 figure (1)

bar (somme,proba) ;hold on bar(somme,frequence rel,'w-') xlabel('somme de deux des') i ylabel('frequence de sortie')

donnees

o 18;'_

0.16-

II.he~_ I

-

-

004

0:]2 -

::)--------_.

46

8 9 10 11 12

somrne de dsu>": ces

::)--------_.

46

8 9 10 11 12

somrne de deux ces

7 - Analyse des donnees

Distribution normale, variance, deviations standard, erreur

Le lancement d'un de est un processus dont les sorties possibles sont hmitees a. certains nornbres, c'est-a-dlre entre 1 et 6. Pour de tels processus. la probabilite est une fonction a. variable discrete. c'est-a-dtre avant un nombre limite de valeurs. On peut les representer en histogramme qui utilise les donnees calees tel que I'aire totale de I'histogramme vaut 1.

Pour un processus avant un nombre infini de sorties possibles. la probablllte est une fonction a. variable continue et est tracee comme une courbe plutot que sous forme de rectangles. Elle est basee sur Ie merne principe que I'histogramme decrit precedernrnent puisque I'aire sous la courbe est 1 et que les aires partielles donnent la probablllte de sortie de valeurs precises,

Une fonction de probabillte qui decrlt de nombreux processus est la fonction normale ou gaussienne (courbe en cloche). Des sorties qui peuvent etre decrltes de cette facon sont normalement dtstribuees.

La fonction de probabillte normale p(x) a deux parametres: 11 qui est la moyenne des sorties et c qui est la deviation standard. La moyenne 11 localise Ie pic de la courbe et est en general la valeur la plus frequents. La largeur de la courbe est deflme par o et la variance est Ie carre de la deviation standard. Cette fonction est definte par:

1 "

p(x) = e-(X-!l)"/2rr"

a.J2;

Dans la plupart des applications. la moyenne ou la variance de la distribution des sorties possibles ne sont pas connues et doivent etre estimees a. partir des donnees experlmentales. Une estimation de la moyenne 11 est:

OU XI. X2 •...• Xn sont les n donnees.

La variance d'un ensemble de donnees est la moyenne du carre de leurs deviations par rapport a. la moyenne X. La deviation standard o est donc :

La fonction Matlab std (x) permet de calculer cette deviation standard.

S'il est necessalre de calculer la probabillte en certains points de la courbe, on peut utiliser la fonction erreur qui renvoie I'aire erf(x) sltuee a. gauche d'une valeur t=x de la fonction d'erreur 2e-f' / J;. Alns], la probabillte qu'une variable aleatolre X soit inferleure ou egale a. best P(xsb) si les sorties sont normalement distribuees :

P(x ~ b) = ±[l + eif(~1z )]

La probablllte qu'une variable aleatolre X ne soit pas mois que a mais pas plus que best P(asxsb) est:

l[ ib-f.l) j a-f.l)l

P(a~x~b)=2 elJ~()".fi +elJ~tJ.fi J

Nombres aleatolres

II n'existe pas toujours une distribution simple de probablltte pour decrire la distribution des sorties. Dans de tels cas. on a souvent recours a. la simulation pour faire des predictions. La simulation est executee plusieurs fois en utilisant un ensemble aleatolre de nombres et les resultats sont utilises pour estimer la probabillte.

Dans une sequence de nombres aleatoires unlforrnement distrlbues, toutes les valeurs a l'interleur d'un intervalle donne ont des probabllites d'apparition identiques. La fonction Matlab rand genere des nombres aleatolres unlforrnernent distrlbues sur I'intervalle [0.1 J. Les differentes syntaxes de cette fonction sont donnees:

rand rand(n) rand(m,n)

rand ( \ state' ,s) rand (\ state' ,0)

genere un nombre aleatolre entre 0 et 1

genere une matrice nxn de nombres aleatoires entre 0 et 1 genere une matrice mxn de nombres aleatoires entre 0 et 1 remet Ie qenerateur s ta te de nombres aleatolres a. s

remet Ie generateur state de nombres aleatolres a. son etat initial

47

7 - Analyse des donnees

rand (' s t at;e ' I j) s=rand ( 'state' )

pour un entier j, remet Ie generateur sta te de nombres aleatoires dans son jiem. etat

renvoie un vecteur de 35 elements contenant l'etat courant du generateur de nombre aleatoires

genere un nombre aleatolre avant une moyenne de 0 et une deviation standard de 1

genere une matrice nxn de nombres aleatolres avant une moyenne de 0 et une deviation standard de 1

genere une matrice mxn de nombres aleatoires avant une moyenne de 0 et une deviation standard de 1

remet Ie generateur state de nombres aleatoires a s

remet Ie generateur state de nombres aleatolres a son etat initial

pour un entier j, remet Ie generateur s tate de nombres aleatoires dans son yem. etat

renvoie un vecteur de 2 elements contenant l'etat courant du generateur de nombre aleatoires

randn randn(n)

rand(m,n)

randn('state' IS) randn (' s t.at;e ' 10) randn (\ state' ,j) s=randn ( 'state' )

Les simulations utilisant des generateurs nombres aleatolres peuvent etre utllisees pour analyser et trouver des solutions a des problernes difficiles ou impossibles a resoudre par des methodes rnathernatiques classiques. Par exemple. on souhaite ccnnaitre Ie niveau de production optimal dans une compagnie de production saisonniere : si on produit plus d'unltes que I'on ne peut en vendre, Ie profit ne sera pas aussi grand qu'il pourrait l'etre, si on produit trop d'unites, les invendus a la fin de la saison feront baisser les profits. Une analyse des donnees de la compagnie montre que Ie cout fixe de la production est de 30000 francs par saison, sans tenir compte du nombre d'unites fabrlquees et que eel a coOte 2000 francs de plus que ce cout fix pour fabriquer une unite. Les ventes passees ont varie entre 25 et 50 unites par saison. On vend 4000 francs une unite a

cause de la competition economique. On peut determiner Ie nombre optimal d'unites a produire chaque saison :

n=SOOO ; % nombre de simulations aleatoires

niveau=2S:S0 ; % initialisation du vecteur niveau de production

cout=30000+2000*niveau for k=1:26

somme_profit=O ;

for m=l:n demande=floor(rand*(SO-2S)+26) if demande>=niveau(k) recette=4000*niveau(k)

else recette=4000*demande+1000*(niveau(k) -demande)

3.8

3.6

3.4

end

profit=recette-cout(k) somme_profit=somme_profit+profit

end profit_attendu=somme_profit!n p(k/1)=niveau(k) p(k/2)=profit_attendu

end figure (1)

plot (p ( : 11) I p ( : ,2) I ' 0- , ) xlabel('nombres d"unites/) ylabel('profits (Frs) I)

~3.2 ~ u..

-; 3

"" e

Q. 2.8 >-

2.6

2.4

25

30

35

40

45

50

nombres dunltes

Le profit maximum est atteint pour un niveau de production de 39 a 43 unites par saison et vaut environ 38000 francs, ce qui est bien plus eleve que Ie profit obtenu pour une production de 25 unites. Le cholx de 5000 simulations est arbitraire et il est evident que plus Ie nombre de simulations est grand plus Ie resultat est precis mais plus Ie temps d'executlon est long et gourmand en mernolre ....

Regression

On peut distinguer deux types d'analyses d'experlences impliquant des donnees x et y: d'une part I'analyse de correlation ou x et y sont des variables aleatolres et pour lesquelles on souhaite trouver une relation et d'autre part, I'analyse de regression ou I'une des variables, par exemple x, est constderee comme ordinaire car on peut la mesurer sans erreur ou lUi assigner des valeurs. Cette variable est dite independsnte ou controlee. L'autre variable yest aleatotre. L'analyse de regression recherche la relation entre ces deux variables.

48

Regression polynomiale

7 - Analyse des donnees

A partir d'un graphe, on peut rnodeliser les donnees par une fonction. Les coefficients du polvncrne peuvent etre calculas par les molndres cartes, qui minimisent la somme des deviations au carre des donnees. On a vu au chapitre 6 cette methode: Ie crltere des moindres carres etablit que la droite qui minimise}, la somme des cartes des differences verticales entre la droite et les points de donnees, est Ie meilleur "fit".

Supposons que I'on souhaite trouver un polvnorne de deqre 2, Y = a1x2 + a2x + a3, qui fitte un ensemble de m points.

L'expression de} est alors: J = ICa1xi2 +a2x + a3 - Yi)2 et les coefficients ai peuvent etre obtenus a partir du svsteme

i=1

(derivees dJ / di, = 0 ) :

i=l

i=1

i=l

i=l

i=l

i=1

i=1

i=l

m m m

a1 IXi2 + a2 IXi + a3m = IYi

i=1

i=1

j=1

En general, pour un polvnorne a1xn + a2xn-1 + ... +anx + an+I, la somme des cartes des residus pour m points est:

m

J = ICa1xn +a2Xn-I+ ... +anX+an+l - yJ2 j~1

Les valeurs des n+ I coefficients ai qui minimisentj peuvent etre trouves en resolvant les n+ I equations hneaires.

La fonction p=polyfi t (x , y, n ) fournit cette solution en trouvant un polvnorne p de degre n qui fitte les donnees decrites par les vecteurs x et y, ou x est la variable independante. Le resultat p est un vecteur Iigne de longueur /7+ I qui contient les coefficients du polvnome en ordre decrolssant. Pour evaluer ce polvnorne, on utilisera la fonction polyval.

x=l : 9 i

y=[5 6 10 20 28 33 34 36 42] xp=l :.01 :9

for k=l :4

yp(k, : )=polyval(polyfit(x,y,k) ,xp) i

J(k)=sum«polyval(polyfit(x,y,k) ,x)-y) .~2) i end

figure (1)

subplot (2,2,1) iplot (xp , yp (1, :) ,x, y, '0' ) ; axis ( [0 subplot (2,2,2) iplot (xp,yp (2,:) ,x,y, '0') iaxis ([0 subplot(2,2,3) iplot(xp,yp(3,:) ,x,y, '0') iaxis( [0 s ubp lot (2 t 2 , 4) i plot (xp , yp (4, : ) ,x, y, '0' ) i axi s ( [0 disp (J)

1er deere

50
J=
40
71.5389
56.6727 30
41.8838 20
4.6566 10
0
0
50 10 0 10 0 10 0 10 0

50]) ;title('ler degn§'); 50]) ititle('2~me degr~') i 50J) ititle('3~me degr~') i 50]) ititle('4~me degr~') i

2eme degre

I 50 j
'~j 40r
[ /-
~
v:. ! .
30'
v :» 20l r>.
..
,_I 10 .
.» '. 0/(:
0 __j
5 10 0 5 10
3eme deqre 4eme degre 50
40 ~'
30 I
20
!
10~
! .~
0 49
10 0 5 10 7 - Analyse des donnees

On voit que la valeur de J diminue quand Ie deqre du polvnorne augmente, ce qui se traduit sur la figure par une amelioration croissante du fit. En effet, Ie polvncme de deqre 4 peut suivre mieux les courbes alors que Ie polvnome de deqre 1 ne peut pas du tout Ie faire.

II est tentant d'utiliser un polvnorne de haut deqre pour obtenir Ie meilleur fit possible. Cependant, cela peut etre dangereux. Supposons que I'on dispose de six points de donnees. On peut calculer un polvnorne de deqre 5 (ayant six coefficients) qui

passe par ces points de donnees et pour lequel j=O.

On remarquera comment Ie polvncme fait de gran des boucles entre

les deux premiers et les deux derniers points de donnees. Ceci pourrait engendrer de grosses erreurs si on souhaitait estimer les valeurs de y pour 0 <x<l et 4 <x<5. Les polvnornes de haut degre presentent souvent de tels ecarts entre les polnts et ne devront pas etre utilises autant que possible.

o

1.5

2.5 3 3.5 4 4.5

Regression avec d'autres fonctions

II existe une fonction puissance y = bx" qui peut fitter des donnees. On peut la determiner en tapant p=polyfit(loglO(x) ,loglO(y) ,I)

Le premier element PI du vecteur p sera met Ie second sera log lOb, done b= 1 Op2.

II existe une fonction exponentielle y = b(lO)ntX = bentX qui peut fitter des donnees. On peut la determiner en tapant p=polyfit(x,loglO(y) ,1)

Le premier element PI du vecteur p sera met Ie second sera IOglOb, done b= 1 Op2.

N'importe quelle fonction est candidate a la regression de donnees. Cependant il peut etre difficile d'obtenir et de resoudre ces equations par les polvnornes. Les fonctions puissance et exponentielle peuvent etre transforrnees en polvnornes du premier deqre par transformations logarithmiques. On pourra faire de rnerne avec n'importe quelle fonction et un

transformation adequate. Par exemple, la fonction y = b(1 o)mlz peut etre transforrnee en fonction exponentielle en prenant

x=Jlz et en polvnorne du premier deqre par p=polyfit(l./z,loglO(y) ,1). La fonction v= __ l_ peut etre

mx+b

convertie en pclvnorne du premier degre en prenant Y= 1 Iv. La fonction resultante est y = mx + b.

Qualite de la courbe de regression

On note et I'erreur (ou resldu), c'est-a-dire la difference entre les donnees Yi et les valeurs yobtenues par la fonction de regression f(x). Le critere des moindres cartes est la somme du carre des resldus : J = I(f(x;) - yJ2

;=1

On peut utiliser ce critere pour comparer la qualite de la regression pour plusieurs fonctions utilisees pour Ie fit des donnees. La fonction qui donne la plus petite valeur de J donne la meilleure regression. On note 5, la somme des cartes de la deviation

des valeurs de y par rapport a leur moyenne y : S = I(Yi _ y)2. Cette formule peut etre utillsee pour evaluer une autre

i=l

mesure de la qualite de regression, Ie coefficient de correlation r< tel que r2 = I-!_. Pour une regression parfaite, j=O et r<= 1.

S

Done plus r< sera proche de 1, plus la regression sera bonne.

50

Regression et precision numerlque

7 - Analyse des donnees

On a vu que I'un des danger d'utiliser des polynornes de haut deqre pour faire une regression est qu'ils presentent de grandes variations entre deux points de donnes et peuvent donner de grandes erreurs d'estimation. Un autre problerne est que leurs coefficients necessltent souvent un nombre important de chiffres significatifs pour etre representes correctement. II faut done utiliser un format long ou long e.

x=O :2 :40 i

y=[O.l 1.884 2.732 3.388 3.346 3 2.644 2.022 1.65 1.5838 1.35 1.0082 0.718 0.689 0.4308 0.203 0.1652 -0.073 -0.002 -0.1122 0.106J

xpe o :.1 :40 i

p1= polyfit(x,y,6) yp1=polyval(p1,xp) i muemean (y) i

J1=sum ( (polyval (p1, x ) -y) . A2) 81= sum ( (polyval (p1,x) -mu) . A2) r1=1-J1/S1

format long

p2= polyfit(x,y,6) yp2=polyval(p2,xp) i rnu erne an (y) i

J2=sum ( (polyval (p2, x) -y) . A2) 82= sum ( (polyval (p2, x) -mu) . A2) R2=1-J2/82

figure (1) i

subplot(2,1,1) iplot(xp,yp1,x,y,'o') i title('coeff sans precision') i subplot(2,1,2) iplot(xp,yp2,x,y,'o') i title('coeff avec precision') i

J1=176.5 81=130.6 r1=-0.351 J2=0.1859 82=28.6485 r2=0.9935

Regression multiple

coeff sans precision

10 ,-----,---~--~---,--__r---,--------.--~)

I

sr

°1

-5L1 --~--~----~--~--~--~--~--~

o

I 1

I

'_; .... _.-

5 10

25

40

30

35

15

20

coeff avec precision

4,------r----~--___._----_,____--~-----,------~--__,

3

1 l:~~J,

'-J '__'

_1L_ __ ~ _L _L ~ ~ L! !L_ __ ~

o

2

a

5 10

15

30

40

35

20

25

Si y est une fonction de deux ou plus variables independantes, les equations du svsterne peuvent etre reecrttes pour traduire les relations entre variables.

Supposons que nous mesurons une quantlte y selon deux parametres xl et x2. Le modele multivariable sera de la forme:

y= ao +a1x1 + ~X2

Le systerne est resolu par les moindres carres : xl=[.2 .5 .6 .8 1.0 1.1]'; x2=[.1 .3 .4 .9 1.1 1.4)';

y=[0.17 0.26 0.28 0.23 0.27 0.24)'; X=[ones(size(xl)) xl x2);

a=X\y

0.1018 0.4844 -0.2847

Y=X*a; MaxErr=max(abs(Y-y))

Pour valider Ie modele, nous allons determiner Ie maximum de la valeur absolue de la deviation:

MaxErr= 0.0038

L'erreur est suffisamment petite pour penser que Ie modele est valable.

51

7 - Analyse des donnees

Fonctions Matlab pour operations polynomiales

roots(p) poly(A) polyval(p,x) polyder(p) polyfit(x,y,n)

trouve les racines d'un polvnome p

determine les coefficients du polynorne caracterlstlque de la matrice A evalue Ie polvnome p en x

renvoie les coefficients de la derivee du polvnorne p

determine les coefficients d'un polvnorne de degre n fittant les donnees (x,y)

Racines de polynome

Les racines d'un polvnome sont determinees par la fonction roots. Par convention, Ie resultat est stocke dans un vecteur colonne.

r=roots (p)

r=

2.0946 -1.0473+1.1359i

-1.0473-1.1359i

Polynome caracteristigue

La fonction poly permet de determiner les coefficients du polvnorne caracteristlque d'une matrice A. Les racines de ce polvnome sont les valeurs prop res de la matrice A.

A= [1. 2 3 -0.9; 5 1. 75 6; 9 0 1]; poly(A)

ans=

1.0000 -3.9500

-1.8500

-163.2750

Evaluation d'un polynome

La fonction polyval permet d'evaluer un polvnorne en un point x ou sur un ensemble de points.

X= [2 4 5; -1 0 3; 7 1 5]; sol=polyval(p,5) Y=polyvalm(p,X)

601=

110

y=

377 111 490

179 81 253

439 136 639

Derivation d'un polynome

La fonction polyder permet de deriver n'importe quel polvnorne. qe po Lyde r Ip ) ;

q=

3

o

-2

Interpolation

Certains problernes necessltent I'analyse de donnees couplees. Ces donnees couplees peuvent etre par exemple une cause et son effet, une entree-sortie, une histoire thermique en fonction du temps, un profil de temperature ou de route.

Dans certaines applications, iI est necessalre d'estimer la valeur d'une variables entre deux points de donnees, c'est une interpolation. Dans d'autres cas, on peut vouloir estimer la valeur d'une donnee en dehors de la gam me de donnees, c'est une extrapolation. L'interpolation et l'extrapolation sont souvent plus claires quand on trace les donnees.

Interpolation a une dimension

La fonction interpl realise des interpolations Ilneaires a une dimension. Cette fonction interpole les donnees obtenues par des fonctions polynomiales avec les points de donnees connus, et evalue la fonction appropriee aux points d'interpolation desires.

52

7 - Analyse des donnees

Supposons que I'on rnesure des temperatures it 7, 9, 11 heures et midi, et que I'on souhaite connaitre la temperature it 8 et 10 heures :

x=[7 9 11 12]

y= [15 21 26 27]

x int= [8 10] ; y=int=interp1(x,y,x_int) y_int=

18 23.5

On doit se souvenir qu'll ya deux restrictions it I'utilisation de interp1 : les valeurs de la variable independante x doivent etre en ordre strictement croissant et les valeurs d'interpolation x _ int doivent etre dans la gamme de valeurs de x.

Cette fonction peut etre utliisee pour interpoler dans une table de donnees definie par une matrice y. Par exemple, on mesure la temperature en trois points de donnees aux heures precedernrnent donnees:

x=[7 9 11 12]

y t L, :)=[15 21 26 27]

Y (2, :) = [17 23 27 29] y(3,:)=[19 242831]

x int= [8 10] ; y-int=interp1(x' ,y',x int')

y=int=y_int' _

y_int=

18 23.5

20 25

21. 5 26

La fonction interpl possede un argument optionnel method qui permet de choisir la methode d'interpolation :

linear

interpolation par les plus proches voisins

interpolation par les moindres carres, reliant deux it deux les fonctions entre deux points de donnees connus

interpolation par les splines cubiques, determinant separernent chaque fonction entre deux points de donnees connus. A son dernier point (point de donnees connu), chaque fonction a au moins les memes derivees premiere et seconde que la fonction qui la suit.

interpolation par une fonction cubique sur y et retournant les valeurs de cette fonction en chaaue point xi

nearest

spline

cubic

Interpolation a deux dimensions

Supposons que I'on mesure des temperatures it 7 heures en quatre points, ces points etant les coins d'un rectangle reperes par les coordonnees (0,0), (1,0), (1,2) et (0,2). La temperature est donc une fonction it deux variables, les coordonnees x et y des points de mesure. La fonrtion interp2 permet de realiser des interpolations de fonctions it deux variables x et yavec z=f(x,0 :

z_int=interp2(x,y,z,x_int,y_int,method) x= [0 1]

y=[O 2]

z= [15 18 ; 19 21] z_int=interp2(x,y,z, .6,1.5)

z

15 18

19 21

z int

19.35

Matlab propose egalement une fonction interpn qui permet d'interpoler un ensemble a n dimension. L'option method permet de choisir la methode d'interpolation :

nearest

interpolation par une surface constante sur les points de donnees existants. La valeur d'un point interpole est la valeur du point Ie plus proche.

53

7 - Analyse des donnees

bilinear

interpolation par une surface bilineaire sur les points de donnees existants. La valeur d'un point interpole est une combinaison des valeurs des quatre points les plus proches.

interpolation par une surface bicubique sur les points de donnees existants. La valeur d'un point interpole est une combinaison des valeurs des six points les plus proches.

bicubic

[x,yl=meshgrid(-3:1:3) ;

z s pe ak s (x , y) ; [xi,yil=meshgrid(-3:0.25:3) ; zi1=interp2(x,y,z,xi,yi, 'nearest'); zi2=interp2(x,y,z,xi,yi,'bilinear') ; zi3=interp2(x,y,z,xi,yi, 'bicubic'); figure (1) ;

subplot (1,3,1) ;

surf(xi,yi,zi1) ;title('methode nearest') subplot (1, 3, 2) ;

surf(xi,yi,zi2) ;title('methode bilineaire') subplot (1,3,3) ;

surf(xi,yi,zi3) ;title('methode bicubique')

methode nearest

methode b ilin e aire

methode bicubique

5

10

5

10
'.
5
0
-5
5
5 5

10

o

o

-5 5

-5 5

5

-5 -5

-5 -5

-5 -5

Interpolation par Ies splines cubiques

Nous avons vu que les polvncrnes de haut deqre peuvent generer des erreurs entre les points de donnees et les rendre inutilisables pour I'interpolation. Une alternative largement utilisee est de fitter deux points de donnees adjacents par des polvnornes de bas deqre. Cette methode est I'interpolation par splines qui obtient une regression exacte amortie. La procedure la plus courante utilise des polvnornes de degre 3, les splines cubiques.

SI on a des donnees ranqees en n paires de valeurs tx.r), alors n=t polvnornes cubiques seront utilises, chacun de la forme:

Les coefficients ai, bi, Ci et d, de chaque polvnorne sont determines de telle sorte que les trois conditions suivantes soient satisfaites :

Ie polynorne doit passer par les points extremes Xi et Xi+ I;

les pentes des polvnomes adjacents doivent etre egales en leur point commun ;

• les courbures des polvnornes adjacents doivent etre egales en leur point commun.

x=[7 9 11 12] 28i
y=[1521 26 27] i """'"".
<_-_-:
int=[7 :.01 :12] 261 -~.:-" - .~
x
y=int=spline(x,y,x_int)
figure (1) "I
plot(x,y,'o--',x_int,y_int)
xlabel ( \ temps (h)' ) ~ 22
ylabel('temperature')
axis ( [7 12 14 28] ) f 20~
- 18~ /
"t/
14
54 7 7.5 8 8.5 9 9.5 10 10.5 11 11.5 12
temps (h) 7 - Analyse des donnees

Dans certains cas, il est utile de connaitre les coefficients des potvnornes : x=[7 9 11 12] ;

y=[15 21 26 27] ; [breaks,coeffs,m,n]=unmkpp(spline(x,y))

breaks = 7

9

11

12

coeffs =
-0.0750 0.3250
-0.0750 -0.1250
-0.0750 -0.5750
m
3
n
4 2.6500 15.0000 3.0500 21.0000 1.6500 26.0000

Le vecteur breaks contient les valeurs de x, coeffs est une matrice mxn des coefficients des polvnomes cubiques calcules ou m est Ie nombre de polynomes et n Ie nombre de coefficients de chaque polvnorne.

Analyse de Fourier

L'analyse de Fourier est extrernernent utile pour I'analyse de donnees dans la mesure ou elle transforme un signal en constituants sinuso"idaux a dlfferentes frequences. Pour un vecteur de donnees echantillonne, I'analyse de Fourier est reallsee par une transforrnee de Fourier discrete (OFn. La transforrnee de Fourier rapide (FFTI est un algorithme efficace pour calculer la DFT d'une sequence. Elle est particulierement utile dans Ie traitement du signal et de I'image.

Transformee de Fourier

Pour une sequence x de longueur N, la OFT est un vecteur X de longueur N. Les fonctions Matlab fft et ifft verlflent les X(k) = ix(n)e _j21r(k_r)(n~l)

relations: n= 1

/5, k 5, N

1 N j2Jr(k-I)(!!..:..!

x(n)=-IX(k)e N) /$n$N

N k=1

II est souvent plus facile de representer Ie signal comme la somme de fonctions sinus et cosinus plutot que comme la somme d'exponentielles complexes. La relation entre la OFT et les coefficients de Fourier a et b dans:

N 12 t(n) ten)

x(n) = aD + La(k)cos(2nk'-)+ b(k)sin(21lk-)

k=1 NI1 NI1

est

ao=X(l)/N a(k)=2.real(X(k+ 1 ))/N b(k)=2.imag(X(k+ l))/N

ou x est un signal discret de longueur N echantlllonne aux temps t separes par 11.

X= [4 3 7 -9 1 0 0 0]'; y=fft(x)

y=

6.0000

11.4853 -2.7574i -2.0000-12.0000i

-5.4853+11.2426i

18.0000 -5.4853-11.2426i

-2.0000+12.0000i

11.4853 +2.7574i

55

7 - Analyse des donnees

On notera que, bien que la sequence x est reelle, y est complexe. Le premier element des donnees transforrnees est la constante de contribution et Ie cinqulerne correspond it la frequence de Nyquist.

Magnitude et phase des donnees transforrnees

La magnitude et la phase d'une transforrnee de Fourier sont deux informations lmportantes. Elles sont calculees par les fonctions abs et angle.

t=0:1/99:1i x=sin(2*pi*15*t)+sin(2*pi*40*t) i y=fft (x) i

me ab s (y) i

p=unwrap(angle(y)) i f=(O:length(y)-l) '*99/1ength(y) i subplat(2,l,l) iplat(f,m) i ylabel(\Abs.Magnitude')igrid ani subplat(2,l,2) iplat(f,p*180/pi) i xlabel(\Phase [degrees] ,) igrid ani ylabel(\Frequency [Hertz] ') i

, , ,

J ~ [ •• ·.·f •• " •• i ••• · ••• r.·; •• .. •· •••• [ ••• · ••• r •••••• J.: •••• r ••••• ·j

I , , , ,"_ , , , , , ;

ot _i' : : _ ..... ' ;;: i

o 10 20 30 40 50 60 70 80 90 100

Le programme calcule la magnitude et la phase de la sequence transforrnee. La fonction unwrap permet de supprimer les sauts de phase superieurs it pi it leur complements 2 *pi (correction de phase).

Le graphe de la magnitude est parfaitement svrnetrique autour de la frequence de Nyquist de 50 Hz. L'information utile se trouve donc dans Ie domaine 0-50 Hz.

Fonctions Matlab pour I'analyse de Fourier

fft (x) ifft (x) fftshift unwrap nextpaw2

transforrnee de Fourier discrete de X transforrnee de Fourier discrete inverse de X centre Ie spectre sur 0

correction de I'angle de phase (en radians) renvoie la puissance de 2 suivante

56

Vous aimerez peut-être aussi