IFT 2425
EXAMEN INTRA
Max Mignotte
DIRO,Départementd'InformatiqueetdeReherheOpérationnelle,loal2377
Http ://www.iro.umontreal.a/
∼
mignotte/ift2425/E-mail:mignotteiro.umontreal.a
Date :24/02/2009
I ... Mesured'Inertitudeet Ampliationd'Erreur(29pts)
II ... ErreurenArithmétiqueFlottante (29pts)
III ... MéthodeduPointFixeet deNewton(25pts)
IV ... Fatorisation
LU
(17pts)V ... Interpolation(17pts)
Total ...
117
points.Tous douments personnels, alulatries et alulateurs autorisés
Onaimeraitfaireunprogrammeinformatiquequirésoudautomatiquementleséquationsduseonddegré
dustyle
ax 2 + bx + c = 0
. Aetten,leprogramme demanderadonàl'utilisateurde rentrerau lavier lesvaleursa
,b
etc
et aheraensuitelerésultat,'estàdirelesdeuxraines(x 1 etx 2)deette équation,
enutilisantlaformulelassiquesuivante
x 1 = − b + √
b 2 − 4ac
2a
(1)x 2 = − b − √
b 2 − 4ac
2a
(2)Onsuppose que l'on rentre les valeurssuivantes
a = 1.0
,b = 4.00
etc = 2.0
. On supposera aussiquelavaleur de
a
est onnue sansapproximation et que lesdeux autres valeurssontonnues ave une erreur relativede1%
.Onvousdemande de:
1. Soulignezleshiressigniatifsexat (se)existantdanslavaleurapproximéede
b
etc
.<4 pts>
2. Donnerlavaleurapproximéede
x 1 et x 2 donnéepareprogramme(i.e.,x ∗ 1 etx ∗ 2).
x ∗ 1 etx ∗ 2).
<2 pts>
3. Donner laborne supérieure de l'erreur absolue ou inertitude totale de
x 1 et x 2 (i.e., ∆x 1 et ∆x 2)
∆x 1 et ∆x 2)
parlaméthodedepropagationd'erreur(utilisantl'approximationdeTaylordelafontionaupremier
ordre).
<10 pts>
4. En déduirel'erreurrelativequefaite programmedansl'estimation numériquede
x 1 etx 2.
<3 pts>
5. Montrerqu'uneautrepossibilitéseraitd'exprimer
x 1 sousette forme
x 1 = − 2c b + √
b 2 − 4ac
(3)
<2 pts>
6. Donner l' inertitude totale de
x 1 (i.e., ∆x 1) par laméthode de propagation d'erreurutilisant l'ap-
proximationdeTaylordelafontionaupremierordrepourl'expression(3).
<5 pts>
7. Desdeux expressionspour
x 1 (Equations(1)et (3))laquelle peutonduireàdesproblèmesd'erreurs
numériqueslorsque
b
seratrèsgrandparrapportàa
etc
.Justiervotreréponse.<3 pts>
Réponse
1.
Onarespetivementpour
b
etc
uneerreurabsoluede∆b = 0.04 < 0.5 × 10 − 1et∆c = 0.02 < 0.5 × 10 − 1.
Ce quinousdonnerespetivement,
b ⋆ = 4.00
,c ⋆ = 2.0
.<4 pts>
2.
x ∗ 1 = −4 + √
4 2 − 4 × 1 × 2
2 = − 2 + √
2 ≈ − 0.58578
etx ∗ 2 = −4 − √
4 2 − 4 × 1 × 2
2 = − 2 − √
2 ≈ − 3.41421
<2 pts>
3.
Pour aluler l'inertitude(ou laborne supérieure de l'erreurabsolue) de
x 1 et x 2, on doit alulerla
diérentielle
∆x 1 et∆x 2 (fontiondesdeux variablesapproximéesb
et c
etdelavaleurpréisea
),i.e.,(en
b
etc
etdelavaleurpréisea
),i.e.,(enposant
∆ = b 2 − 4ac)
∆x 1 (b, c) = 1 2a
− 1 + b
√ ∆
∆b + − 1
√ ∆ ∆c
∆x 2 (b, c) = 1 2a
−1 − b
√ ∆
∆b +
√ 1
∆ ∆c
<8 pts>
Ave
∆b = 0.04
et∆c = 0.02
,soitpuisque√
∆ = √
4 2 − 4 × 2 ≈ 2.828427
∆x 1 = 1 2
− 1 + 4 2.828427
× 0.04 +
− 1 2.828427
× 0.02 ≈ 0.01535
∆x 2 = 1 2
−1 − 4 2.828427
× 0.04 +
1 2.828427
× 0.02 ≈ 0.05535
<2 pts>
4.
Onobtientdonuneerreurrelativede
∆x 1 /x ∗ 1 ≈ 0.01535/0.58578 = 2.62 %
et∆x 2 /x ∗ 2 = 0.05535/3.41421 ≈ 1.62 %
<3 pts>
5.
− b + √
b 2 − 4ac
2a = − b + √
b 2 − 4ac
2a · b + √
b 2 − 4ac b + √
b 2 − 4ac = − b 2 + b 2 − 4ac 2a(b + √
b 2 − 4ac) = − 2c b + √
b 2 − 4ac
<2 pts>
6.
∆x 1 (b, c) = − 2c
− 1 + √ b
∆
(b + √
∆) 2
∆b +
− 2(b + √
∆) − √ 4c ∆ (b + √
∆) 2
∆c
≈ 0.03539 + 0.0064644 ≈ 0.0418544
<5 pts>
7.
Lorsque
b
seratrès grandpar rapport àa
etc
, l'expressiondex 1 donnée par l'équation (1) aura une
annulationdesedue àlasoustrationdedeuxnombresquasiégauxapproximées.
<3 pts>
1. Soitl'expresionnumérique suivante
f (x) = ln(x + p x 2 + 1)
(a) Identiez,pourquellevaleurde
x
,etletypedeproblèmenumériquemajeurauquelseraonfrontéelealuldeetteexpression.
<3 pts>
(b) Caluler
f (x) + f ( − x)
.<2 pts>
() En s'aidantde la questionpréédente,trouverdon une façonde aluler
f ( − 10 10 )
(et faîte ealul)quineferapasintervenirletyped'erreurnumériquemisenévideneàlapremièrequestion.
<3 pts>
2. Soitlaroutinesuivante
ALGO
matpds[...][...] Tableau 2D de flottants
nrj flottant
• nrj= 0.0
• for i = 0 to 500000, i++ do . . .
. . .
for l = 0 to 5000, l++ do . . .
. . .
if COND1 then nrj+=matpds[l][i]
else nrj-=matpds[l][i]
• return nrj
dans laquellelesélémentsdutableau matpds[℄[℄sontdes ottants(simplepréision) inférieurs à
1.0
et laCOND1estremplie9foissur10.
Ce programme marhe, par ontre, on s'aperçoit que l'on a une perte de préision au niveau de la
valeurottantenrj renvoyéeparetteproédure.
On aimeraitrésoudre e problèmede perte depréisiontout en gardantle alul enoat pluttque
d'utiliser des doublequi augmenteraienttnotreoût alulatoirepar unfateur
2
. Identiez lepro-blème numérique qui est à l'originede ette perte de préisionet proposerune solution, 'est àdire
unnouveaupseudo-ode,permettantderenvoyerunevaleurnrjpluspréise(i.e.,pourlaquelleette
pertedepréisionnumériqueseraatténuée) enonservantdesvaleursottantes(float)simplepréi-
sion.Justiervotreréponse.
<10 pts>
3. Expliquer pourquoilealul numériquedeesexpressions
(a)
cos( x )
√ x 2 +1 − 1
(b)
− 1 + exp x
peuvent onduire à des problèmes d'erreurs numériques (identiez aussi pour quelle valeur de
x
).Expliquer pourquoi (i.e., identier et iter le problème numérique assoié) et proposer une formule
équivalentequi permettraitd'éviteresproblèmesnumériquesetqui permettraitd'augmenter lapré-
isiondesalulsdeesdeuxexpressions.
<6 pts>
ennumérotationottante(i.e.,lapluspetite valeurqui ajoutéeà
1.0
donneraunrésultatnumérique-mentdiérentde
1.0
).Ilexisteunedeuxièmedénitionpossibledel'Epsilonmahine(etquidonneraunrésultatlégèrement
diérentdeeluidonnéeparlapremièredénition)quionsisteàdireque
l'Epsilon mahine estla diereneentrela pluspetite valeur ottantesupérieurà
1.0
et1.0
.Trouverdonettevaleurorrespondantàettedeuxièmedénition.Utiliseràettenunereprésen-
tation ottante binaireave unformatdutype
± 0.xxxx . . .
(ave 24x
,i.e,24
bitspourlamantisse)dontunbitahépermettantderéerlebitdesigne(0 pourlesigne+)etunexposantsur
8
bitspermettantd'exprimer lesvaleursdel'exposantde-126à127.
<5 pts>
Réponse
1.(a)
On aura un problèmed'annulationde se (perte de préision) due à la soustration de deux nombres
approximésquasiégauxlorsque
x
vatendreversmoinsl'inniex → −∞
.<3 pts>
1.(b)
f (x) + f ( − x) = ln(x + p
x 2 + 1) + ln( − x + p
x 2 + 1) = ln(x 2 + 1 − x 2 ) = ln(1) = 0
<2 pts>
1.()
La question préédente nous montre que
f (x) = − f ( − x)
et don le alul def ( − 10 10 )
[qui pose leproblèmenumérique expliquéeen1.(a)℄pourraêtre remplaéeparlealul de
−f (10 10 )
qui nepose,ettefoisi,moinsdeproblèmed'erreurnumérique.
Lealulde
f (−10 10 )
surmaalulatriemedonnelerésultatnumériquementfauxf (−10 10 ) =
MaERRORet le alul (mathématiquement équivalent) de
− f (10 10 )
me donne le résultat très préis− f (10 10 ) =
− 23, 71899811
.<3 pts>
2
Le problème qui engendre ette perte de préision provient de l'erreur de déalage nééssaire lorsque
l'ordinateurdoitsommer(ousoustraire)deuxnombresottantsd'ordredegrandeurtrèsdiérente.Eneet,
verslande ette proédure (pour
i
grand),onadditionne (ouon soustrait)un nombreinférieurà1.0
àunesommepartiellequivraisemblablementseradel'ordredeplusieursmillions.Certainsmatpds[℄[℄seront
dontrèsapproximésetlapréisiondelasommerésultante(i.e.,nrj)enseraaetée.
<4 pts>
Unefaçonderenvoyerunevaleurnrj pluspréise(i.e.,pourlaquelleette pertedepréisionnumérique
seraatténuée)seraitdefaireunesommepartiellepourles
5000
élémentsdeladeuxièmeboule(Forl).Dee fait, lasomme nrj+=tmp àlan dela deuxième boule onernera desnombres d'ordrede grandeur
moinsgrandetlapréisiondenrjseraplusgrande.
<6 pts>
ALGO
matpds[...][...] Tableau 2D de flottants
nrj flottant
• nrj= 0.0
• for i = 0 to 500000, i++ do . . .
tmp=0.0
for l = 0 to 5000, l++ do . . .
if COND1 then tmp+=matpds[l][i]
else tmp-=matpds[l][i]
nrj+=tmp
• return nrj
Nota:Lorsquejeprogrammesurmonordinateurlaroutinenonorrigée,avedesmatpds[℄[℄=0.1etla
COND1,remplie9fois sur10;lavraievaleurde
nrj = 200 × 10 6.J'obtient2097152
enutilisantlaroutine
nonorrigéeenoattant,soituneerreursurlavaleurnrjde
98.9%
ensimplepréision(etde3.65 × 10 − 6 %
en double préision). Pour la routine orrigée, j'obtient une valeur de
nrj = 200.000016 × 10 6, soit une
erreursurlavaleurnrjde
8 × 10 − 6 %
ensimplepréisionsoituneerreuridentiquequeellefaîteendoublepréision.
3.
Dans les deux as, on aura un problème d'annulation de se due à la soustration de deux nombres
approximésquasiégauxlorsque
x
tendra verszéro.<1 pt>
Pour éviter e problème, on doit érire es relations de telle façon que plus auune soustration de
deux nombres inertains (i.e., impréis) quasi égaux apparaissent. On utilise le onjugué de l'expression
√ x 2 + 1 −1
quel'onmultiplieaunumérateuretaudénominateurdanslapremièreexpressionetonutilisera undéveloppementlimitéedeexp(x)
auvoisinagede0
pourladeuxième expression.(a) cos(x)
√ x 2 + 1 − 1 = cos(x) √
x 2 + 1 + 1
x 2 (x → 0)
<2.5 pts>
(b) − 1 + exp x = x 2 2! + x 3
3! + x 4
4! + . . . x n
n! (x → 0)
<2.5 pts>
4.
Lapluspetitevaleurottanteplusgrandeque
1.0
soustraiteà1.0
estdansettenumérotationottante permetdealulerl'Epsilonmahineselonette dénition0. 1000000000000000000001
| {z }
24
bits× 2 1 - 0. 10..
|{z}
24
bits× 2 1 = 2 − 23
<5 pts>
Nota:l'unedesdeuxdénitionsdel'EpsilonmahinevientdeGNUlibmanualetdeladoumentation
deMirosoftVisual C++,l'autreprovientdustandartISOC(f.Wikipedia).
Onseproposedetrouvernumériquementdans
R +unevaleurapprohéed'unedesrainesdelafontion,
f (x) = x − ln(1 + x) − 0.2
(4)1. Méthode du point xe
(a) Montrer qu'il existe une raine unique
r
pour ette Eq. (4) dans l'intervalleJ =]0, 1]
. En re-marquantque l'équation
f (x) = 0
est équivalente àg 1 (x) = x
aveg 1 (x) = ln(1 + x) + 0.2
,montrerquel'intervalle
J
estunintervallesurlequellaonvergeneversunesolutionuniqueparlaméthodedupointxeest assurée.
<5 pts>
(b) Utiliserlerésultatde laquestionpréédente pouralulerles
5
premièresestiméesr 1 , . . . , r 5 ,
enpartantde
r 0 = 0.5
.<4 pts>
() Trouverdeux fontions
g 2 (x)
etg 3 (x)
avelesquelles• g 2 (x) = x
etg 3 (x) = x
sontéquivalentesàl'équationf (x) = 0
.•
Pourlesquellesvousdemontrerezqu'ellesnesontpasontratantessurJ
(i.e.,pourlaquellelaonvergeneversunesolutionuniqueparlaméthodedupointxen'estpasassurée).
<6 pts>
2. Méthode de Newton
(a) Soit
Υ(x)
, lafontionintervenantdanslaméthode itérativede Newtonpourlarésolution dela rainer
del'équation (4)dansJ
. DonnerΥ(x)
ainsiquelarelationitérativer n +1 = Υ(r n )
.<3 pts>
(b) Établissezsilaméthodeitérativepréédenteseraonvergente(sionprend
x 0 dansJ
).
<4 pts>
() En déduire une valeur approhée de
r
après3
itérations (i.e., donnerr 1 , r 2 , r 3) (ave toujours
r 0 = 0.5
).<3 pts>
Réponse
1.(a)
L'étude desvariationsdelafontion
f
surJ =]0, 1]
montre quelafontionest ontinueetdéroissante surJ
(donmonotone)(f ′ (x) = 1+x − x < 0
surJ
.<1pt>Deplus, ona
f (0) = 0.2
etf (1) = ln(2) − 0.8 < 0
donf (0)f (1) < 0
et il existedonune rainer
uniquedansetintervalle.<1 pt>
Deplus
g ′ 1 (x) = 1
1 + x < 1 ∀ x ∈ J =]0, 1]
Lafontion
g 1 (x)
estdonontratantesurJ
etlaonvergeneestassurée.<3 pts>
1.(b)
En partantde
r 0 = 0.50
,ona,r n = g 1 (r n − 1 )
et,r 1 = 0.6054651081 r 2 = 0.6734135016 r 3 = 0.7148655532 r 4 = 0.7393346829 r 5 = 0.753502674
<4 pts>
Nota:Cela sembleonvergertrèslentementvers
r = 0.7722498296
.1.()
f (x) = 0
est équivalentàx = g 2 (x) = exp( − 0.2) exp(x) − 1
. SurJ
,g 2 (x)
n'est pas ontratante arg 2 ′ (x) = exp( − 0.2) exp(x)
etg 2 ′ (1) ≈ 2.2255 > 1
.<3 pts>
f (x) = 0
est équivalent àx = g 3 (x) = 2x − ln(1 + x) − 0.2
. SurJ
,g 3 (x)
n'est pas ontratante arg 3 ′ (x) = 2 − 1+x 1 et g ′ (1) = 1.5 > 1
.
<3 pts>
2.(a)
Lafontion
f (x)
estdérivablesurJ
et onag(x) = x − f (x)
f ′ (x) = x − x − ln(x + 1) − 0.2
1 − 1+x 1 = x − x − ln(x + 1) − 0.2
x 1+x
Onadonlaformuleitérativesuivante,
r n+1 = r n − r n − ln(r n + 1) − 0.2
r n
1+ r n
<3 pts>
2.(b)
Pourdémontrerlaonvergenedeettesuiteitérative,leplussimpleestdedémontrer(danseas)que
x 0 et laraine quel'on herhene sontpas séparéparunextrema delafontion f (x)
(i.e., unendroitou
f (x)
s'annule).
f ′ (x) = 1+ − x x et f ′′ (x) = (1+ − 1 x ) 2 < 0 ∀ x ∈ J
don f ′ est déroissante sur J
. De plus f ′ (0) = 0
et
f ′ (1) = − 0.5
.Donmisapartenx = 0
(quiest exludel'intervalleJ
),x 0 et laraine quel'onherhene
J
. De plusf ′ (0) = 0
etf ′ (1) = − 0.5
.Donmisapartenx = 0
(quiest exludel'intervalleJ
),x 0 et laraine quel'onherhene
sontpasséparéparunextremadelafontion
f (x)
etlaméthodedeNewtondevraitonverger.<4 pts>
2.()
En partantde
r 0 = 0.5
,ona,r n = Υ(r n − 1 )
et,r 1 = 0.6054651081 r 2 = 0.6615776673 r 3 = 0.6964865586 r 4 = 0.7195112841
<3 pts>
IV. Fatorisation
LU
(17 pts)1. Déomposerlamatrie
A
enproduitLU
(sanspermutation)parlaméthodedelafatorisationdirete.<8 pts>
A =
1 4 5
2 12 18 3 15 22
2. Calulerledéterminantde
A
.<3 pts>
3. Onaimeraitalulerl'inversedelamatrieU.Donnerl'inversedeettematrieenfaisantlesopérations
qui numériquementpermettraienttde lefairele plusrapidementpossible.Préiser dansle asd'une
matrie
U
dedimensionn
,laomplexité algorithmiquedeettetehnique.<6 pts>
Réponse
1.
Parfatorisationdirete, ontrouve,
A =
1 4 5
2 12 18 3 15 22
=
1 0 0 2 4 0 3 3 1
| {z }
L< 4 pts >
1 4 5 0 1 2 0 0 1
| {z }
U < 4 pts >
.
2.
det(A)
=
det(L)×
det(U)= 1 × (4 × 1)
= 4
<3 pts>
3.
Numériquement,larésolutionparsubstitutionarrièredestroissystèmes
U x = (1 0 0) t,U x = (0 1 0) t et
U x = (0 0 1) tpermettraitd'obtenirlestroisolonnesdelamatrieU − 1.
U x = (0 0 1) tpermettraitd'obtenirlestroisolonnesdelamatrieU − 1.
<2pts>
Ontrouvefailement,pourlapremièreolonne,
x = (1 0 0)
.Pourladeuxième olonne,x = ( − 4 1 0)
etenn pourlatroisièmeolonne,
x = (3 − 2 1)
,'estàdirelamatrieU − 1 suivante
U − 1 =
1 − 4 3 0 1 − 2
0 0 1
<2 pts>
Soituneomplexitéde
n × O( n 2 2 ) = O( n 2 3 )
.<2pts>
1. Trouver,enutilisantlaformuledeLagrange,uneinterpolationde
exp(0.5)
enutilisantlaonnaissanedespointssuivantsettrouverensuiteunebornesupérieuredel'erreurd'interpolationassoiéeàette
estimation.
x k 0 1 -2
y k = exp(x k )
1≈
2.72≈
0.135<10 pts>
2. Trouver,enutilisantlaformuledeNewton-Gregory,uneinterpolationde
exp(0.5)
enutilisantlaonnais-sanedespointssuivants
x k -1 0 1
y k = exp(x k ) ≈
0.37 1≈
2.72<7 pts>
Réponse
1.
En utilisantdonlepolynmedeolloationd'ordredeuxquipasseparestroispoints,ona
P 2 (x) = (x − 1)(x + 2)
− 2 + x(x + 2)
3 × 2.72 + 2(x − 1)
6 × 0.135
<4 pts>
Unevaleurinterpoléepour
exp(0.5)
estdonestiméeparexp(0.5) ≈ P 2 (x = 0.5) ≈ 0.625 + 1.13 − 0.0056 ≈ 1.7527
<2 pt>
Uneborne supérieuredel'erreurd'interpolationestdonnéepar
exp(0.5) − P 2 (0.5)
<
f n+1 (ξ)
(n + 1) ! (x − x 0 ) (x − x 1 ) (x − x 2 )
ξ ∈ [−2, 1]
<
exp(1)
3 ! (0.5 − 0) (0.5 − 1) (0.5 + 2)
< ≈ 0.283
<4 pts>
2.
En prenantdonestroispoints(équidistantsetordonnés), letableau desdiéreness'érit
x y ∆y ∆ 2 y
-1 0.37
0.63
0 2 1.09
1.71
1 2.72
Onobtientlepolynmesuivant
P 3 (s) = 0.37 + 0.63s + 1.09 s (s − 1) 2
<3 pts>
Pourl'interpolationontrouve,puisque
s = h 1 (x − x 0 ) = 1 1 (0.5 + 1) = 1.5 P (x = 0.5) = P (s = 1.5) ≈ 1.7275
<1 pt>