Sunteți pe pagina 1din 20

a.ch.

Octombrie 2010
1
CURS 1
INTRODUCERE N CALCULUL TIINIFIC
------------------------------------------------------------------------------------------------------------
1. Analiza numeric i calculul tiinific.
2. Reprezentarea numerelor n calculator (rapel).
3. Erori, msura erorii.
4. Condiionarea problemei. Stabilitatea metodei.
5. Exemple Probleme ru-condiionate i probleme intratabile.
- Polinomul Wilkinson; Matricea Wilkinson cu i fr balansare.
- SSH. Polinomul Rump.

1 Analiza numeric i calculul tiinific
Obiectul Analizei numerice este studiul metodelor numerice desvoltate pentru rezolvarea
efectiv a unei probleme tiinifice sau matematice nelegnd prin rezolvare efectiv, gsirea
unei soluii aproximative a problemei. Studiul (analiza) metodei const n:
- Construcia metodei
- Analiza convergenei i erorii metodei
- Analiza condiionrii problemei i stabilitii metodei
- Compararea eficienei metodelor care rezolv o aceeai clas de probleme
Astzi, utilizarea unei metode numerice se face exclusiv prin programarea ei i rulare pe
calculator.
Utilizarea calculatorului a generat noi probleme de studiu (care nu fceau nainte obiectul
Analizei numerice), i anume:
- Studiul erorilor metodei, provenite din reprezentarea numerelor n calculator printr-un
numr finit de cifre.
- Studiul algoritmilor pentru programarea metodei, i a performanei acestora.
Rezolvarea unei probleme matematice (adic, formulat prin ecuaii), prin utilizarea unei metode
numerice pe calculator constituie calculul tiinific. Analiza numeric mpreun cu studiul

a.ch. Octombrie 2010
2
algoritmilor metodelor numerice, constituie matematica calculului tiinific (Kincaid & Cheney,
1996).
Utilizarea calculatorului i a metodelor numerice, n rezolvarea unei probleme matematice sau
pus de o tiin aplicat, a dat natere unei noi discipline numit Computational Science.
Aceasta este un domeniu interdisciplinar, cuprinznd cunotine din:
(1) o tiin aplicat (fizic, inginerie, biologie, economie, tiine sociale, etc.);
(2) matematic (inclusiv metode numerice);
(3) tiina calculatoarelor (soft i hard).
Specialistul n Computational Science ndeplinete urmtoarele sarcini:
- Identific fenomenul i definete problema pus de tiina aplicat;
- Construiete un model matematic;
- Alege o metod numeric i proiecteaz algoritmul metodei;
- Programeaz algoritmul i obine programul executabil.
- Face simulri numerice, n scopul de a valida modelul prin rezultatele obinute:
- Uneori, se procedeaz la rafinarea modelului, pentru a-l adapta fenomenului real.
- Ades, din analiza fcut, se genereaz noi teorii i proceduri numerice privind
modelul i algoritmul.

Principiul calculului cu numere reprezentate n virgul flotant (cu un numr finit de cifre
binare):
- Rezultatul oricrei operaii n virgul flotant este imprecis, cu o anumit toleran.
- Eroarea propagat ntr-un ir de astfel de operaii se acumuleaz inevitabil.

Se poate spune:
Un rezultat precis, este unul tolerabil imprecis.

2 Reprezentarea numerelor n calculator (rapel)
2.1 ntregi
INTEGER(n), n = 1, 2, 4, 8, se reprezint pe 'n' octei contigui. Intregii sunt stocai n
reprezentarea complementului lui 2, nume:

a.ch. Octombrie 2010
3
- O valoare pozitiv se reprezint ca atare, n binar.
- O valoare negativ se reprezint astfel: se inverseaz toi biii valorii pozitive i apoi
se adun 1. Pentru a regsi o valoare negativ: se inverseaz toi biii i se adun 1.

Reprezentarea numerelor ntregi
Tipul Numr
de octei
Plaja de reprezentare
Baza 2 Zecimal
INTEGER(1) 1 -2
7
2
7
-1 -128 127
INTEGER(2) 2 -2
15
2
15
1 -32,768 32,767
INTEGER(4) 4 -2
31
2
31
1
9
10 147 . 2 ~
-2,147,483,648 2,147,483,647
INTEGER(8) 8 -2
63
2
63
1
18
10 223 . 9 ~
-9,223,372,036,854,775,808
9,223,372,036,854,775,807

2.2 Reali
Reprezentarea numerelor reale n calculator se zice reprezentare n virgul flotant (Floating-
Point; abreviat FP). Numerele n virgul flotant aproximeaz numerele reale printr-un
numr finit de cifre binare (bii).
Exemplu pentru baza 10:
Fie numrul de reprezentat:
1308 . 240 = x
Acesta se poate scrie n una din formele:
3
10 2401308 . 0 = x , (a)
n care: 2401308 . 0 este fracia, 10 = b este baza, iar 3 = e este exponentul;
2
10 401308 . 2 = x (b)
n care: 401308 . 2 este semnificandul, iar 2 = E este exponentul.

a.ch. Octombrie 2010
4
Forma (a) este reprezentarea n modelul de reprezentare (sau, notaia tiinific); forma (b)
este analoag cu reprezentarea n calculator (unde baza este 2 = b v. 2.2.2). Exponenii
reprezentrilor sunt legai prin 1 + = E e .
2.2.1 Modelul de reprezentare (notaia tiinific)
Reprezentarea unui numr real x este una din urmtoarele expresii:
0 = x
e
P
k
k
k
a x | | o =

=

1

Pentru 0 = x , expresia de mai sus se scrie n reprezentare poziional:
e
P
a a a x | o =
2 1
.
Parametrii reprezentrii au semnificaiile:

<
> +
= =
0 1
0 1
) (
x
x
x sign o
| = baza (ntreg > 1);
P
a a a , , ,
2 1
= cifre n baza |.
P
a a a
2 1
. = mantisa (sau: fracia) conine P cifre. Este un numr pozitiv, astfel c
1 .
2 1
1
< s

P
a a a |
P = precizia reprezentrii = numrul de cifre n mantis.
e = exponentul reprezentrii:
max min
e e e s s .
2.2.2 Reprezentarea n calculator binar:
( )
E
P
s
b b b b x 2 . 1
1 2 1 0
=


unde:
s = bitul de semn =

<
>
0 pentru 1
0 pentru 0
x
x
; Pentru x = 0, v. 3.5.
N
b = cifre binare: 0 sau 1
1 1 0

P
b b b = semnificandul, care reprezint partea non-exponent a numrului. Este un numr
nenegativ care conine P cifre binare.

a.ch. Octombrie 2010
5
1 1 P
b b se zice fracia; conine 1 P cifre binare. Notnd semnificandul cu sig i fracia cu f,
avem f b sig .
0
= , unde, 1
0
= b sau 0.
P = precizia reprezentrii = numrul de cifre binare n semnificand.
0
b = primul bit al semnificandului (leading bit). Reprezentarea standard este normalizat,
adic ntotdeauna 1
0
= b , i acesta nu se mai stocheaz. Punctul binar se presupune la dreapta lui
0
b . In consecin, precizia P este asigurat cu un numr de 1 P bii, i avem:
1 s semnificand < 2.
E = exponentul reprezentrii:
max min
E E E s s .
Observaie
Concret, reprezentarea normalizat este
( )
E s
f x 2 . 1 1 = .
Pentru numere denormalizate i valori speciale v. 2.3.2 (aici 0 > sig ).
Exemplu
Simpl precizie (Format simplu): P = 24 bii asigurat cu 23 bii.
Dubl precizie (Format dublu): P = 53 bii asigurat cu 52 bii
Observaie
n modelul tiinific 2.2.1, numrul este reprezentat astfel:
( )
e
P
s
b b b b x 2 . 1
1 2 1 0
=

; 1 + = E e
2.3 Structura formatelor
Tipul REAL(4) ocup 4 octei contigui i este stocat n formatul simplu (IEEE S_floating ). Tipul
REAL(8) ocup 8 octei contigui i este stocat n formatul dublu (IEEE T_floating ). Figurile
urmtoare prezint structura formatelor: Cifrele indic numerotarea biilor; S desemneaz bitul
de semn. Simbolul :A reprezint adresa octetului care conine bitul 0 (adresa de start a datei
reprezentate). Formatul este numit nativ i convenia de stocare Little endian.
CVF utilizeaz convenia "Little endian". Convenia "Big endian" este utilizat, de exemplu, de
calculatoarele IBM/370.

a.ch. Octombrie 2010
6
V. pentru detalii, CVF Programmer's Guide (2001); Intel Fortran Compiler 11.1 User and
Reference Guide (2010)
Format simplu:




Format dublu:




2.3.1 Formate IEEE
Urmtorul tabel prezint parametrii reprezentrii pentru formatele IEEE n virgul flotant,
suportate de CVF i IVF. Formatele sunt conforme cu standardul IEEE Std 754-1985.
(Acesta a fost revizuit prin IEEE Std 754-2008).

Formate IEEE
PARAMETRU

FORMAT
Simplu Dublu Dublu extins
Format, lungime n bii 32 64 80
Bitul de semn, lungime n bii 1 1 1
Semnificand, lungime cmp n bii 23 52 64
Precizie P, n bii 24 53 64
Exponent, lungime cmp n bii 8 11 15
E
max
+ 127 + 1023 + 16383
E
min
- 126 - 1022 - 16382
Deplasare exponent (bias) + 127 + 1023 + 16383
Precizie, n cifre zecimale 6 - 9 15 - 17 18 - 2 1
Plaja de reprezentare (aproximativ) 10
38
10
308
10
4932


:A
31 30 23 22 0
S Exponent Semnificand
1 8 23 ( bii)
:A
63 62 52 51 0
S Exponent Semnificand
1 11 52 ( bii)

a.ch. Octombrie 2010
7
Not
- REAL(4) se reprezint n formatul simplu. REAL(8) n formatul dublu. Reprezentarea
este normalizat: primul bit al semnificandului se presupune 1 i acesta nu se mai
stocheaz. n fapt, n cmpul semnificandului se stocheaz fracia.
- Formatul dublu-extins nu trebuie normalizat, el utilizeaz 64 bii pentru precizie. Acest
format este utilizat intern, de ctre co-procesorul matematic. Bitul
0
b este stocat explicit
(n locaia 63 a cmpului semnificand).
- La fiecare exponent se adaug o "deplasare" astfel nct s apar numai exponeni stocai
pozitivi. Exponentul stocat (n cmpul exponent) este
E
stocat
= E + deplasare > 0,
iar exponentul reprezentrii este
E = E
stocat
deplasare.
Primul bit al semnificandului se presupune egal cu 1 att timp ct exponentul stocat nu
este zero. Dac E
stocat
= 0, atunci valoarea reprezentat este o valoare special (un numr
denormalizat sau 0) v. 2.3.2.
- n modelul de reprezentare analitic (2.2.1) avem, conform 1 + = E e :
Format simplu: 128
max
= e , 125
min
= e
Format dublu: 1024
max
= e , 1021
min
= e
Exemplu
Numrul 1.0, n format simplu, se reprezint prin urmtorul ir de bii (cmpul exponent este
umbrit):
|0|01111111|00000000000000000000000|
Exponentul stocat este: E
stocat
= 2
7
-1 = 127; exponentul real este: E = 127-127 = 0; astfel,
reprezentarea 2.2.2 este:
0
2
2 ) 0 . 1 ( + .

Not: REAL(16)
Standardul IEEE 754-1985 nu specific un format pentru pentru tipul REAL(16). Acest tip este
implementat soft de unele compilatoare i suportat hard de unele procesoare recente. Se
reprezint ntr-un format pe 16 octei (format cvadruplu INTEL; dublu extins SPARC), numit
IEEE X_floating.

a.ch. Octombrie 2010
8

Formatul cvadruplu (Intel Fortran 11):




Parametrii formatului sunt:
- Lungime format: 128 bii
- Cmp semnificand = 112 bii.
- Cmp exponent: 15 bii
- Precizie P = 113 bii
- Precizie n cifre zecimale: 33 36
- Plaja de reprezentare (numere normalizate):
4932 4932
10 1897 . 1 10 362 . 3

.

2.3.2 Formatul IEEE Valori speciale
Exist patru cazuri de combinare exponent semnificand, care conduc la valorile speciale 1- 4
prezentate mai jos. Ele se adaug numerelor normalizate poziia 0 din tabel. f reprezint
fracia.

Formatul IEEE Valori n virgul flotant
Nr.
crt.
Denumire
Cantitate
reprezentat
Exponent
E
Semnificand
sig

0 Numr normalizat 1.f 2
E
E
min
s E s E
max
sig

1 Zero cu semn 0 E = E
min
1
*
sig = 0

2 Numr denormalizat 0.f 2
Emin
E = E
min
1 sig = 0 (f = 0)

3 Infinit cu semn E = E
max
+ 1 sig = 0

4 Not a Number NaN E = E
max
+ 1 sig = 0

*
Exponentul stocat este 0. Prin convenie, reprezentarea se face cu E = 0
:A
127 126 112 111 0
S Exponent Semnificand
1 15 112 ( bii)

a.ch. Octombrie 2010
9
2.3.3 Valori reprezentabile
a) Numere denormalizate:

Tip dat Baza 2 Zecimal
REAL(4)
Negative:
Zero:
Pozitive:


-2
-127
1.11... -2
-126
1.00...
0.
2
-126
1.00... 2
127
1.11...

3.40310
38
1.17510
-38
0.
1.17510
-38
3.40310
38

REAL(8)
Negative:
Zero:
Pozitive:


-2
1023
1.11... -2
-1022
1.00...
0.
2
-1022
1.00... 2
1023
1.11...

1.79810
308
2.25010
-308
0.
2.25010
-308
1.79810
308


Not: Tipul REAL(16) (Intel Fortran 11)
Plaja de reprezentare (zecimal):
-1.19010
+4962
... -3.36210
-4962
; 0.0; 3.36210
-4962
... 1.19010
+4962


a) Numere denormalizate:
Sunt cuprinse ntre valorile de mai jos.
REAL(4): -2
-149
1.00... -2
-126
1.00... ( -1.1810
-38
-1.4010
-45
)
2
-149
1.00... 2
-126
1.00... ( 1.4010
-45
1.1810
-38
)
REAL(8): -2
-1022
1.00... -2
-1074
1.00... ( -2.2310
-308
4.9410
-324
)
2
-1074
1.00... 2
-1022
1.00... ( 4.9410
-324
2.2310
-308
)
Valorile reprezentabile pentru tipul REAL(4) sunt indicate n figura de mai jos. Pentru tipul
REAL(8) figura este analog, cu valorile de mai sus.



Valori reprezentabile REAL(4)
x
-1.4010
-45
1.4010
-45

-3.410
38
-1.1810
-38
0. 1.1810
-38
3.410
38


a.ch. Octombrie 2010
10
Legenda:

3 Erori, msura erorii
Eroarea de rotunjire este diferena dintre un numr real (care nu se reprezint exact FP) i
numrul FP cel mai apropiat care l reprezint.
Definiia 1
Eroarea = Valoarea exact Valoarea aproximativ
Notm: x = valoarea exact; ) (x f = reprezentarea n virgul flotant. Eroarea de rotunjire
este:
Err( ) (x f ) = x ) (x f
Definiia 2
Eroarea relativ =
xacta Valoarea e
Eroarea

Eroarea relativ la rotunjire este:
x
x fl x
x fl Rel
) (
)) ( (

=
Msurile erorii de rotunjire i erorii relative de rotunjire, se descriu prin mrimile prezentate n
continuare.

3.1 ULP (Unit in the Last Place)
Definiia 3
Numere normalizate
Numere denormalizate
Numere ne-reprezentabile REAL(4)

a.ch. Octombrie 2010
11
ULP(x) este numrul cu 1 n bitul ultim ) (
1 P
b , 0 (zero) n restul biilor, i cu acelai
exponent ca i x
Fie 0 > x reprezentat n calculator (modelul 3.2),
E
P
b b b x 2 .
1 1 0
=

. Avem:
E P E
P
x ULP 2 2 2 1 0 0 0 . 0 ) (
1
1 2 1
= =
+

,
unde E este exponentul reprezentrii n calculator.
n modelul 3.1 (notaia tiinific),
e
P
b b b x 2 . 0
1 1 0
=

, i avem
e P e
P
x ULP 2 2 2 1 0 0 0 . 0 ) (
2 1
= =

,
unde e este exponentul lui x n modelul 3.1. Rezultatele sunt identice, ntruct 1 + = E e .

Propoziia 1
Cel mai mic numr FP care adunat la x produce, prin rotunjire, un numr FP mai mare dect
x este
E P
x ULP 2 2 ) (
1
=
+
,
unde E este exponentul reprezentrii lui x (n calculator, modelul 2.2.2)
ntr-adevr, n calculator:
x b b b x ULP x
E
P
> + = +

2 ) 1 ( ... . ) (
1 1 0

Sau, n modelul 3.1, avem
x b b b x ULP x
e
P
> + = +

2 ) 1 ( ... . ) (
1 1 0
.
Observaie
ULP este util in algoritmii numerici care includ o iteraie i un test de oprire a iteraiei de
tipul
TOL x x
n n
s
+
| |
1
.
Valoarea toleranei TOL trebuie aleas mai mare sau egal cu ULP(x), pentru domeniul
valorilor lui x.

a.ch. Octombrie 2010
12
Exemplu - 1
Fie x = 1.0.
n calculator modelul 2.2.2, n formatul simplu, avem reprezentrile:
1.0: 1.000 0000 0000 0000 0000 00002
0
= (1.0)
2
2
0
ULP(1.0): 0.000 0000 0000 0000 0000 00012
0
= (1.0)
2
2
-23
.
Analitic, exponentul reprezentrii este E = 0, i din Propoziia 1 rezult
1 0 1
2 2 2 ) 0 . 1 (
+ +
= =
P P
ULP .
Expresia este valabil i pentru formatul dublu, unde reprezentarea e analoag cu cea de mai sus,
tot cu E = 0.
De exemplu, n formatul simplu, cu P = 24, rezult
23
2 ) 0 . 1 (

= ULP .
Analog, n modelul 3.1:
1
2
2 ) 1 . 0 ( 0 . 1 = , i avem
1 1
2 2 2 ) 0 . 1 (
+
= =
P P
ULP

Propoziia 2
Eroarea de rotunjire satisface:
( ) ) ( ) (
2
1
x ULP x f Err s
Propoziia 3
( )
P P
x f Rel

s s 2 ) ( 2
2
1

Pentru demonstraii v. Chisli A., Numerical Analysis.
3.2 c- main i EPS
Definiia 4
Limita superioar a erorii relative se numete c-main =
P
2
Astfel, avem:
- Format simplu: P = 24; c-main = 2
-24
; Zecimal: 5.96 10
-8

- Format dublu, P = 53; c-main = 2
-53
; Zecimal: 1.11 10
-16

Definiia 5

a.ch. Octombrie 2010
13
EPS este cel mai mic numr n virgul flotant, care adunat la 1.0 d un rezultat care nu se
rotunjete la 1.0:
x = 1.0 + EPS x > 1.0
Propoziia 3 EPS = 2c-main
Aceasta rezult din Propoziia 1 cu x = 1.0, pentru care E = 0 (v. Exemplu 1):
EPS = ) 0 . 1 ( ULP =
1
2
+ P
= 2c-main.
Exemplu 2:
Format simplu: EPS = 2
-23
. Zecimal: 1.192 10
-7
.
Format dublu : EPS = 2
-52
. Zecimal: 2.220 10
-16
.
Observaii
- Funcia intrinsec EPSILON(x), returneaz mrimea EPS pentru un real de tipul
argumentului x. (REAL(4) sau REAL(8).)
- EPS este cerut ca dat de intrare n unii algoritmi numerici. (Exemplu: integrarea
sistemelor de ecuaii difereniale).
Not
Uneori, eroarea se msoar n numr de ulp-uri, msura erorii fiind definit prin:
) (
| |
A
A T
x ulp
x x

V. Demmel & Hida (2002)

4 Condiionarea problemei. Stabilitatea metodei.
Condiionarea problemei este sensibilitea soluiei (exacte) la mici schimbri n datele problemei.
Dac soluia este sensibil la mici schimbri n date, problema se zice ru-condiionat. In caz
contrar, problema se zice bine-condiionat.

a.ch. Octombrie 2010
14
Stabilitatea metodei: In anumite condiii, soluia calculat iterativ crete nemrginit odat cu
creterea numrului pailor procesului. In acest caz, metoda numeric se zice instabil. V.
exemplele urmtoare.

Concluzii:
Trebuie fcut distincie ntre condiionarea problemei i stabilitatea metodei de calcul.
- O problem bine-condiionat poate fi rezolvat precis prin orice metod stabil pentru
problema respectiv.
- O problem ru-condiionat , care are soluie, poate fi rezolvat precis numai utiliznd
precizie multipl.
- O metod instabil utilizat pentru o problem bine condiionat, poate da n primii pai
rezultate bune, dar va da inevitabil rezultate rele dup un anumit numr de pai pe msur ce
erorile propagate vor acoperi soluia real.

5 Exemple Probleme ru-condiionate i probleme intratabile.
5.1 Probleme ru-condiionate
5.1.1 Polinomul lui Wilkinson
Fie
) 20 ( ... ) 2 )( 1 ( ) ( = z z z z f
cu rdcinile 20 , , 2 , 1 = z .
Considerm polinomul perturbat:
19 23
2 ) ( ) (
~
z z f z f =

,
unde avem:
7 23
10 19209 . 1 2

- = . Acesta are 5 perechi de rdcini complexe; exemplu:
i z 940 . 1 502 . 19 = . (Polinomul mai are 10 rdcini reale in intervalul (1,10)).
Deci, modificarea coeficientului lui
19
z cu aproximativ
7
10

(concret: din -210 n -


210.000000119), conduce nu numai la modificarea valorilor, dar chiar la modificarea tabloului
rdcinilor.
Note:
- Polinomul de mai sus se numete polinomul lui Wilkinson, dup numele celui care l-a

a.ch. Octombrie 2010
15
introdus n 1984 (James H. Wilkinson, The perfidious polynomial. In: G. H. Golub, editor,
Studies in Numerical Analysis, volume 24 of Studies in Mathematics, pages 1-28. Mathematical
Association of America, Washington, D.C., 1984).
Polinomul a generat, i genereaz i n prezent, studii privind algoritmi pentru calculul precis al
rdcinilor unui polinom.

- Pe de alt parte, chiar polinomul neperturbat este intratabil cu un soft n care precizia maxim
este dubla precizie: termenul liber este 20! = 2432902008176640000, i acesta are 19 cifre, n
timp ce precizia maxim este de 16 cifre semnificative. De exemplu, cu coeficienii polinomului
calculai n dubl precizie, programul Pol_Direct n dubl precizie, cu tolerana 1E-14 i numrul
maxim de iteraii 100, d pseudo-rdcinile i valorile polinomului:
19.9999903868239 -786592049152.000
19.0000865019199 2172793747456.00

Acest exemplu arat c, problema gsirii rdcinilor unui polinom poate fi ades, o problem ru-
condiionat.
5.1.2 Matricea Wilkinson
Considerm matricea Wilkinson de ordinul 20 (Wilkinson (1963), Westlake (1968)):
(
(
(
(
(
(
(
(

=
20
20 19
20 3
20 2
20 1
c

A
Analitic, matricea n n , este definit prin 0 ) , ( = j i a , cu excepia elementelor:
; ) , ( i i i a = n i , 1 =
n i i a = + ) 1 , ( ; 1 , 1 = n i ;
c = ) 1 , (n a .
Exemplul Wilkinson ia 20 = n .

a.ch. Octombrie 2010
16
Dac perturbaia 0 = c , matricea este superior triunghiular, i valorile proprii sunt i i = ) ( .
Pentru 10 1 = E c , cu metoda QR fr rafinare (cu EPS = 1E-6), se obin urmtoarele rezultate:
Fr balansare: Valorile proprii rezult toate reale. Ele reprezint perturbaii ale valorilor i,
1 , 20 = i , anume (ordonate descresctor):
19.99999998462896, 19.00001298980951, 17.99999341364806, ...,
3.000002187998112, 1.999999854534825, 1.000000000000000
Cu balansare: Valorile proprii calculate conin 14 valori complexe, i anume (ordonate dup
i descresctor):
20 20.00424815126970
19 18.89075561522547
18 18.42511929989719
17 17.03466897322695 1.087736309816453
16 17.03466897322695 -1.087736309816453
15 15.10602239289448 1.948529250030004
14 15.10602239289448 -1.948529250030004
13 12.88192664561770 2.529181675892914
12 12.88192664561770 -2.529181675892914
11 10.49999998763635 2.733397362516592
10 10.49999998763635 -2.733397362516592
9 8.118073427255256 2.529181726294424
8 8.118073427255256 -2.529181726294424
7 5.893977535006919 1.948529282139898
6 5.893977535006919 -1.948529282139898
5 3.965330675018651 1.087735665091806
4 3.965330675018651 -1.087735665091806
3 2.574881415008950
2 2.109241835064037
1 0.9957544102238627

Se observ necesitatea balansrii n acest caz.
Explicaia rezultatelor foarte diferite se poate da analiznd condiionarea rdcinilor polinomului
caracteristic al matricii A. Acesta este
c
19
20 ) 20 ( ) 2 )( 1 ( ) ( = p

a.ch. Octombrie 2010
17
Notm rdcinile cu ) (c
i
, iar i
i i
= = ) 0 ( . Numrul de condiie al rdcinii
i
este
) ( / ) (
i i i
p q K ' = , unde
19
20 ) ( = z q . Avem:
)! 20 ( )! 1 (
20
19
i i
K
i

=
Numerele de condiie maxim i minim se ating pentru 11 , 10 = i i 20 , 1 = i , respectiv. Anume:
98 . 3 10 ) ! 9 ! 10 /( 20
12 19
11 10
~ = = K K ; 31 . 4 10 ! 19 / 20
7 19
20 1
~ = = K K .
Numerele de condiie foarte mari arat senzitivitatea mare a rdcinilor la mici perturbaii n
coeficieni.
n acest caz, valorile proprii ale matricii sunt ru-condiionate. V. 6.

5.2 Sumarea
Sumarea este una din cele mai importante operaii n calculul tiiific.
Sumarea intervine n aproape orice calculaie. Exemple:
- Suma unor numere:

=
=
n
i
i
x S
1

- Produsul scalar:

=
=
n
i
i i
y x P
1

- Produsul unei matrici cu un vector (i produsul a dou matrici): Ax b = ,

=
=
n
j
j ij i
x a b
1

- Calculul valorii unui polinom:

=
=
n
i
i
i
x a x p
0
) (
- Calculul funciilor intrinseci: acestea se calculeaz prin serii trunchiate, adic prin
polinoame.
- Etc.
Datorit reprezentrii numerelor cu un numr finit de cifre n mantis, suma n calculator poate
s nu mai aib proprietile din algebr, anume suma nu mai este comutativ sau asociativ.
Pentru a releva problemele pe care le pune sumarea prezentm urmtoarele exemple.


a.ch. Octombrie 2010
18
5.2.1 nlimea suprafeei mrii (SSH - Sea Surface Height)
n 1999, n cadrul unui program de cercetare, s-au fcut msurtori (din satelit) ale nlimii
suprafeei oceanului, n scopul calculrii nlimii medii i utilizrii acesteia ntr-un model al
circulaiei oceanului (He & Ding(2001)).
Reeaua cuprindea 12064 = 7680 de puncte (120 longitudini i 64 de latitudini). Datele sunt
numere de ordinul de mrime
15 12
10 10 i de semne diferite. Datele corespunznd observaiilor
dintr-o zi s-au stocat ntr-un tablou ssh(120,64), de date cu precizia de 64 bii.
Ordonarea sumei dup diferite criterii produce rezultatele de mai jos (calculate cu precizia de 64
bii):
Ordonarea sumei dup Valoarea
Longitude cresctor 34.4147682189941410
Longitude descresctor 32.302734375
Latitude cresctor 0.67326545715332031
Latitude descresctor 0.734375

Valoarea corect 0.35798583924770355

Valoarea corect s-a obinut cu compilatorul Intel Fortran 11, cu precizia data de tipul real(16)
(113 biti).
Se poate utiliza i un pachet soft de precizie multipl (MPFUN, Bailey v. mai jos).
5.2.2 Polinomul lui Rump
Se consider polinomul
) 2 /( 5 . 5 ) 2 121 11 ( 75 . 333 ) , (
8 4 6 2 2 2 6
y x y y y y x x y y x f + + + =
i evaluarea lui pentru x = 77617 and y = 33096.
Rezultatul calculului, cu 4 nivele de precizie (oferite de compilatorul IVF 11), sunt date mai jos.
Simpl precizie (24 bii): -6.338253E+29
Dubl precizie (53 bii): -1.180591620717411E+21
Precizie extins (64 bii): -6.3382530011411470075E+29
Precizie cvadrupl (113 bii): 1.17260394005318

Valoarea corect: -0.82739 60599 46821 36814 11650 95479 81629 ...
(obinut cu precizie de 128 bii 38-39 cifre zecimele de precizie).


a.ch. Octombrie 2010
19
Pentru rezulate similare, obinute cu compilatorul FORTE Developer 6 (Fortran 95, Sun) v. Loh
& Walster (2002).
Explicaie:
Cei patru termeni ai polinomului au valorile (n dubl precizie):
t1: 4.386057508463932E+29
t2: -7.917111779274714E+36
t3: 7.917111340668962E+36
t4: 1.17260394005318
Astfel, nu se produce depire de format nici pentru simpla precizie. Dar termenii doi i trei sunt
egali cu aproximativ
123
2 , i astfel, pentru reprezentarea cu toate cifrele pentru evitarea pierderii
de semnificaie, este necesar o precizie de cel puin 123 bii. Ori, chiar precizia cvadrupl
(real(16)) nu ofer dect 113 bii. Astfel, pentru evaluarea polinomului n forma dat, trebuie
apelat la un pachet multi-precizie cum este, de exemplu, MPFUN.
(v. High-Precision Software Directory, http://crd.lbl.gov/~dhbailey/mpdist/)

Rezultate obinute cu MPFUN cu diferite nivele de precizie:
* Multiple Precision ( 21 decimal digits; 5 words):
10 ^ 0 x 1.172603940053178631858834904523310930,

* Multiple Precision ( 28 decimal digits; 6 words):
10 ^ -1 x -8.273960599468213681411650954798162916293306,

* Multiple Precision ( 36 decimal digits; 7 words):
10 ^ -1 x -8.273960599468213681411650954798162919990331124134,

* Multiple Precision ( 43 decimal digits; 8 words):
10 ^ -1 x -8.273960599468213681411650954798162919990331157843838320,

* Multiple Precision ( 50 decimal digits; 9 words):
10 ^ -1 x -8.27396059946821368141165095479816291999033115784384819917,

* Multiple Precision ( 57 decimal digits; 10 words):

a.ch. Octombrie 2010
20
10 ^ -1 x -8.27396059946821368141165095479816291999033115784384819917,

Explicaia analitic este urmtoarea (Loh & Walster (2002)): x i y dai, satisfac relaia
1 5 . 5
2 2
+ = y x . Cu aceasta, termenii de ordin superior lui 1 n x i y se reduc, i expresia
polinomului devine
2
2
) , (
1
=
y
x
y x f .
Rezultat:
* x/(2*y)-2 = -0.82739605994682131 (Double Precision)

Concluzie privind numerele utilizate n calculaie, i formatul necesar pentru
reprezentarea acestora
Criteriul singur al mrimii numerelor care intervin ntr-o calculaie, adic faptul c acestea nu
depesc valorile maxime (sau minime) reprezentabile n formatul utilizat, nu este suficient
pentru a asigura un rezultat precis.
Astfel, pe lng ncadrarea n plaja de reprezentare (2.3.3), formatul trebuie s asigure c
numerele pot fi reprezentate cu toate cifrele semnificative (sau, cu un numr de cifre
semnificative, acceptat ca suficient pentru precizia rezultatului).
Rezult urmtoarele:
- Formatul simplu:
22 . 7 24
10 2 ~ ; acesta asigur cca. 6-9 cifre zecimale de precizie. n
consecin, pot fi reprezentate precis numere
38
10 4 . 3 | | s x , dar vor fi reprezentate
corect numai primele 6-9 cifre zecimale semnificative (depinznd de mrimea
semnificandului).
Exemplu-1: fie
10
10 2345678 . 1 = z x , unde cifra 9 , , 4 , 3 = z . Reprezentarea n format
este aceeai ca a numrului
10
10 2345679 . 1 = x , indiferent de cifra z.
Exemplu-2:
37
10 999999 . 9 = z x , 9 , , 3 , 2 = z . Numai primele 7 cifre sunt reprezentate
corect.
- Formatul dublu:
95 . 15 53
10 2 ~ ; 15-17 cifre zecimale semnificative.
- Formatul dublu-extins:
27 . 19 64
10 2 ~ ; 18-21 cifre zecimale semnificative.
- Formatul cvadruplu:
02 . 34 113
10 2 ~ ; 33-36 cifre zecimale semnificative

S-ar putea să vă placă și