propagation des incertitudes - travaux...

31
Propagation des incertitudes Travaux Pratiques Pascal PERNOT Laboratoire de Chimie Physique, UMR8000, CNRS/Univ. Paris-Sud Pascal PERNOT (LCP) Propagation des incertitudes 1 / 31

Upload: vanthu

Post on 11-Sep-2018

223 views

Category:

Documents


0 download

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 notions de R

Pascal PERNOT (LCP) Propagation des incertitudes 6 / 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

Les documents Rmd

Les documents Rmd

Pascal PERNOT (LCP) Propagation des incertitudes 9 / 31

Les documents Rmd

Structure

Pascal PERNOT (LCP) Propagation des incertitudes 10 / 31

rgumlib

rgumlib

Pascal PERNOT (LCP) Propagation des incertitudes 11 / 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

Exercices

Pascal PERNOT (LCP) Propagation des incertitudes 25 / 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

Exercices

Surface de la table

Reprendre l’exemple du cours par la méthode de combinaison des variances.

Pascal PERNOT (LCP) Propagation des incertitudes 31 / 31