Chevaliers de la table rectangulaire, goûtons voir si l’estimation est bonne

Introduction à l’arithmétique d’intervalles
lundi 19 janvier 2015
par  Alain BUSSER

Pour connaître le périmètre et l’aire d’une table rectangulaire, on mesure ses dimensions à l’aide d’un mètre à ruban légèrement élastique qui permet de savoir que

  • la longueur est 1,6 mètre à 1,5 cm près
  • la largeur est 0,8 mètre à 0,8 cm près.

Autrement dit, on sait seulement que la longueur est comprise entre 158,5 cm et 161,5 cm et la largeur, entre 79,2 et 80,8 cm

On voudrait savoir quels sont le périmètre et l’aire, approximativement parce qu’on ne peut pas faire mieux.

Calcul d’intervalles

Depuis 2014, Xcas fait de l’arithmétique d’intervalles. Cependant il ne semble pas (encore) possible de convertir un nombre approché à ε près en intervalle donné par ses bornes, puisque si on fait

L := convertir(160,interval,1.5)
type(L)

on obtient 160 .. 1.5 (sans crochets) et DOM_SYMBOLIC ; alors que si on fait

L := [160-1.5..160+1.5]
type(L)

on obtient [0.158499999999999e3..0.161500000000001e3] et DOM_SPECIALFLOAT. D’ailleurs en essayant d’effectuer une opération sur la première sorte d’intervalle, Xcas « plante »...

Euler Math Toolbox

Ceci dit, poser les opérations comme on l’a fait ci-dessus n’est pas très difficile, et le logiciel Euler Math Toolbox permet d’automatiser ce petit calcul, en entrant un intervalle sous la forme de son choix :

  • avec ses bornes en remplaçant les crochets par des « tildes » ;
  • par centre et rayon, un intervalle étant un disque en dimension 1.

En entrant

L := 160±1.5

on lit ~158.5,161.5~

et en entrant

l := 80±0.8

on lit

~79.2,80.8~

Pourquoi alors utiliser Xcas plutôt qu’Euler Math Toolbox ? Parce que le premier est multiplateforme, contrairement au second... Par contre, l’arithmétique d’intervalle est loin d’être nouvelle dans Euler Math Toolbox, et il suffit de faire 2*(L+l) pour avoir un encadrement du périmètre ~475.4,484.6~ et (pour conversion en mètres carrés), (L*l)/10000 pour avoir un encadrement de l’aire : ~1.25,1.31~.

Donc dans une session Xcas on entre ceci :

L := [158.5..161.5]
l := [79.2..80.8]
L+l+L+l
2*(L+l)

Les deux dernières lignes sont deux manières de calculer le périmètre, elles donnent évidemment le même résultat [0.475399999999997e3..0.484600000000003e3]. Des problèmes d’arrondi lors de la conversion binaire/décimal font que le résultat est à lire « le périmètre est compris entre 4,754 mètres et 4,846 mètres ».

Voir l’onglet suivant pour une justification « théorique ».

Pour avoir un encadrement de l’aire on fait

L*l/10000

et on a l’encadrement souhaité : [1.25531999999998..1.30492000000002]. Il est à lire « l’aire de la table est comprise entre 1,25532 m2 et 1,30492 m2 ».

Le calcul « à la main » est fait dans l’onglet suivant.

Leibniz

Périmètre

On constate que, si la longueur est donnée à 1,5 cm près et la largeur à 0,8 cm près, le périmètre est donné à (484,6 - 475,4)/2 = 4,6 cm près :

  • 158,5 ≤ L ≤ 161,5
  • 317 ≤ 2L ≤ 323
  • 79,2 ≤ l ≤ 80,8
  • 158,4 ≤ 2l ≤ 161,6

D’où, par somme, 475,4 ≤ 2L+2l ≤ 484,6. La moyenne de ces deux nombres étant 480, on peut donc dire que :

« Le périmètre de la table vaut 4,8 mètres à 4,6 cm près. »

Ainsi, en doublant une longueur, on double l’erreur d’approximation commise en mesurant la longueur initiale. Et en additionnant des nombres approchés, les erreurs d’approximation s’accumulent. Plus précisément :

En notant la longueur 1,6+dL (avec dL compris entre -0,015 et +0,015) et la largeur 0,8+dl (avec dl compris entre -0,008 et +0,008), on peut écrire avec la notation de Leibniz, que

  • Le double de la longueur est 3,2+2dL
  • Le double de la largeur est 1,6+2dl
  • Le périmètre est 4,8+2dL+2dl est donc connu à 2×0,015+2×0,008=0,03+0,016=0,046 mètre près.

Plus généralement,

  • d(2f) = 2 df
  • d(f+g) = df+dg

Ceci illustre que

  • La dérivée du double est le double de la dérivée ;
  • La dérivée d’une somme est la somme des dérivées (u+v)’=u’+v’

Aire

En mètres :

  • 1,585 ≤ L ≤ 1,615
  • 0,792 ≤ l ≤ 0,808
  • 1,585×0,792 ≤ L×l ≤ 1,615×0,808
  • 1,25532 ≤ L×l ≤ 1,30492

C’est bien l’encadrement trouvé dans l’onglet précédent. Mais

  • la moyenne entre les bornes est 1,28012 m2 (alors que le produit de 1,6 par 0,8 est 1,28 et non 1,28012),
  • et l’aire est donnée à (1,30492-1,25532)/2=0,0248 près. Comment retrouver ces 0,0248 à partir des 0,015 et 0,008 m de l’énoncé ?

La notation de Leibniz permet de répondre : En notant 1,6+dL la longueur et 0,8+dl la largeur, l’aire est (1,6+dL)×(0,8+dl) que l’on peut développer en 1,28+0,8dL+1,5dl+dL×dl. Le dernier terme étant majoré par 0,015×0,008=0,00012

  • explique l’écart entre l’aire moyenne et la moyenne des aires, et
  • est négligeable devant les deux termes qui le précèdent.

Donc l’erreur d’approximation est approximativement 0,8×0,015+1,6×0,008 = 0,0248 m = 2,48 cm ; c’est bien la valeur trouvée ci-dessus. Mais en passant on généralise ce calcul à (u+du)×(v+dv)≃uv+udv+vdu, qui donne la dérivée d’un produit : (uv)’=uv’+vu’...

Lois uniformes

En fait on peut dire un peu plus que cela : Il y a moins de chances que la longueur soit proche de 158,5 cm ou 161,5 cm (ses valeurs extrêmes), que de sa valeur moyenne 160 cm. Sinon, en supposant que toutes les valeurs comprises entre 158,5 et 161,5 sont équiprobables, on considère la longueur L comme une variable aléatoire uniforme sur l’intervalle [158,5 ; 161,5] et la largeur comme une variable aléatoire uniforme sur [79,2 ; 80,8]. Alors

  • 2L suit une loi uniforme sur [317 ;323]
  • 2l suit une loi uniforme sur [158,4 ; 161,6]
  • Mais le périmètre 2L+2l ne suit pas une loi uniforme sur [475,4 ; 484,6].

Une simulation permet de vérifier ceci. L’histogramme dessiné avec alcoffeethmique montre une forme clairement trapézoïdale :

image/svg+xml

Le source CoffeeScript

Voici le script qui a donné l’histogramme (sur un million de valeurs simulées) :

tableau=[]
for n in [0...1000000]
    x=317+6*alea()
    y=158.4+3.2*alea()
    tableau.push x+y
histogramme tableau, 475, 485, 100, 40000

On peut expliquer cette loi trapézoïdale : La loi du couple (x,y) est, elle, uniforme sur le rectangle délimité par les points de coordonnées (317 ;158,4), (317 ;161,6), (323 ;158,4) et (323 ;161,6). La densité de probabilité de la somme x+y est alors proportionnelle à la longueur du segment obtenu comme intersection entre la droite d’équation x+y=z et le rectangle :

  • si z est assez petit pour que la droite ne coupe le rectangle qu’en ses bords gauche et bas, la longueur du segment est fonction affine de z ;
  • si z est assez grand pour qu’au contraire, l’intersection se fasse sur les bords droit et haut du rectangle, la longueur est aussi affine (et symétrique du cas précédent)
  • dans les autres cas, l’intersection se fait sur les bords haut et bas du rectangle, et a une longueur constante.

La représentation graphique d’une telle fonction est bien un trapèze.

L’aire quant à elle semble suivre une loi triangulaire :

image/svg+xml

Le script pour alcoffeethmique

Simulation sur un million de valeurs, histogramme à 100 rectangles :

tableau=[]
for n in [0...1000000]
    x=15.85+0.3*alea()
    y=7.92+0.16*alea()
    tableau.push x*y
histogramme tableau, 125, 131, 100, 40000

En fait, on peut faire un raisonnement similaire à celui de la somme, mais cette fois-ci on considère l’intersection du rectangle, non pas avec une famille de droites x+y=z, mais avec une famille d’hyperboles x×y=z. On a alors deux différences bien visibles avec le cas de la somme :

  • La partie centrale de l’histogramme n’est plus horizontale (on n’a plus un trapèze) ;
  • mais elle est tellement petite qu’on ne la voit presque pas.

D’où cette impression de triangle.

Lois triangulaires

On peut alors changer de modèle, en prenant pour les dimensions de la table, des variables aléatoires suivant une loi triangulaire, ce qui rend mieux compte du fait qu’il est moins probable de trouver une mesure extrême qu’une mesure médiane.

La longueur L est supposée triangulaire sur [1,585 ;1,615], et peut être simulée en additionnant à la valeur centrale 1,6 une variable du type 1,5*alea() et en soustrayant une autre variable du même type. De même, on peut modéliser l par une variable triangulaire sur [0,792 ;0,808] de façon analogue. Alors x=2L et y=2l suivront aussi une loi triangulaire, ce qui mène à un histogramme de ce genre :

image/svg+xml

source de l’histogramme

tableau=[]
for n in [0...1000000]
    x=320+3*alea()-3*alea()
    y = 160+1.6*alea()-1.6*alea()
    tableau.push x+y
histogramme tableau, 475, 485, 100, 40000

Quant au produit de la longueur par la largeur, pour peu que celles-ci soient triangulaires, voici son histogramme :

image/svg+xml

Le script ayant produit cette figure

tableau=[]
for n in [0...1000000]
    L=1.6+0.015*alea()-0.015*alea()
    l = 0.8+0.008*alea()-0.008*alea()
    tableau.push L*l
histogramme tableau, 1.25, 1.31, 100, 40000

On voit donc que les lois normales présentent un double intérêt dans ce genre de modélisation :

  1. Les variables normales apparaissent comme cas limite (théorème central limite)
  2. Les variables normales suivent une loi stable au sens de Levy : Si L et l sont normales alors le périmètre est normal et l’aire est approximativement normale.

On va donc supposer L et l normales dans le prochain onglet.

Lois normales

D’où l’hypothèse de normalité, qui permet de donner des estimations du périmètre et de l’aire par des intervalles de confiance à 95% :

  • La longueur L est une variable aléatoire normale d’espérance 160 cm et d’écart-type 1,5/2 = 0,75 cm (autrement dit, de variance 0,5625 cm2) ;
  • La largeur l est aussi normale mais d’espérance 80 cm et d’écart-type 0,8/2 = 0.4 cm (ou, si on préfère, de variance 0,16 cm2).

Alors le double de la longueur est toujours une variable normale mais de paramètres 320 cm et 1,5 cm (ou 2,25 cm2) ; le double de la largeur est une variable normale de paramètres 160 cm et 0,8 cm (ou 0,64 cm2). En supposant ces variables indépendantes, le périmètre suit une loi normale

  • d’espérance 320+160=480 cm ;
  • de variance 2,25+0,64 = 2,89 cm2
  • donc d’écart-type 1,7 cm

Ceci se confirme par l’histogramme [1] :

image/svg+xml

Le script ayant produit cet histogramme

Z = () ->
    s = -6
    s += alea() for n in [0...12]
    s
normale = (m,s) ->
    m+s*Z()
tableau=[]
for n in [0...1000000]
    x = normale 320, 1.5
    y = normale 160, 0.8
    tableau.push x+y
histogramme tableau, 475, 485, 100, 40000

On peut donc conclure qu’on connaît le périmètre à 2×1,7=3,4 cm près (comparer avec les résultats trouvés dans les deux premiers onglets).

Aire

Dire que L suit une loi normale de paramètres 1,6 et 0,0075 c’est dire qu’on peut écrire L=1,6+0,0075×X où X est normale centrée réduite. De même on peut écrire la largeur sous la forme l=0,8+0,004×Y où Y est aussi normale centrée réduite, et en plus indépendante de X. Alors on peut écrire l’aire sous la forme

L×l = (1,6+0,0075×X)(0,8+0,004×Y)=1,28+0,006X+0,0064Y+0,00003XY

après développement. C’est donc la somme de deux variables aléatoires :

  • 1,28+0,006X+0,0064Y qui est normale d’espérance 1,28 et de variance 0,006²+0,0064²=0,00007696 (donc d’écart-type 0,0087727 environ)
  • 0,00003 XY qui a la même loi que le produit de deux variables normales centréess réduites, et suit donc une loi de Bessel.

C’est parce que cette variable est petite que la loi de l’aire est approximativement normale, et un intervalle de confiance à 95% de cette aire est donnée par

  • son centre (légèrement supérieur à 1,28 m2)
  • sa demi-longueur qui est environ le double de l’écart-type, soit environ 1,5392 dm2, ce qui est là encore inférieur au résultat du second onglet.

Voici l’histogramme montrant que la loi est approximativement normale :

image/svg+xml

Le script en CoffeeScript

Voici le script ayant produit l’histogramme avec alcoffeethmique :

Z = () ->
    s = -6
    s += alea() for n in [0...12]
    s
normale = (m,s) ->
    m+s*Z()
tableau=[]
for n in [0...1000000]
    L = normale 1.6, 0.0075
    l = normale 0.8, 0.004
    tableau.push L*l
histogramme tableau, 1.25, 1.31, 100, 40000

Conclusion

  • Si on veut des estimations certaines par intervalles, on peut dire que le périmètre vaut 4,8 mètres à 4,6 cm près et que l’aire vaut 1,28012 m2 à 2,48 dm2 près.
  • Par contre si on fait l’hypothèse que les dimensions de la table rectangulaire sont normales, les intervalles sont de confiance (à 95% de confiance) et le prérimètre est maintenant connu à 3,4 cm près et l’aire, à 1,54 dm2 près (mais à 95% seulement).

On peut tout refaire à 98%, en divisant la demi-largeur de l’intervalle par 3 pour avoir l’écart-type. On aura des résultats similaires.

Les points du programme traités avec cette seule activité sont

  • les notions de rectangle, de périmètre et d’aire
  • les unités de longueur et d’aire
  • les histogrammes
  • les majorations et minorations de sommes et de produits
  • les approximations et erreurs d’approximations
  • la dérivée d’une somme, du produit par une constante
  • la dérivée d’un produit
  • les somme et produit de variables aléatoires
  • les lois uniforme et normale

[1on simule la loi normale centrée réduite comme somme de 12 variables uniformes sur [0,1[ additionnées à -6 ; la somme n’est pas exactement normale mais elle est centrée et réduite.


Commentaires

Navigation