Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures...
Transcript of Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures...
![Page 1: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/1.jpg)
Quelques mots sur l’exploitation de mesures expérimentales…
Vol = array([ 10, 8, 8, 10, 99])ErrVol = array([ 5, 2, 5, 1, 2])Mass = array([ 29.1,25.7,22.2,27.5,266.0])ErrMass = array([ 0.1, 0.1, 0.1, 0.1, 0.1])
Rho = Mass / VolErrRho = (ErrMass * Vol + ErrVol * Mass)/ (Vol*Vol)VarRho = ErrRho*ErrRho
Mesure du poids avec une estimation de l’erreurMesure du volume avec une estimation de l’erreur
Comment combiner au mieux ces mesures ?
![Page 2: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/2.jpg)
T s g )⇐ÊTÊ
GROUPE 1
1 7 6 9 f l a s hl e g PCM,V) = ¥Ë˥˥÷
ëË÷:÷#f.ii÷÷Ï
☺
Ë¥Ï
😐
mec I I . à ? .MIGUEL J o u e ALPHONSE
R o i D e s Bears : - )
¥ 0 7 K¥ 7 447 l e ef-= [aile.
COMMENTM I N I M I S E R J ?
i I s H ④ t: E - Z a i n [ a i = 1
| . .
! • 6 : ESTIMATION S A N S Biais• 1 • 5
; var iance
s i x: - , F-
😉☹
☹
' ¥
☹Bêtise: c - & ]MOYENNE D E 8 0 0 - A F = 0,53
1 5 → J = 9,75
F > F i n = 1 5¥ ? = 15K¥ }← 15/5800 = 0,53
![Page 3: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/3.jpg)
Toutes les mesures n’ontpas la même précision…
plt.errorbar(arange(len(Rho)),Rho,ErrRho,linestyle='',marker='o',markerfacecolor='blue’,markeredgecolor='blue',color='red',capsize=5)
Et pourtant, la donnée la plus imprécise permettra d’améliorer la précision de la meilleure donnée, si, si !
![Page 4: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/4.jpg)
Faisons pleinde mesures virtuelles…
r = 500 + 15*randn(800)plt.hist(r,100)
66% des mesures tombent dans l’intervalle [485,515] !
![Page 5: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/5.jpg)
Que vaut l’écart type de la moyenne de n mesures ?
66% de la moyenne de 10mesures tombent dans l’intervalle [495,505] !
r = zeros(800);for i in range(10):
r = r + 500 + 15*randn(800)r = r/10
print('Ecart type de la moyenne : %14.7f ‘ % (15/sqrt(800)))
Effectuons 800 mesures avec un écart de 15 Moyenne : 499.9263731 Ecart type de la moyenne : 0.5303301
![Page 6: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/6.jpg)
Comment mesurer au nanomètreavec une simple latte ?
VarRho = ErrRho*ErrRhocoeff = 1 / (VarRho)coeff = coeff / sum(coeff)BestEstimate = coeff @ RhoVarBestEstimate = (coeff*coeff) @ VarRhoEcartBestEstimate = sqrt(VarBestEstimate)
Mesure 0 et écart type : 2.9100000 (1.4650000)Mesure 1 et écart type : 3.2125000 (0.8156250)Mesure 2 et écart type : 2.7750000 (1.7468750)Mesure 3 et écart type : 2.7500000 (0.2850000)Mesure 4 et écart type : 2.6868687 (0.0552903)Meilleure estimation et écart type : 2.6918441 (0.0540956)
![Page 7: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/7.jpg)
Comment combiner des sondagesun peu imprécis ?
![Page 8: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/8.jpg)
E T E N12J METHODES
NUMERIQUES
NON : - cO u i : - ) Ich) • 2h.
Mâtinions; q n:p
;yÏ! Vm1. .
Ou iCLAUDE : - C f8 ↳NON ! ! % %
CE L A S ERECHAUFFE ! ! I lo) = L E RESULTAT
PARFAIT
O NSUPPOSE L E S CALCULSD E S MODÈLES s o n t B A S E S"INDEPENDANTS" S U R L A
M E M E METHODEE T L A M EM E FONCTION
[ 'EST PA§ INDEPENDANT
![Page 9: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/9.jpg)
Pourrait-on utiliser la même idée pour les calculs numériques ?
I(h)
I(h/8)
I(h/4)
I(h/2)
Est-il possible d’effectuer une combinaison linéaire de ces
quatre valeurs numériques de l’intégrale afin d’obtenir une
approximation encore plus précise que la valeur obtenue
avec le plus petit pas ?
![Page 10: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/10.jpg)
Extrapolation de Richardson
h/4 h/2 h
Comment estimer f(0) ?
![Page 11: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/11.jpg)
1311 RICHARDSON
k f 6 ) + hÎf"G)+ tÉf'"G)î😐¥
😉±
😐÷÷
😐
÷÷
:÷÷PETIT
µ,ç
😐
ËË¥
"¥-¥-Et" ¥ - ¥ :-#=-¥
[☹
😐
]
fch!) = f 6 4 hzf.co) + - t ¥ f-"6)+ %-("lo)!
😐😐
Ë
😉😐😐
¥"
😐
Ex!
😐 😐
f
😐
qç¥ÏË¥
7É¥=¥=-¥
[☹☹ËË]
![Page 12: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/12.jpg)
ç¥ËÎÊ😉😉 😉
s
µ=H%ÊÊÎÊ
😐😉
÷
:*☹
4 [
😐 ☹
EE] - [ # É"☹+ t'Ë÷-É:{" f "
- -- ¥ t "
est-÷)
😐😐😐😐😉
![Page 13: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/13.jpg)
Extrapolation de Richardson
Comment estimer f(0) ?2 mesuresElimination du terme du premier ordre
![Page 14: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/14.jpg)
Extrapolation de Richardson
Comment estimer f(0) ?3 mesuresElimination du terme du second ordre
FÉ¥:]
,← [¥7
![Page 15: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/15.jpg)
… et finalement
Disposition pratique des calculs
Fi,1 2 fois la meilleure estimation moins une fois la moins bonne
Fi,2 4 fois la meilleure estimation moins une fois la moins bonne le tout divisé par 3
😉😐😐
![Page 16: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/16.jpg)
Extrapolation de Richardson
Fi,1 2 fois la meilleure estimation moins une fois la moins bonne
Fi,2 4 fois la meilleure estimation moins une fois la moins bonne le tout divisé par 3
↳→
± . ±
![Page 17: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/17.jpg)
Romberg = application de l'extrapolation de Richardson à la méthode
composite des trapèzesavec des pas décroissants
Extrapolation de Richardson
Méthode composite de trapèzesh = (b-a) pour toutes les expressions
![Page 18: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/18.jpg)
(24=16 : - )F I ROMBERG
,
-0K¥.EE#.oai,
" Ë " 1OIay"
☺
I n I I I \ . % .
😐
fin i e n Odi)
I I I I n I I I - r I I I /\ . \ . a I
😐
I n
H I T they I I I - I I I → I I IS o s
M Ï this I I I I s I I I I s I I I! I I I
0 4 4 0 1 7 Ocho) Och')
TRAPEZE SIMPSON BOOLE
💔
ËÉÏd .
![Page 19: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/19.jpg)
… et pratiquement
Simpson Boole
Le terme d'erreur ne fait intervenir que despuissances paires….
Ii,1 4 fois la meilleure estimation moins une fois la moins bonne le tout divisé par 3
![Page 20: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/20.jpg)
Exemple
÷↳
![Page 21: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/21.jpg)
Romberg :Implémentation récursive ?
Mon groupe favori…. lundi à 22h15.« Afin de limiter les boucles trop ennuyeuses nous avons
utilisé fonction interne. Mais nous ne nous sommes rendus compte que trop tard qu'une telle fonction ne peut s'appeler elle-même, et c'est ce qui, nous le présumons, engendre une erreur lors de l'exécution du programme…. »
h=1;d=0Iq=Integrale exacteI=Iq-1while (Iq-I)~=0 : I=romberg(d,d,h)d=d+1;
![Page 22: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/22.jpg)
h=1;d=0Iq=Integrale exacteI=Iq-1while (Iq-I)~=0 : I=romberg(d,d,h)d=d+1;
Romberg
Implémentation récursive de la méthode de RombergEcriture très compacte
Efficacité très faible
def romberg(i,k,h):if k==0 :Integration par les trapezes…
else : I=(romberg(i,k-1,h)-
(romberg(i-1,k-1,h)/(2**(2*k))))/(1-(1/(2**(2*k))))return I
![Page 23: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/23.jpg)
h=1;d=0Iq=Integrale exacteI=Iq-1while (Iq-I)!=0 : I=romberg(d,d,h)d=d+1;
Quelques moments plus tard…
Mon groupe favori, mardi à 19h52 X propos de la monstuositX ... HUm . Bien , donc c vrmnt très nul , dixit ma soeur is myclock , suffit de remplacer par while ( (Iq - I) != 0 )
Voilà on est nul
![Page 24: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/24.jpg)
Et le matin…
Mon groupe favori, mercredi à 09h « Voici en annexe la version finale. Il a été amélioré et fonctionne à présent bien. Ce programme fut fait dans son intégrité par notre groupe 1183. Toute similitude avec un autre programme déjà existant serait purement fortuite... Il nous a semblé que le mail envoyé hier contenait peut-être des fichiers vides suite à une erreur du serveur mail ; nous nous permettons donc de
Mon groupe favori, mercredi à 01h07 « Voici en annexe la version finale. Il a été amélioré et fonctionne à présent bien. »
![Page 25: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/25.jpg)
d=0p=1/1000I=0I_old=0while ( round(I/p) < round(I_old/p) or I_old==0 ): I_old=II=romberg(f,d,d,0,1)d=d+1
La version 3 du programme…
On n’est jamais sûr que ce test sera satisfait…Possibilité réelle de programme ne s’arrêtant
jamais jamais jamais
![Page 26: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/26.jpg)
La récursivité avec Romberg,c’est aussi une…
h=1;d=0Iq = Integrale exacteI = Iq-1while (d!=6):
I=romberg(d,d,h)d=d+1
def romberg(i,k,h):if k==0 :Integration par les trapezes…
else : I=(romberg(i,k-1,h)-
(romberg(i-1,k-1,h)/(2**(2*k))))/(1-(1/(2**(2*k))))print(' Etape %i %i -> I %21.14e’ % (i,k,I))
return I
![Page 27: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/27.jpg)
Beaucoup de calculs répétés inutilement…
>>>> I =
1.3244Romberg : etape 1 1 -> I = 1.19688584716124e+000I =
1.1969Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 1 1 -> I = 1.19688584716124e+000Romberg : etape 2 2 -> I = 1.19497479612220e+000I =
1.1950Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 1 1 -> I = 1.19688584716124e+000Romberg : etape 2 2 -> I = 1.19497479612220e+000Romberg : etape 3 3 -> I = 1.19495771757388e+000I =
1.1950
I e r
% ËËË¥
![Page 28: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/28.jpg)
Romberg : etape 4 1 -> I = 1.19495821928187e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 4 2 -> I = 1.19495766722064e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 4 3 -> I = 1.19495766218563e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 1 1 -> I = 1.19688584716124e+000Romberg : etape 2 2 -> I = 1.19497479612220e+000Romberg : etape 3 3 -> I = 1.19495771757388e+000Romberg : etape 4 4 -> I = 1.19495766196842e+000I =
1.1950
~
:
![Page 29: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/29.jpg)
Romberg : etape 5 1 -> I = 1.19495769682481e+000Romberg : etape 4 1 -> I = 1.19495821928187e+000Romberg : etape 5 2 -> I = 1.19495766199434e+000Romberg : etape 4 1 -> I = 1.19495821928187e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 4 2 -> I = 1.19495766722064e+000Romberg : etape 5 3 -> I = 1.19495766191138e+000Romberg : etape 4 1 -> I = 1.19495821928187e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 4 2 -> I = 1.19495766722064e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 4 3 -> I = 1.19495766218563e+000Romberg : etape 5 4 -> I = 1.19495766191030e+000Romberg : etape 4 1 -> I = 1.19495821928187e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 4 2 -> I = 1.19495766722064e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 4 3 -> I = 1.19495766218563e+000Romberg : etape 3 1 -> I = 1.19496650020032e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 3 2 -> I = 1.19495798442620e+000Romberg : etape 2 1 -> I = 1.19509423681214e+000Romberg : etape 1 1 -> I = 1.19688584716124e+000Romberg : etape 2 2 -> I = 1.19497479612220e+000Romberg : etape 3 3 -> I = 1.19495771757388e+000Romberg : etape 4 4 -> I = 1.19495766196842e+000Romberg : etape 5 5 -> I = 1.19495766191025e+000
I =1.1950
>>
-
=
=
-
![Page 30: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/30.jpg)
Il est beaucoup plus efficace de suivre le tableau des calculs….
Est nécessaire pour I22 et I32
M e
![Page 31: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/31.jpg)
Plan du cours de méthodes numériques
Comment interpoler une fonction ?
Comment intégrernumériquement une fonction ?
Comment dérivernumériquement une fonction ?
Comment résoudre numériquement un problème auxvaleurs initiales ?
Comment résoudre numériquement un problème auxconditions frontières ?
Et les équations non linéaires ?
Comment résoudre numériquementune équation différentielle ordinaire ?
Et les méthodes itératives ?
Comment approximerune fonction ?
Comment résoudre numériquement une équation aux dérivées partielles ?
Comment résoudre numériquementune équation aux dérivées partielles ?
![Page 32: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/32.jpg)
Dérivation numérique…
Méthodes conceptuellement simples…Différences finies d'ordre nDifférences finies centrées et unilatérales
… mais numériquement instablesErreurs d'arrondi Concept de stabilité numérique Approximation numérique
Valeur exacte
![Page 33: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/33.jpg)
Une petite expérience numérique….
Théoriquement, la méthode avec une arithmétique exacte devrait converger vers la valeur exacte
Pratiquement avec Matlab, l'erreur diminue et puis recommence à augmenter...
Il s'agit d'une catastrophe numérique !
![Page 34: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/34.jpg)
Erreurs d'arrondi : c'est quoi ?Un exemple très simple qui montre l'importance des erreurs d'arrondi
![Page 35: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/35.jpg)
Arithmétique à précisionfinie
Représentation dans l'ordinateur
Valeur exacte
Nombre de chiffres significatifs
Calculateur avec 4 chiffres pour représenter un nombre :
Effectuons l'opération 1.348 + 9.999
Valeur exacte 11.347Valeur représentée par le calculateur 11.35
Comment utiliser astucieusement la mémoire disponible ?
. . . . . . . . . . . .[
- -O
![Page 36: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/36.jpg)
Arithmétique en virgule
flottante
Mantisse
SigneExposant
Représentation normalisée : le premier chiffre de la mantisse est non nul
ou l'utilisation astucieuse de la mémoire disponible...
![Page 37: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/37.jpg)
Calcul en simple (32bits)ou double précision (64bits)
IEEE single (32bits) mantisse 23+1 bitsexposant 8 bitslimites (range) 10-38 10+38
arrondi à l'unité 2-24 (approximativement 10-8)IEEE double (64 bits) mantisse 52+1 bits
exposant 11 bitslimites (range) 10-308 10+308
arrondi à l'unité 2-53 (approximativement 10-16)
En réalité, un ordinateur utilise des nombres binaires…
1 2 3 4 50
Il est important de réaliser que les nombresreprésentables ne sont pas également espacés
Exemple représenté : mantisse de 3 bits, exposant compris entre –1 et 3.
Base binaire
![Page 38: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/38.jpg)
Python : l’instruction du jour…
realmax = 1.7977e+308realmin = 2.22507e-308
>>> import numpy as np>>> np.finfo(float).eps2.220446049250313e-16>>> np.finfo(float).min-1.7976931348623157e+308>>> np.finfo(float).max1.7976931348623157e+308>>> np.finfo(float).tiny2.2250738585072014e-308
![Page 39: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/39.jpg)
Il y a beaucoup plus de nombres représentables près de xmin que près de xmax
xmax = 1.7976931348623158e+308
xmax = 1.7976931348623157e+308
xmin = 2.2250738507201e-308xmin = 2.2250738507202e-308
xmin – xmin est de l’ordre de 10-323
xmax - xmax est de l’ordre de 10292
![Page 40: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/40.jpg)
Les dangers de la soustraction…Représentation avec 12 chiffres
Effectuons l'opération x-y
Valeur exacte de x 3.1234567845578Valeur de x dans l'ordinateur 3.12345678456Valeur exacte de y 3.1234567844660Valeur de y dans l'ordinateur 3.12345678447
Résultat exact 0.0000000000918Valeur approchée 0.00000000009
1 chiffre significatifpour le résultat
12 chiffres significatifspour les données
ou pourquoi les formules de différences sont numériquementinstables.
![Page 41: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/41.jpg)
Les facéties du calcul en virgule flottante…>>> a=1; b=1>>> while (a+b) != a:... b=b/2... >>> print(b)1.1102230246251565e-16
Ce programme ne devrait jamais se terminer dans l’espace des nombres réels… Mais il se termine très très rapidement dans l’espace des nombres représentables par python
![Page 42: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/42.jpg)
Les règles de l’associativité et de la distributivité sont violées !>>> a=1.0e+308; b=1.1e+308; c=-1.001e+308>>> print(a+(b+c))1.099e+308>>> print((a+b)+c)inf>>>
![Page 43: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/43.jpg)
Les graphes… le meilleur et le pire !
p = [1,-7,21,-35,35,-21,7,-1]x = linspace(0.9,1.1,1000)plt.plot(x,polyval(p,x),'-b')
Faisons un zoom !
![Page 44: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/44.jpg)
Et voilà un résultat débile :-)p = [1,-7,21,-35,35,-21,7,-1]x = linspace(1-2e-4,1+2e-4,1000)plt.plot(x,polyval(p,x),'-b')
10-710-14
(x-D?
-
![Page 45: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/45.jpg)
Et le même graphe correct :-)x = linspace(1-2e-4,1+2e-4,1000)plt.plot(x,power((x-1.0),7),'-b')
10-26
10-7
![Page 46: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/46.jpg)
151 MODELISONSL'ORDINATEUR
~ n ' 6 ) = Uh-1-4Dh= Uh-Uh 2 h
- 2 4U h . V . + h u i t ¥4" + ¥4"- u =
Uh-Uh 244' 2¥00"
D'= V.' + EU."
☺
Ë
😐
*÷:"
😐
- ~
"Kk r 2cm2 h ERREUR
![Page 47: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/47.jpg)
D'= V.' + EU."☺
i÷÷÷÷÷"😐
- ~
⇐2 h ERREUR
ERREUR
☹
😉
*
😐☹😉
=
E r r e u r
↳f 'Ch)= - ¥ + 2¥ = 0
~hÜɵ=¥J
![Page 48: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/48.jpg)
Propagation des erreurs d'arrondi pour les différences
Erreurs d'arrondi sur les données
Erreur de discrétisation
![Page 49: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/49.jpg)
Pratiquement…
Erreur totale
Erreur de discrétisation
Propagation des erreurs
d'arrondi
On néglige l'erreur d'arrondi commise sur les opérations pour calculer la différence, car elle est peu importante par rapport à l'erreur propagée
![Page 50: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/50.jpg)
Estimation du pas optimal
Calcul de h qui minimise l'erreur totale en valeur absolue
![Page 51: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/51.jpg)
Exemple calcul de la dérivée de cos(0.7)
A - 0
![Page 52: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/52.jpg)
Application de l'extrapolation de Richardson à des différences centrées
avec des pas décroissants
Extrapolation de Richardson
Différences centrées h=0.1
![Page 53: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/53.jpg)
… et pratiquementLe terme d'erreur ne fait intervenir que despuissances paires….
Di,1 100 fois la meilleure estimation moins une fois la moins bonne le tout divisé par 99
![Page 54: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/54.jpg)
Exempleh=0.1, h/10, h/100, h/1000
h=0.1, h/2, h/4, h/8
Inutile, pourquoi ?
![Page 55: Quelques mots sur l’exploitation de mesures …...Quelques mots sur l’exploitation de mesures expérimentales… Vol = array([ 10, 8, 8, 10, 99]) ErrVol= array([ 5, 2, 5, 1, 2])](https://reader036.fdocuments.net/reader036/viewer/2022081406/5f18d05b5200830e2472b916/html5/thumbnails/55.jpg)
Python 5 for dummies !
Date limite pour le problème : 13/Mar/2020 23:59:59et nous sommes aujourd'hui : 11/Mar/2020 08:33:30...