propagation des incertitudes - travaux...
TRANSCRIPT
Propagation des incertitudes
Travaux Pratiques
Pascal PERNOT
Laboratoire de Chimie Physique,UMR8000, CNRS/Univ. Paris-Sud
Pascal PERNOT (LCP) Propagation des incertitudes 1 / 31
1 Prise en main de Rstudio
2 Quelques notions de R
3 Les documents Rmd
4 rgumlib
5 Exercices
Pascal PERNOT (LCP) Propagation des incertitudes 2 / 31
Prise en main de Rstudio
Prise en main de Rstudio
Pascal PERNOT (LCP) Propagation des incertitudes 3 / 31
Prise en main de Rstudio
Les menus et panneaux de travail
Pascal PERNOT (LCP) Propagation des incertitudes 4 / 31
Prise en main de Rstudio
Point sur les packages nécessaire
Pascal PERNOT (LCP) Propagation des incertitudes 5 / 31
Quelques notions de R
Quelques commandes utiles
# On genere un vecteur de valeurs aléatoires d'une distribution normaleX = rnorm(1000,mean=0,sd=0.3)Y = exp(X) # on applique Y = f(X)head(Y) # affiche les premiers éléments de Y
# [1] 0.6961990 1.0867904 1.3844907 0.4947467 1.1373914 1.1639469
y.u = sd(Y) # calcule et affecte l'écart-typey.u # affiche le contenu de la variable
# [1] 0.3186348
(y.mu = mean(Y)) # affecte et affiche la moyenne
# [1] 1.037468
Pascal PERNOT (LCP) Propagation des incertitudes 7 / 31
Quelques notions de R
Quelques commandes utiles
par(mfrow = c(1,3), cex=1.2) # 3 figures sur la même ligneplot(Y,pch=19,col='blue') # visualiser les valeursabline(h=c(y.mu-y.u,y.mu,y.mu+y.u), lwd=c(1,2,1), lty=c(2,1,2),
col='red') # visualise la moyenne et l'écart-typehist(Y,col='orchid') # tracer un histogrammeplot(ecdf(Y),lwd=2,col='gold') # densité cumulée empirique
0 200 600 1000
0.5
1.0
1.5
2.0
2.5
Index
Y
Histogram of Y
Y
Fre
qu
en
cy
0.5 1.5 2.5
05
01
50
25
0
0.5 1.5 2.5
0.0
0.4
0.8
ecdf(Y)
xF
n(x
)
Pascal PERNOT (LCP) Propagation des incertitudes 8 / 31
rgumlib
Définition du modèle et des variables incertaines
# Load librarylibrary(rgumlib)
# Expression analytique du modelefExpr = expression( x1^2 + x2^2 )# oufExpr = function(x1,x2) x1^2 + x2^2
# Variables incertaines ++++++++++++# nomenclature systématique :# Variable: xxx; Incertitude: xxx.u; PDF: xxx.pdf...x1=0.0; x1.u=1.0; x1.pdf = "unif"x2=1.0; x2.u=0.1; x2.pdf = "norm"
Pascal PERNOT (LCP) Propagation des incertitudes 12 / 31
rgumlib
Collecte des paramètres
# Collect parameters in environmentparams=collectParams(fExpr)str(params)
# List of 6# $ x.names: chr [1:2] "x1" "x2"# $ x.mu : Named num [1:2] 0 1# ..- attr(*, "names")= chr [1:2] "x1" "x2"# $ x.u : Named num [1:2] 1 0.1# ..- attr(*, "names")= chr [1:2] "x1" "x2"# $ x.pdf : Named chr [1:2] "unif" "norm"# ..- attr(*, "names")= chr [1:2] "x1" "x2"# $ x.df : Named num [1:2] Inf Inf# ..- attr(*, "names")= chr [1:2] "x1" "x2"# $ fExpr :function (x1, x2)# ..- attr(*, "srcref")=Class 'srcref' atomic [1:8] 4 9 4 35 9 35 4 4# .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x3c2b368>
Pascal PERNOT (LCP) Propagation des incertitudes 13 / 31
rgumlib
Combinaison des variances
G = with(params,gumCV(fExpr=fExpr,x.mu=x.mu,x.u=x.u,
silent=TRUE))
str(G)
# List of 5# $ y.mu : num 1# $ y.u : num 0.2# $ anova : num [1:2] 0 1# $ anovaCov: num -2.22e-16# $ budget :'data.frame': 3 obs. of 5 variables:# ..$ Valeur : chr [1:3] "0.000e+00" "1.000e+00" "1.000e+00"# ..$ Inc_Std.: chr [1:3] "1.00e+00" "1.00e-01" "2.00e-01"# ..$ J : chr [1:3] "0.00e+00" "2.00e+00" "<--"# ..$ J2.U2 : chr [1:3] "0.00e+00" "4.00e-02" "4.00e-02"# ..$ Anova : chr [1:3] "0.00" "1.00" ""
Pascal PERNOT (LCP) Propagation des incertitudes 14 / 31
rgumlib
Combinaison des variances
# Bilan des incertitudesknitr::kable(G$budget,'latex')
Valeur Inc_Std. J J2.U2 Anovax1 0.000e+00 1.00e+00 0.00e+00 0.00e+00 0.00x2 1.000e+00 1.00e-01 2.00e+00 4.00e-02 1.00Y 1.000e+00 2.00e-01 <– 4.00e-02
# Report des incertitudesuncPrint(y=G$y.mu,uy=G$y.u)
## Y = (10.0 +/- 2.0)*10^-1
CIPrint(y=G$y.mu,uy=G$y.u,fac=1.96,p=0.95)
## 95 percent C.I. = [6.1,13.9]*10^-1
Pascal PERNOT (LCP) Propagation des incertitudes 15 / 31
rgumlib
Monte Carlo: gumS1
S=with(params,gumS1(fExpr=fExpr,x.mu=x.mu,x.u=x.u,x.pdf=x.pdf,
adapt=FALSE, nrun=1000, silent=FALSE))
## *** Monte Carlo Uncertainty Propagation:# Sample Size = 1.0e+03# Y = (20.2 +/- 9.2)*10^-1# 95 percent C.I. = [83,390]*10^-2
S=with(params,gumS1(fExpr=fExpr,x.mu=x.mu,x.u=x.u,x.pdf=x.pdf,
adapt=TRUE, ndig=1))
## *** Monte Carlo Uncertainty Propagation:# Sample Size = 8.0e+03# Y = (19.9 +/- 9.0)*10^-1# 95 percent C.I. = [81,388]*10^-2
Pascal PERNOT (LCP) Propagation des incertitudes 16 / 31
rgumlib
Monte Carlo: gumS1
str(S)
# List of 7# $ y.mu : num 1.99# $ y.u : num 0.904# $ y.low : Named num 0.808# ..- attr(*, "names")= chr "2.5%"# $ y.high: Named num 3.88# ..- attr(*, "names")= chr "97.5%"# $ p : num 0.95# $ Y : num [1:4000, 1] 1.38 1.58 3.3 2.72 3.18 ...# ..- attr(*, "dimnames")=List of 2# .. ..$ : NULL# .. ..$ : chr "Y"# $ X : num [1:4000, 1:2] -0.519 0.419 1.54 -1.272 -1.439 ...# ..- attr(*, "dimnames")=List of 2# .. ..$ : NULL# .. ..$ : chr [1:2] "x1" "x2"
Pascal PERNOT (LCP) Propagation des incertitudes 17 / 31
rgumlib
Monte Carlo: gumS2
S=with(params,gumS2(fExpr=fExpr,x.mu=x.mu,x.u=x.u,x.pdf=x.pdf,
ndig=1))
## *** Monte Carlo Uncertainty Propagation:# 1st stage: 30 blocks# 2nd stage: 0 blocks## Sample Size = 3.0e+03# Y = (20.2 +/- 9.2)*10^-1# 95 percent C.I. = [80,388]*10^-2
Pascal PERNOT (LCP) Propagation des incertitudes 18 / 31
rgumlib
Monte Carlo: graphiques: convergence
cumPlot(S$Y)
500 1000 1500 2000 2500 3000
12
34
Y
MeanQuantiles; p=0.95
Pascal PERNOT (LCP) Propagation des incertitudes 19 / 31
rgumlib
Monte Carlo: graphiques: ECDF
ECIPlot(S$Y)
1 2 3 4
0.0
0.2
0.4
0.6
0.8
1.0
EC
DF
(Y)
Y
0.02
5
0.8
0.5
1.76
0.97
5
3.87
ECDFNorm. Approx.
Pascal PERNOT (LCP) Propagation des incertitudes 20 / 31
rgumlib
Monte Carlo: graphiques: nuages
SAPlot(cbind(S$X,S$Y))
x1
0.6 0.8 1.0 1.2
−0.021
−1.
5−
0.5
0.5
1.5
−0.05
0.6
0.8
1.0
1.2 x2
0.26
−1.5 −0.5 0.5 1.5 1 2 3 4
12
34Y
Pascal PERNOT (LCP) Propagation des incertitudes 21 / 31
rgumlib
Analyse de sensibilité: sobolSA
z=with(params,sobolSA(fExpr=fExpr,x.mu=x.mu,x.u=x.u,x.pdf=x.pdf,graph=TRUE))
x1 x2
First OrderTotal
0.0
0.2
0.4
0.6
0.8
x1 x2
First OrderTotal
Sobol sensitivity indices
0.0
0.2
0.4
0.6
0.8
Pascal PERNOT (LCP) Propagation des incertitudes 22 / 31
rgumlib
Analyse de sensibilité: sobolSA
print(z)
## Call:# sensitivity::soboljansen(model = fVector, X1 = X1, X2 = X2, nboot = nboot, fExpr = fExpr)## Model runs: 40000## First order indices:# original# x1 0.95256419# x2 0.04635686## Total indices:# original# x1 0.95364314# x2 0.04743581
Pascal PERNOT (LCP) Propagation des incertitudes 23 / 31
rgumlib
Analyse de sensibilité: vgSA
d=with(params,vgSA(fExpr=fExpr,x.mu=x.mu, x.u=x.u, X=S$X, Y=S$Y,
silent=TRUE))knitr::kable(G$budget,'latex') # Reminder of GUM
Valeur Inc_Std. J J2.U2 Anovax1 0.000e+00 1.00e+00 0.00e+00 0.00e+00 0.00x2 1.000e+00 1.00e-01 2.00e+00 4.00e-02 1.00Y 1.000e+00 2.00e-01 <– 4.00e-02
knitr::kable(d$budget,'latex')
Valeur Inc_Std. VGx1 0.000e+00 1.00e+00 1.89e+00x2 1.000e+00 1.00e-01 5.27e-02Y 2.018e+00 9.18e-01
Pascal PERNOT (LCP) Propagation des incertitudes 24 / 31
Exercices
Avant de vous lancer
pour chaque cas, on adaptera le fichier Rmd fourni en exemple
on comparera systématiquement les résultats de la méthode de combinaison desvariances (GUM) avec Monte Carlo (GUM-Supp1).
on comparera également les résultats des différentes méthodes d’analyse de sensibilité,et on validera numériquement leur interprétation
Pascal PERNOT (LCP) Propagation des incertitudes 26 / 31
Exercices
Distance de freinage 1/2
L’évaluation de la distance d’arrêt d’une voiture roulant à la vitesse V est caractérisé par laformule
Da = TR ∗ V + V 2
2 ∗ a ∗ c
TR : temps de réaction, de l’ordre de 1 sV : vitesse en m.s-1
a : décélération en m.s-2 de l’ordre de 5 m.s-2
c : coefficient sans dimension tenant compte de l’état de la route ' 0.7 sur bitume sec
On roule à 130 km/h sur route sèche. Un obstacle surgit brutalement, quelledistance parcourt-on avant l’arrêt complet ?
Pascal PERNOT (LCP) Propagation des incertitudes 27 / 31
Exercices
Distance de freinage 2/2
Le temps de réaction TR a été estimé lors d’une étude sur de nombreux casd’accidents : le temps minimum est de 0.5 s, mais que ce temps peut aller jusque 1.5s pour une personne normalement vigilante. On ne dispose pas d’un ensemble devaleurs analysables. Proposer une modélisation du temps de réaction (choix de la loide densité de probabilité, moyenne, incertitude-type).Le coefficient c peut être compris entre 0.3 et 0.8 selon la nature du revêtement et lescirconstances: sur route sèche et propre, c est compris entre 0.6 et 0.8. Modéliser csous la forme d’une loi de densité de probabilité gaussienne : calculerl’incertitude-type.V est caractérisée par une incertitude-type de 4 km/h pour tenir compte à la fois del’indicateur de vitesse et de la vigilance à maintenir la vitesse constante.a est caractérisée par une incertitude- type de 0.5 m.s-2, pour tenir compte del’efficacité du système de freinage et donc de l’état d’entretien du véhicule.
Déduire l’incertitude-type composée, et l’intervalle contenant probablement ladistance d’arrêt. Faire une étude de sensibilité relative.
Pascal PERNOT (LCP) Propagation des incertitudes 28 / 31
Exercices
Distance de tir
La portée sur terrain plat d’un projectile lancé à une vitesse v selon un angle ϑ par rapportà l’horizontale est donnée par la formule
d = v 2 sin(2ϑ)/g
où g est l’accélération de la pesanteur.
Estimer la portée d’un projectile et l’incertitude-standard associée, sachant que:
1 la vitesse du projectile est de 100 km/h, avec une incertitude standard relative de 1%,supposée liée à la variabilité de la masse du projectile et de la charge de propulsant;
2 on vise selon un angle de 60 degrés à l’aide d’un clinomètre gradué, qui permet lalecture au degré le plus proche;
3 on estime g = 9.81 m.s-2, avec une incertitude standard relative de 1 %, liée à notreméconnaissance de sa valeur locale sur la zone de tir.
Pascal PERNOT (LCP) Propagation des incertitudes 29 / 31
Exercices
Modèle Gaussien
On considère le modèleY = exp(−X 2)
avecX ∼ Unif (−a, a)
.
que donne la combinaison des variances pour uY ?étudier par Monte Carlo uY en fonction de a (p. ex. 0.1, 1, 2, 3, 4). On calculeraaussi pour chaque valeur de a le gradient de la variance (vgSA).faire la même analyse pour Y = sin(X) et Y = tanh(X)discuter. . .
Pascal PERNOT (LCP) Propagation des incertitudes 30 / 31