• Aucun résultat trouvé

MAT-2910:C HAPITRE 1

N/A
N/A
Protected

Academic year: 2022

Partager "MAT-2910:C HAPITRE 1"

Copied!
14
0
0

Texte intégral

(1)

MAT-2910: C HAPITRE 1

A

NALYSE D

ERREURS hm@mat.ulaval.ca

T

ABLE DES MATIÈRES

1 Sources d’erreurs 2

1.1 Introduction . . . 2

1.2 Types d’erreurs. . . 3

1.3 Erreur absolue, erreur relative . . . 5

2 Représentation des nombres en machine 6 3 L’arithmétique flottante 9 3.1 accumulation des erreurs d’arrondi . . . 10

3.2 Erreurs d’arrondi sur une somme . . . 10

3.3 Règle de Horner . . . 12

3.4 Phénomènes de compensation (cancellation) . . . 12

3.5 Instabilité numérique . . . 13

4 Erreurs de troncature 15 4.1 Développement de Taylor d’une fonction à une variable . . . 15

4.2 Développement de Taylor d’une fonction à deux variables . . . . 15

(2)

1 S

OURCES D

ERREURS

1.1 I

NTRODUCTION

•On ne peut pas résoudre analytiquement tous les problémes mathéma- tiques issus des sciences de l’ingénieur.

On peut citer par exemple :

– Calcul d’une primitive de certaines fonctions.

Exemple 1.1 :

Z π 0

ln(cosx)2d x

– Calcul d’une solution explicite de certaines équations non linéaires Exemple 1.2 :

x =ex

– Résoudre certaines équations différentielles ordinaires Exemple 1.3 :

y0(x) =sin(y(x))

– Résoudre certaines équations aux dérivées partielles

•Dans un tel cas, on remplace la résoulution mathématique du problème par son approximation numérique en utilisant les techniques d’analyse numé- rique.

•L’analyse numérique permet d’obtenir au moyen d’un algorithme la solu- tion approchée d’un problème mathématique posé et ceci avec une précision désirée et après un nombre fini d’opérations élémentaires.

•La stratégie générale consiste à transformer un probléme compliqué en un probléme plus simple. Par exemple

– Nonlinéaire−→linéaire (Linéarisation) – Continu−→discret (Discrétisation)

•Le résultat final et son degré de précision vont dépendre : – des algorithmes utilisés

– de leur mise en œuvre sur ordinateur

(3)

1.2 T

YPES D

ERREURS

Les erreurs introduites dans la résolution d’un modèle mathématique pro- viennent de différentes sources :

1. Les erreurs de modélisation : pour être traité numériquement, un pro- blème mathématique est toujours simplifié par rapport à la réalité. (Ex- périmentation, simplification,· · ·)

Exemple 1.4 : Assimiler par exemple la terre de forme sphérique. Or le rayon de la terre est r≈6357km à l’équateur et r≈6378km aux pôles.

Exemple 1.5 : Problème du pendule θ00(t) =−α

0(t)− g

l sinθ(t)

Pour les petites oscillations on peut écrire sin(θ(t)) ≈ θ(t). On obtient alors l’équation différentielle linéaire

θ00(t) =−α

0(t)− g lθ(t)

2. Erreurs sur les données : Les données expérimentales sont entachées d’erreurs.

3. Les erreurs d’arrondi: qui proviennent de la représentation des nombres dans un calculateur.

4. Les erreurs d’approximation et de discrétisation: – calcule d’une intégrale à l’aide d’une somme finie, – une dérivée à l’aide de différences finies

– la somme d’une série infinie à l’aide d’un nombre fini de ses termes 5. Les erreurs humaines: programmation.

Soit x un nombre réel et soit ˜x une approximation de x. Pensez à x =π par exemple. Soit f(x) un résultat désiré (évaluation d’une fonction en un point) et soit ˜f(x˜)la valeur calculée. Alors on peut écrire

Erreur totale = f(x)−f˜(x˜)

= (f(x)−fx))

| {z }

Erreur due aux données

+ (f(x˜)−f˜(x˜))

| {z }

Erreur de calcul

Erreur de calcul = Erreurs d’arrondi +Erreurs de troncature

(4)

Erreur d’arrondi = Arithmétique exacte −Arithmétique flottante

Erreur de troncature = Résultat exact −Résultat produit par un algorithme

(5)

1.3 E

RREUR ABSOLUE

,

ERREUR RELATIVE

•En général dans tout calcul numérique, on remplace un nombre exact x par un nombre approché ˜x légèrement différent.

•Si ˜x <x, on dit que ˜x est une valeur approchée dex par défaut. Si ˜x >x, on dit que ˜x est une valeur approchée de x par excès. Dans les deux cas on note ˜xx.

Définition 1.1 On appelle erreur absolue d’un nombre approché ˜x la valeur ab- solue Ea bs(x) de la différence entre le nombre axact x et le nombre approché donné :

Ea bs(x):=|xx˜|

L’erreur relative Er el(x)d’un nombre approchéx est le rapport de l’erreur absolue˜ Ea bs(x)de ce nombre et de la valeur absolue du nombre exact

Er el(x):= Ea bs(x)

|x |

Le pourcentage d’erreur est l’erreur relative multipliée par 100.

L’erreur relative fournit une information plus pertinente sur la grandeur réelle de l’erreur.

Exemple 1.6

x=π=3.141592· · ·,x=3.1419

Erreur absolue=3.073464102070211×10−4 Erreur relative=9.783140085199355×105 Exemple 1.7

y =106,y=999996 Erreur absolue=4.0×100 Erreur relative=4.0×106 Exemple 1.8

z=0.000012,z=0.000009 Erreur absolue=3.0×10−6 Erreur relative=25.0×102

(6)

2 R

EPRÉSENTATION DES NOMBRES EN MACHINE

Dans un ordinateur un nombre réel est représenté par un nombre fini de caractères, fixé à l’avance, qui dépend de l’architecture de la machine. Ainsi tous les nombres entiers ou réels ne peuvent pas être représentés.

On distingue :

– Les nombres entiers dont la représentation et la manipulation sont celles de l’arithmétique usuel.

– Les nombres flottants qui représentent les nombres rées. Ils sont repré- sentés de façon approximative dans la mémoire de la machine.

Définition 2.1 Soit x un nombre réel. Son développement dans une base b∈N donnée est

x =± X

i=1

aibi

! be

Sa représentationen virgule flottante à t chiffres dans une base donnée b ∈ N,b≥2est donnée par le nombre

˜

x := (−1)sbe

t

X

i=1

aib−i = (−1)smbe

On note fl(x) = ˜x

Mantisse : m=

t

X

i=1

aibi=a1b1+a2b2+· · ·+atbt Exposant : e∈Z,L<e<U, L<0,U >0

Signe : s∈ {0, 1}

ai∈N, 0<a1<b, 0ai <b,i=2,· · ·( normalisation) t= nombre de chiffres utilisés pour représenter la mantisse Le nombre de nombres flottants normalisés est donné par

2(b−1)bt−1(UL+1) +1 Exemple 2.1 x =2.4=2+0.4=0.2·101+0.04·101

2.4=101(2·10−1+4·10−2) =0.24·101,(b=10,e=1,t=2,m=0.24) Il existe deux façons d’obtenir l’approximation fl(x)à partir du développe- ment de x dans la base b:

(7)

– Partroncature: on garde lest premiers chiffres du développement.

– Pararrondi: On ajoute 2b au(t+1)-ème chiffre du développement et on tronque.

Exemple 2.2

x =123,y=45.6,z=45.67

Pour une arithmétique flottante qui utilise t=3,b=10on a : fl(x) =0.123·103,fl(y) =0.456·102,fl(z) =0.457·102 Dans le standard IEEE 754 utilisé par Matlab, on a b=2 et : – en simple précision : t=24,L=−125,U =128

– en double précision :t=53,L=−1021,U =1024

Dans le standard IEEE 754 utilisé par Matlab, on a b = 2. De plus en simple précision on a t =24,L=−125,U =128 et en double précision on a t=53,L=−1021,U =1024.

Théorème 2.1 Dans une arithmétique à t chiffres avec troncature on a :

|xfl(x)|

|x| ≤b1t Dans une arithmétique à t chiffres avec arrondi on a :

|xfl(x)|

|x | ≤1 2b1−t On note

εm :=b1t(epsilon machine) Dans Matlabεm =eps .

>> eps

>> ans =

2.2204e-016

(8)

3 L’

ARITHMÉTIQUE FLOTTANTE

Le système numérique discret des machines est source d’erreurs. Il faut donc prendre des précaustions pour qu’une accumulation d’erreurs aussi petite soit-elle ne vienne pas fausser le résultat final.

Exemple 3.1

>> x = 2.0E+29;

>> y = 1.0E-9;

>> z1 = (y+(x-x))/y z1 =

1

>> z2 = ((y+x)-x)/y z2 =

0

On désigne par◦l’une des opérations suivantes :+,−,×,÷et on définit xýy =fl(fl(x)◦fl(y))

Deux expressions algèbriquement équivalentes peuvent fournir des résul- tats différents sur une machine et que l’ordre des opérations peut changer les résultats.

x⊕(yz) 6= (xy)⊕z 6= (xy)⊕(xz) Exemple 3.2 t=4,b=10avec troncature.

x =0.1234×101,y=0.3429×100,z=0.1289×10−1 On a

x⊕(yz) =0.1489×101,(xy)⊕z=0.1588×101

x⊗(yz) 6= (xy)z 6=x⊗(yz)

(9)

3.1

ACCUMULATION DES ERREURS D

ARRONDI Soit à calculer

A=

104

X

k=1

1 10 = 1

10+· · ·+ 1 10

Le nombre réel 101 =0.1 en base 10, mais dans la base 2 il s’écrit (0.1)10= (0.00011001100110011· · ·)2

>> s=0;

>> for k=1:10000 s=s+0.1;

end

>> format long

>> s s =

1.000000000000159e+003

Et la valeur exacte estA=103.

3.2 E

RREURS D

ARRONDI SUR UNE SOMME

Dans une sommation de réels, l’erreur peut être minimisée lorsqu’on somme en premier les termes ayant la plus petite valeur absolue.

Exemple 3.3

Somme=a0+a1+· · ·+an, avec a0=1,a1=a2=· · ·=an=1016 Pour n=1016on a exactement Somme=2mais numériquement on a

(((a0a1)⊕a2)⊕ · · ·)⊕an) =1 a0+ (a1⊕(a2⊕ · · ·(an1an))) =2

On doit donc sommer par ordre croissant une série à termes positifs.

Exemple 3.4

S=1+ Xn

k=1

1 k+k2

(10)

On a

S=2− 1 n+1 et donc pour n assez grand S ≈2.

On pose

S1 =1+12 +· · ·+n+1n2

S2 =n21+n +· · ·+12+1

(11)

3.3 R

ÈGLE DE

H

ORNER

On s’intersse au[problème de l’évaluation d’un polynôme P(x) =a0+a1x+· · ·anxn

Pour évaluer ce polynôme au point x on utilise l’algorithe de Horner sui- vant : on réecrit P(x)sous la forme

P(x) =a0+x(a1+x(a2+· · ·=x(an−1+x an))) et on pose pk=ak+ak+1x+· · ·+anxn−k. Alors on a

P(x) =p0

pn =an

pk1 =ak1+x pk, 1≤kn

3.4 P

HÉNOMÈNES DE COMPENSATION

(

CANCELLATION

)

Ces phénomènes se produisent lorsqu’on veut soustraire des nombres très voisins.

Exemple 3.5 On veut calculer les valeurs des fonctions f1(x) = 1−cosx

x2 , f2(x) = 2 sin(x/2)2 x2 pour des valeurs de x ≈0.

Algébriquement on a

f1(x) = f2(x), ∀x ∈R mais avec Matlab on a par exemple :

f1(108) =0, et f2(108) =0.5 A(x) =p

x+1−p

x, B(x) = 1 px+1+p

x On aA(x) =B(x), ∀x ∈R.

Numériquement on a :

A(108) =5.0000×10−5, B(108) =5.0000×10−5 A(1010) =4.9999×106, B(1010) =4.9999×106 A(1016) =0, B(1016) =5.0000×109

(12)

Exemple 3.6 Résolution de a x2+b x+c=0 On a

x1=−b+p

b2−4ac 2a

x2=−b−p

b2−4ac 2a

Pour éviter le phénomène de cancellation on peut utiliser l’une des méthodes suivantes :

prendre comme x1 la plus grande des racines et calculer x2 par la formule x2=c/a x1

onpeut écrire les formules çi-dessus un peu différemment, en remar- quqnt que

py−p

z= yz py+p

z Exemple 3.7 Calcul approché de e10

e10

10

X

k=0

(−1)k10k k!

Le terme général uk est tel que

|uk|

|uk−1| =10

k ≥1, k≤10

Règle : e−10=e110 avec e10≈ Xn

k=0

10k k!

3.5 I

NSTABILITÉ NUMÉRIQUE

Ce phénomème se produit par exemple dans certains algorithmes itératifs.

Exemple 3.8 Calcul récurrent In=

Z 1

0

xn

10+x n=1, 2,· · · On a

In=1

n−10In1

(13)

ceci permet de calculer In par ˚’ecurrence avec

¨ I0=log1110 In= 1n−10In1 L’erreur sur In croit exponentiellement.

L’idée içi est de renverser la récurrence en posant In1= 1

10(1 nIn)

(14)

4 E

RREURS DE TRONCATURE

4.1 D

ÉVELOPPEMENT DE

T

AYLOR D

UNE FONCTION À UNE VARIABLE Théorème 4.1 Soit h6=0.

Si fCn+1([x,x+h])ou fCn+1([x+h,x])si h<0alors : f(x+h) = f(x) +h f0(x) +h2

2!f00(x) +· · ·+hn

n!f(n)(x) +Rn(x) avec

Rn(x) = Z x+h

x

(x+hy)n

n! f(n+1(y)d y

= hn+1

(n+1)!f(n+1(cx)

=O(hn+1)

=o(hn)

oùcx ∈]x,x+h[si h>0ou]x+h,x[si h<0.

O=" de l’ordre de ".

o=" négligeable comparé à ".

Exemple 4.1 Série de Taylorde de f(x) =ex au voisinage de x=0: eh=1+h+h2

2 +h3 6eα oùα∈]0,h[si(h>0).

1+h+h22 est donc uneapproximation d’ordre 3deex.

4.2 D

ÉVELOPPEMENT DE

T

AYLOR D

UNE FONCTION À DEUX VARIABLES Théorème 4.2 Soient h 6= 0,k 6= 0 des nombres réels. Si toutes les dérivées partielles fx, fy, fx x, fx y, fy y,· · ·, de f jusquà l’ordre n sont continues dans un domaine contenant le point(x,y)alors :

f(x+h,y+k) = f(x,y) +h fx(x,y) +h2

2 fx x(x,y) +hk fx y(x,y) + +k2

2 fy y(x,y) +· · ·

Références

Documents relatifs

7 Deux voitures font des tours sur un circuit fermé, elles partent toutes les deux à midi de la ligne de départ.. L'une parcourt le circuit en 30minutes, l'autre en

3 Trace la hauteur issue de D pour le triangle DEF et celle issue de G pour le triangle KLG puis complète le tableau..

En effet, dans notre exemple, il a été obtenu par la multiplication de 48, nombre de deux chiffres par un nombre d'un chiffre \ il y a donc au plus trois chiffres et au moins deux...

1. Faire les calculs suivants et donner le résultat des opérations binaires sans passer par la base 10. a) Pour les très très rapides : créer un programme Python qui fait la somme

Trouver la représentation décimale des entiers relatifs dont les représentations binaires sur huit bits sont 01010101 et 10101010... Une addition de deux nombres positifs ou

Mon chiffre des dizaines vient juste après celui des centaines lorsque l'on compte.. Mon chiffre des centaines

Mon chiffre des dizaines vient juste après celui des centaines lorsque l'on compte.. Mon chiffre des centaines

Sur un échiquier, on pose un grain de riz sur la première case, puis deux sur la deuxième, quatre sur la troisième et ainsi de suite en doublant le nombre de grains de riz à