Documente Academic
Documente Profesional
Documente Cultură
având drept necunoscute elementele din coloana j a inversei, j = 1, n. Folosind metoda Gauss-
Jordan de rezolvare a sistemului compatibil determinat, (2.2), vom obţine că matricea prelungită
[A|ej ] este echivalentă cu matricea [I|A−1 −1
:,j ] unde prin A:,j am notat coloana j din matricea
inversă, adică soluţia X:,j . Dar ı̂n loc să rezolvăm n ecuaţii AX:,j = ej , j = 1, n, ce au aceeaşi
matrice A, putem aplica transformări elementare pe linie (Gauss-Jordan) matricii extinse
Ae = [A|e1 |e2 | · · · |en ] = [A|In ]
şi vom obţine la finalul procedurii matricea echivalentă:
[In |A−1 −1 −1 −1
:,1 |A:,2 | · · · |A:,n ] = [In |A ]
1
2 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007
În realitate ı̂nsă nu ştim ı̂n prealabil dacă o matrice pătratică (de dimensiuni mari) este sau
nu singulară. Exploatând modul de mai sus de calcul al inversei, se procedează astfel:
• se bordează matricea pătratică A ∈ Kn×n cu matricea unitate In şi obţinem matricea
extinsă Ae = [A|In ];
• se reduce matricea extinsă la forma scară redusă (Gauss-Jordan);
¥ Dacă prima jumătate a formei scară redusă (adică submatricea constituită din liniile
1, n şi coloanele 1, n) este matricea unitate, adica forma scară redusă a extinsei este:
¯
1 0 . . . 0 ¯¯ a′11 a′12 . . . a′1n
0 1 . . . 0 ¯ a′ a′ . . . a′
¯ 21 22 2n
.. .. .. ¯ .. .. ..
. . ... . ¯ . . . . . .
¯ ′
0 0 . . . 1 ¯ an1 an2 . . . ann
′ ′
Deoarece forma scară redusă a matricii A este matricea unitate, ea are rangul 3, deci este
inversabilă şi inversa ei este:
2 −1 0
A−1 = −1 2 −1
0 −1 1
Observaţia 2.1.1 Cele trei transformări elementare pe linie ce se aplică ı̂n reducerea unei
matrici la forma scară se pot exprima matricial.
Şi anume:
¥ interschimbarea a două linii Lj ↔ Lk a unei matrici A ∈ Km×n este echivalentă cu
ı̂nmulţirea matricii A la stânga cu matricea permutare Pπ ∈ Km×K , unde π este permutarea:
1 2 ... i ... j ... m
π = ↓ ↓ ... ↓ ... ↓ ... ↓
1 2 ... j ... i ... m
j k
.. ..
1 . .
.. ..
0
..
.
. .
.. ..
1 . .
j ... ... ... 0 ... ... ... 1
.. ..
. 1 .
.. .. ..
. . .
.. .
. 1 ..
k ... ... ... 1 ... ... ... 0
1
0 ..
.
1
..
1 .
.. ..
0
. .
1 0
k
. . . . . . 0 a 0
0 1
0 ..
. 0
0 1
.. ..
1 . .
.. . . ..
0
. .
.
j ... ... 1 ... 0
.. . . ..
. .
.
k ... ... a ... 1
..
.
0 1
Numim ı̂n continuare cele trei tipuri de matrici, matrici elementare de tip 1, 2, 3, şi le
notăm generic cu E. Remarcăm că matricile elementare se obţin efectuând transformările core-
spunzătoare asupra matricii unitate.
Fie A o matrice de tip m × n asupra căreia se efectuează transformări elementare pe linie,
reprezentate de matricile Pjk , de tipul 1, E j (a) - tipul 2 şi respectiv Ejk (a)- tipul 3.
Observaţia 2.1.2 O matrice de tipul 3, Ejk (a) = (eIJ ), este, pentru j < k, o matrice inferior
triunghiulară (adica eIJ = 0, pentru orice I < J) şi respectiv o matrice superior triunghiulară
dacă j > k (superior triunghiulară ı̂nseamnă că eIJ = 0 pentru orice I > J).
Exemplu
1 0 0 1 0 0
E13 (7) = 0 1 0 , iar E32 (−5) = 0 1 −5
7 0 1 0 0 1
Observaţia 2.1.3 Se poate verifica prin calcul direct că produsul a două matrici inferior tri-
unghiulare este o matrice inferior triunghiulară şi analog produsul a două matrici superior
triunghiulare este superior triunghiulară.
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 5
Proprietate: Matricile elementare sunt inversabile şi inversa fiecăreia este de acelaşi tip ca şi
matricea directă, deoarece transformările elementare pe linie sunt reversibile:
Lj ↔Lk L′j ↔L′k
1 : A −→ A′ −→ A,
adică Pjk A = A′ şi Pjk A′ = A ⇔ Pjk Pjk A′ = A′ ⇔ Pjk Pjk = Im ⇔ P−1
jk = Pjk
Ejk (a)A = A′ iar Ejk (−a)A′ = A ⇔ Ejk (a)Ejk (−a)A′ = A′ ⇔ Ejk (a)Ejk (−a) = Im ⇔
(Ejk (a))−1 = Ejk (−a)
Deoarece forma scară (redusă) S, a unei matrici A, se obţine printr-o succesiune de trans-
formări elementare pe linie, reprezentate de matricile elementare E1 , E2 , . . . , EN , rezultă că
formă scară se exprimă ca un produs:
S = EN EN −1 · · · E1 A
unde E1 , E2 , . . . , EN sunt matrici elementare de tip 1, 2 şi 3. Procedura de calcul a inversei unei
matrici nesingulare prin metoda reducerii Gauss-Jordan conduce la o proprietate importanţa a
matricilor inverse ce se exploatează ı̂n numeroşi algoritmi de calcul numeric. Şi anume:
Propoziţia 2.1.1 Orice matrice pătratică A, inversabilă, poate fi exprimată ca un produs de
matrici elementare de forma 1, 2, 3.
Demonstraţie: Fie E1 , E2 , . . . , EN matricile elementare ce reprezintă transformările elementare
aplicate matricii extinse Ae = [A|In ] pentru a fi dusă la forma scară redusă [In |A−1 ]. Astfel
avem că:
EN · · · E2 E1 A = In
Notând cu E := EN · · · E2 E1 rezultă că EA = In , adică A = E −1 = E1−1 E2−1 · · · EN −1
(deoarece ı̂n general (M · N )−1 = N −1 · M −1 . Dar am demonstrat că inversele unor matrici
elementare de tipul 1, 2, respectiv 3 sunt tot matrici elementare de tipul 1, 2, respectiv 3. Deci
matricea A, inversabilă, se poate exprima ca un produs de matrici elementare. Exprimarea nu
este ı̂nsă unică. Două persoane care reduc matricea extinsă la forma scară redusă pot alege ı̂n
ordine diferită tipurile de trasnformări elementare!
Pe baza acestei proprietăţi rezultă şi:
Propoziţia 2.1.2 Calculul produsului A−1 B dintre inversa unei matrici pătratice de tip n × n
şi o matrice B de tip n × p se poate realiza prin reducerea la forma scară redusă a matricii
extinse [A|B].
6 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007
Demonstraţie: Presupunem că ultima linie nenulă a formei scară este de tipul precizat. Atunci
ecuaţia corespunzătoare este:
şi evident nu are soluţie, deci sistemul iniţial nu are soluţie (este incompatibil).
Reciproc, dacă sistemul este incompatibil atunci rangul matricii prelungite este diferit de
rangul matricii sistemului şi prin urmare dacă rangul matricii sistemului este r, atunci ultima
linie nenulă din forma scară a matricii sistemului este linia r, iar ı̂n forma scară a matricii
prelungite este linia r + 1:
£ ¤
Lr+1 = 0 0 . . . 0 | c , c 6= 0
Exemplul 2.
În concluzie forma scară a unei matrici are următoarele aplicaţii:
◮ Calculul rangului unei matrici: numărul pivoţilor din forma scară a unei matrici A ∈
Km×n este egal cu rangul matricii;
◮ Determinarea compatibilităţii sau incompatibilităţii unui sistem de m ecuaţii cu n ne-
cunoscute AX = b; notând [A′ |b′ ] forma scară a matricii prelungite a sistemului, [A|b], extragem
următoarele informaţii:
• dacă forma scară a matricii prelungite are ultima linie nenulă de forma:
£ ¤
L = 0 0 . . . 0 | c , c 6= 0
• dacă numărul de pivoţi ı̂n forma scară a matricii prelungite coincide cu numărul
de pivoţi ı̂n forma scară A′ , a matricii A, sistemul este compatibil (deoarece cele două matrici
au acelaşi rang).
Forma scară redusă are aplicaţii suplimentare:
◮ Reducând matricea prelungită [A|b] a unui sistem de n ecuaţii cu n necunoscute, AX =
b, la forma scară redusă [A′ |b′ ] extragem următoarele informaţii:
• Dacă [A′ |b′ ] = [In |s] atunci sistemul este compatibil determinat şi unica soluţie a
sistemului este plasată pe ultima coloană a formei scară reduse, adică colana notată s.
• Dacă forma scară redusă este [A′ 6= In |b′ ] atunci sistemul nu este compatibil
determinat, ci este compatibil nedeterminat dacă numărul de pivoţi din A′ coincide cu numărul
de pivoţi din [A′ |b′ ], şi respectiv este incompatibil dacă ultima linie nenulă din [A′ |b′ ] este de
forma: £ ¤
L = 0 0 . . . 0 | c , c 6= 0
◮ Dacă A ∈ Kn×n este o matrice pătratică atunci reducând matricea extinsă Ae = [A|In ]
la forma scară redusă concluzionăm că:
• matricea A este inversabilă dacă forma scară redusă a matricii Ae este de forma
[In |M ] şi ı̂n plus inversa A−1 = M ;
• Matricea A este o matrice singulară dacă forma scară redusă a matricii extinse
este de forma [A′ 6= In |M ].
◮ Pentru a calcula un produs de forma A−1 B, unde A este matrice pătratică de tip n × n,
iar B este o matrice de tip n × p se constituie matricea extinsă, M = [A|B], asociată celor două.
Dacă forma scară redusă a lui M este de forma [In |C], atunci C = A−1 B, iar dacă forma scară
redusă este [A′ 6= In |D] atunci matricea A este singulară şi D nu reprezintă produsul A−1 B.
Observaţia 2.2.1 Toate consideraţiile şi proprietătile formei scară, respectiv a formei scară
redusă asociate unei matrici cu elemente ı̂n corpul comutativ K = R sau K = C rămân
valabile pentru matrici cu valori ı̂n corpul comutativ Zp , p număr prim, al claselor de resturi
modulo p.
zgomotul ce interferă cu informaţia transmisă, ştergerea unor biţi etc; studiul detectării şi corectării erorilor de
transmitere a informaţiei se bazează de asemenea pe tehnici de algebră liniară şi va fi abordat ı̂ntr-un alt curs).
Pentru a asigura confidenţialitatea mesajului, Alice ı̂l transformă, secretizează, ı̂n aşa fel ı̂ncât Oscar, adver-
sarul, dacă l-ar intercepta ar avea nevoie teoretic de un timp foarte ı̂ndelungat pentru a-l descifra, chiar dacă are
resurse de calcul foarte mari. Oscar, (the evil), intenţionează fie doar să citească mesajul, fie să-l modifice sau
să-i trimită lui Alice propriul său mesaj, pentru a o induce ı̂n eroare, făcând-o să creadă că Bob i l-a transmis.
Pentru a preveni acest al doilea comportament al adversarului, pe lângă confidenţialitate mai trebuie asigurată şi
autenticitatea mesajului, astfel ı̂ncât Bob să fie sigur că mesajul primit a fost expediat de Alice.
Vocabularul specific criptografiei:
• mesajul original se numeşte plaintext;
• mesajul codificat se numeşte ciphertext (text cifrat);
Procesul de transformare a plaintextului ı̂n ciphertext se numeşte criptare, iar procesul invers se numeşte
decriptare.
O schemă sau metodă folosită pentru criptare se numeşte sistem criptografic sau cifru.
Bob, destinatarul primeşte mesajul criptat şi ı̂l decriptează exploatând metoda de criptare. Se presupune că
Alice şi Bob au stabilit ı̂n prealabil detaliile modalităţii de criptare şi decriptare.
Tehnicile folosite de către Oscar pentru decriptarea mesajului, fără a cunoaşte detaliile metodei de criptare,
constituie domeniul numit criptanaliză. Criptanaliza are drept scop spargerea codului.
Criptografia şi criptanaliza sunt subdomenii ale criptologiei.
Formalizat matematic, un sistem de criptare este constituit din:
1. mulţimea P a plaintextelor, adică a mesajelor originale pe care expeditorul intenţionează să le transmită.
Un mesaj este un şir de caractere dintr-un alfabet fixat sau un şir de biţi.
2. Mulţimea textelor cifrate, C, la fel constituite din şiruri de caractere dintr-un acelaşi alfabet sau şiruri de
biţi.
3. O mulţime de elemente, K, (deocamdată neprecizate) numite chei. Fiecare cheie K defineşte o metodă de
criptare (care este o aplicaţie eK : P → C ce asociază fiecărui plaintext P , textul cifrat C = eK (P )) şi una de
decriptare dK (care este o aplicaţie dK : C → P ce asdociază unui text cifrat C, plaintextul P din care provine:
dK (C) = P . Dacă dK = e−1 K , sistemul de criptare se numeşte sistem simetric.
A B C D E F G H I J K L M N O P Q R
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
S T U V W X Y Z · ? blank
18 19 20 21 22 23 24 25 26 27 28
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 9
Pentru a cripta ı̂ntregul mesaj format din m grupuri n-poligrafice se ı̂nmulţeste transpusa
lui A la stânga cu matricea K şi se obţine B = KAT = [KAT:,1 |KAT:,2 | · · · |KAT:,m ]. Înmulţirea
celor două matrici se efectuează modulo 29. Astfel pe coloana j, j = 1, m, a matricii B este
plasată cifrarea celui de-al j-lea grup poligrafic din mesajul original.
◮Pentru a transmite mesajul criptat, Alice concatenează coloanele matricii B (transcriind
coloană după coloană) rezultând un text cifrat exprimat ı̂n alfabetul Z29 . Transformă acest text
conform tabelului de mai sus, ı̂ntr-un text ı̂n alfabetul
A, B, C, . . . , X, Y, Z, ·, ?, blank
K −1 , obţinând AT . Constituie apoi matricea A şi ı̂i concatenează liniile pentru a citi mesajul
transmis.
Remarcăm că o problemă fundamentală este alegerea cheii K ı̂n aşa fel ı̂ncât să avem cer-
titudinea că este o matrice inversabilă. Cum Z29 este corp, orice matrice de determinant nenul
este inversabilă. În loc să definim la ı̂ntâmplare o matrice K de tip n × n cu elemente din
Z29 şi apoi să-i calculăm determinantul pentru a vedea dacă este inversabilă sau nu, se genează
matricea inversabilă, ca produs de matrici elementare de tipul 1, 2, 3, cu elemente din Z29 .
Pentru exemplul următor generăm o cheie K, ca produs de matrici elementare de tip 3.
Presupunem că cheia este destinată cifrului Hill, ce acţionează asupra unui grup 3–poligrafic
(adica mesajul este divizat ı̂n frupuri adiacente de trei caractere) Astfel definim cheia K ∈ Z3×3
29 :
22 27 18
K = E13 (18)E23 (5)E12 (11)E32 (17)E31 (9)E21 (27) = 18 28 5
4 17 1
Subliniem că ı̂n acest produs am luat matrici de tip Ejk (a) ∈ Z3×3 29 , corespunzătoare atât
unor perechi (j,k) cu j < k cât şi j > k. Dacă luăm doar matrici corespunzătoare la indici
j < k, produsul lor era o matrice inferior triunghiulară, care se inversează rapid (deci ar uşura
munca lui Oscar!).
Deoarece inversa unei matrici Eij (a) este Eij (−a (mod 29)) şi ı̂n general (AB)−1 = B −1 A−1
avem că:
Prin urmare cunoscând transformările elementare ce definesc matricea K, nu este nevoie să
inversăm matricea K printr-o anume procedură, ci simplu exprimăm inversa tot ca un produs
de matrici elementare, care implică calcule mai simple şi mai rapide decât orice metodă de
inversare (care ar implica calculul x−1 (modulo 29), pentru diverse elemente nenule x ∈ Z29 ;
algoritmul de calcul al inversului modular consumă mult timp, ori ı̂n criptanaliză timpul este
”preţios”!).
LIPSESC LA ALGEBRA.
Pentru a-l cripta folosind cheia K de mai sus, codifică ı̂n prealabil mesajul cu elemente din
alfabetul Z29 , constituind o matrice linie::
£ ¤
M= 11 8 15 18 4 18 2 28 11 0 28 0 11 6 4 1 17 0 26
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 11
apoi divide mesajul codificat ı̂n grupuri 3-poligrafice pe care le inserează pe liniile unei matrici:
11 8 15
18 4 18
2 28 11
A= 0 28 0
11 6 4
1 17 0
26 28 28
Deoarece ultima linie nu conţine decât un element o completează cu doi de 28, adică 2 blankuri.
Efectuând ı̂nmulţirea modulo 29, B = KAT , obţine matricea B:
3 16 12 2 12 17 5
B= 4 4 5 1 9 1 0
21 13 2 12 5 3 28
Prin urmare fiecare 3-grup poligrafic este cifrat pe câte o coloană a matricii B. De exemplu
textul cifrat pentru grupul LIP este 3, 4, 21, pentru SES este 16,4, 13, etc. Transcriind coloană
după coloană, dar inlocuind numerele din Z29 cu litere rezultă următorul mesaj cifrat transmis
de Alice lui Bob:
DEVQENMFCCBMMJFRBDFA
Bob reconstituie matricea B din textul cifrat şi calculează
11 18 2 0 11 1 26
K −1 B (mod 29) = 8 4 28 28 6 17 28
15 18 11 0 4 0 28
Concatenând coloană după coloană, şi ı̂nlocuind elementele din Z29 cu caracterele pe care le
codifică poate citi mesajul:
LIPSESC LA ALGEBRA.
Oride câte ori se lansează un nou sistem de criptare, se ı̂ncearcă şi să se demonstreze cât de
dificilă este problema spargerii cifrului, adică se efectuează criptanaliza sistemului.
n grupuri poligrafice şi a obţinut criptarea acestuia, atunci el poate deduce cheia cifrului dacă
matricea pătratică A asociată plaintextului este nesingulară.
Demonstraţie: Remarcăm că ı̂n enunţul teoremei se afirmă că plaintextul trebuie să conţină
n grupuri poligrafice, adică matricea A, respectic AT asociată este matrice pătratică. Con-
form sistemului de criptare, B = KAT , unde AT are drept coloane cele n grupuri poligrafice
consecutive din plaintextul a cărui cifrare o cunoaşte. Deoarece matricea A (deci şi AT ) sunt
inversabile, rezultă că cheia K = B(AT )−1 . Dar matricea B fiind produs de matrici inversabile
este şi ea inversabilă (şi la fel transpusa sa) şi deci inversa cheii, necesară pentru decriptare este
K −1 = AT B −1 .
Deoarece timpul de lucru este important ı̂n criptanaliză (ı̂n spargerea cifrului), Oscar ar
afla cel mai rapid inversa cheii ca fiind produsul AT B −1 aplicând următoarea procedură (ce se
bazează pe faptul că ı̂n general pentru a calcula produsul M −1 N se reduce la forma scară redusă
matricea [M |N ]):
• Deoarece K −1 = AT B −1 , aplică o transformare acestei relaţii pentru a obţine un produs
de forma M −1 N , şi anume ı̂i aplică operatorul de transpunere şi obţine ţinând seama că, ı̂n
general, (C T )−1 = (C −1 )T :
(K −1 )T = (B T )−1 A
• constituie matricea extinsă de tip n × 2n, Me = [B T |A];
• aplică transformări elementare pe linie (cu toate operaţiile de ı̂nmulţire, adunare, inversare
1/a, efectuate modulo 29) pentru a reduce matricea Me la forma scară redusă:
[In |P ]
Astfel P = (K −1 )T şi K −1 = P T .
Cu mult mai dificil sparge Oscar cifrul dacă nu se mai adaugă celor 26 de majuscule 3
caractere ı̂n plus şi deci codificarea literelor mari se face cu elemete din Z26 . Cum 26 nu este
număr prim, nu orice element nenul din Z26 este inversabil. Şi anume este inversabil orice
element x care este relativ prim cu 26, adică c.m.m.d.c al lui x şi 26 este 1. Astfel dacă
determinantul matricii A din Teorema de spargere a cifrului Hill este nenul şi egal, de exemplu,
cu 10, Oscar nu poate afla cheia ca mai sus. Deci practic ar trebui să identifice o pereche
(plaintext, ciphertext) pentru care matricea ataşată A are determinant nenul şi determinatul
este relativ prim cu 26. Mai mult algoritmul de reducere a unei matrici la forma scară nu este
funcţional ı̂n Zm cu m neprim.
timp ce rezolvarea manuală implică folosirea aritmeticii exacte, ı̂n rezolvarea cu calculatorul
este implicată aritmetica ı̂n virgulă mobilă, cunoscută ı̂n CS ca şi floating point arithmetic.
În timp ce reducerea la forma scară a unei matrici prin metoda ”manuală” folosim fracţii de
forma 5/3, 7/9, etc, pentru a ı̂nmulţi, de exemplu, elementele unei linii, ı̂ntr-o reprezentare ı̂n
calculator ce ar stoca de exemplu 15 cifre zecimale, numărul 5/3 = 1.6666666666666666... ar
fi reprezentat de numărul ce se obţine din 1.66666666..... printr-o trunchiere, urmată eventual de
o rotunjire. Aceste reprezentări nu sunt exacte şi ele introduc erori de aproximare şi rotunjire.
În problemele ı̂n care sunt implicate mii de calcule eroarea se poate cumula semnificativ. Cum
ı̂n reducerea matricilor de dimensiuni mari la forma scară sunt implicate ı̂n calcule numeroase
astfel de reprezentări trunchiate şi rotunjite discutăm modalitatea de a evita cumularea unor
erori semnificative.
Multimea numerelor reale de forma:
f = ±.c1 c2 . . . cp × be , c1 6= 0,
unde b şi p sunt fixate, iar e este un număr ı̂ntreg ce ia doar valori ı̂ntre ı̂ntregii emin , emax , adică
emin ≤ e ≤ emax , se numesc numere ı̂n virgulă flotantă ı̂n baza b. c1 , c2 , . . . , cp sunt cifre ı̂n
baza b, adică c1 , c2 , . . . , cp ∈ {0, 1, . . . , b − 1}. e se numeşte exponent, iar p, precizie.
0.c1 c2 . . . cp se numeşte mantisa numărului f .
Sistemele de calcul (computers) folosesc reprezentarea numerelor reale ı̂n virgulă mobilă,
ı̂n baza 2, ı̂n timp ce calculatoarele de buzunar, ı̂n baza 10 .
Notăm cu F(b, p, emin , emax ) mulţimea numerelor ı̂n baza b, având precizia p şi exponentul
e ı̂ntre cele două limite.
Fie fmin , fmax cel mai mic, respectiv cel mai mare număr din F(b, p, emin , emax ). Evident că
mulţimea F(b, p, emin , emax ) este finită. Deci nu orice număr real poate fi exprimat exact printr-
un număr din această mulţime şi mai mult numerele reale din afara intervalului [fmin , fmax ] nici
măcar nu pot fi reprezentate ı̂n calculator, deci nu pot fi implicate ı̂n calcule.
Dacă x ∈ R este un număr real arbitrar şi el intră ı̂n datele cu care lucrează un program ı̂n
limbajul X, ce foloseşte reprezentarea ı̂n virgulă mobilă definită de F(b, p, emin , emax ), atunci
el este reprezentat ı̂n calculator prin numărul f l(x) care este cel mai apropiat număr de x din
mulţimea finită F(b, p, emin , emax ).
Pentru a ı̂ntelege mai rapid problematica pe care o discutăm dăm exemple ı̂n baza b = 10,
nu ı̂n baza 2.
Să determinăm de exemplu, aproximarea f l(x) ı̂n baza 10, cu precizia p a unui număr real
x ∈ [(fmin , fmax ]. În acest scop se exprimă numărul x ı̂n forma zecimală ±0.c1 c2 . . . cp cp+1 ...10k ,
cu prima cifră după virgulă nenulă: c1 6= 0. Pentru a determina cel mai apropiat număr de x
din F(10, p, emin , emax ) se procedează astfel:
±0.c1 c2 . . . cp × 10k
½
dacă cp+1 < 5
f l(x) = k
±((0.c1 c2 . . . cp ) + 10 ) × 10 dacă cp+1 ≥ 5
−p
După trunchiere se efectuează rotunjirea, adică se determină numărul din F cel mai apropiat
de x:
Deoarece zecimala a 5-a ı̂n cazul exemplului nostru este mai mare decât 5 rotunjim numărul
trunchiat adunând la 0.1666 pe 10−4 = 0.0001 şi avem f l(x) = 0.1667 × 101 . Remarcăm că
se pătrează exponentul din exprimarea numărului real ca un număr zecimal cu prima cifră după
punctul zecimal diferită de zero.
b) Să reprezentăm numărul x = −95/7 = −13.571428571428... = −0.13571428571428...102
tot cu precizia 4. Cifra a 5-a a după punctul zecimal este 1, deci f l(−95/7) = −0.1357 × 102 .
c) Reprezentarea numărului −327/53 cu precizia p = 4: exprimăm numărul ı̂n formă
zecimală −327/53 = −6.1698113207... = −0.61698113207... × 101 . Zecimala a 5-a este
c5 = 8 > 5. Prin urmare adunăm mantisei fără semn 0.c1 c2 c3 c4 = 0.6169 pe 10−4 = 0.0001 şi
avem, 0.6169 + 0.0001 = 0.617. Astfel f l(−327/53) = −0.6170 × 101
Subliniem că aproximarea numerelor reale x prin numere f l(x) dintr-un sistem dat
F(b, p, emin , emax ) prezintă, ı̂n general, anomaliile următoare:
De exemplu dacă x = 9/7 = 1.28571... şi y = 17/7 = 2.42857..., atunci ı̂n sistemul de
reprezentare ı̂n virgulă mobilă de 4 zecimale precizie, ı̂n baza 10 avem:
f l(x) = 0.1286 × 101 , f l(y) = 0.2429 × 101 , f l(x) + f l(y) = 0.3715 × 101
iar
x + y = 3.714285... f l(x + y) = 0.3714 × 101 6= f l(x) + f l(y)
Exemplul 5. Verificaţi că f l(2/3)+f l(f l(2/3)−f l(1/3)) 6= f l((f l(2/3)+f l(2/3))−f l(1/3)
folosind precizia p = 8.
Pentru a ilustra un caz ı̂n care erorile de rotunjire cresc semnificativ, luăm următorul exemplu
din mulţimea numerelor ı̂n virgulă flotantă, de precizie p=4, baza zece şi exponent e=10:
presupunem că avem de efectuat operaţiile 100000(25.743 + 0.3162) ı̂n sistemul de numere
ı̂n virgulă flotantă specificat. Notăm x = 25.743, y = 0.3162. Atunci:
Pentru a efectua adunarea f l(x) + f l(y) exprimăm cele două cu acelaşi exponent, 2 şi avem ı̂n
aritmetica uzuală
dar ı̂n reprezentarea ı̂n sistemul fixat suma este0.2606 × 102 . Prin urmare s-a introdus o eroare
de 0.0037.
Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007 15
Deci rezultatul ı̂nmultirii ı̂n sistemul ı̂n virgulă mobilă este 2600000, ı̂n timp ce rezultatul
ı̂nmultirii manuale este: 100000(25.743 + 0.3162) = 2605920. Acest exemplu ilustrează că
ı̂nmulţirea cu numere foarte mari sau echivalent ı̂mpărţirea la numere mici poate cauza erori
mari. Aceste erori mari se datorează faptului că rezultatul ı̂nmulţirii cu un număr ”mare” (mai
mare decât 10p ı̂n cazul nostru) conduce la o trunchiere ce implică renunţarea la multe zecimale
pentru a obţine reprezentantul dintr-o mulţime cu precizia p.
Să luăm acum un exemplu de sistem pe care să-l rezolvăm prin metoda reducerii la forma
scară a matricii prelungite folosind aritmetica exactă şi aritmetica ı̂n virgulă flotantă, de precizie
specificată. Pentru a sublinia diferenţele lucrăm cu precizie redusă, de exemplu de 3 zecimale.
Exemplul clasic care ilustrează diferenţele ı̂ntre cele două ”aritmetici” este:
−104 x + y = 1
x+y = 2
deoarece:
3 zecimale
f l(104 + 1) = f l(10001) = f l(0.10001 × 105 ) = 0.100 × 105
şi
3 zecimale
f l(104 + 2) = f l(10002) = f l(0.10002 × 105 ) = 0.100 × 105
Astfel obţinem soluţia x = 0, y = 1. x = 0 este departe de valoarea exactă x = 1/1.0001 ≈
0.9999, ı̂n timp ce y este suficient de aproape.
Cauza acestei erori mari se datorează alegerii unui pivot mic, −10−4 = −0.0001, ceea ce
conduce la ı̂nmulţirea liniei L1 cu număr mare 1/0.0001 = 104 . Într-adevăr dacă schimbăm
liniile ı̂ntre ele pentru a avea pivot mare, reducerea la forma scară conduce la:
¯ ¯
−104 1 ¯¯ 1
· ¸ · ¸
L1 ↔L2 1 1 ¯¯ 2
− − − − − −→ −→
1 1 ¯ 2 −10−4 1 ¯ 1
· ¯ ¸
10−4 L1 +L2 →L2 1 1 ¯¯ 2
− − − − − −→
0 1 ¯ 1
deoarece
3 zecimale
f l(10−4 + 1) = f l(0.10001 × 101 ) = 0.100 × 101 = 1
16 Cursul 2, Algebră liniară °
c E. Petrişor, octombrie 2007
şi
3 zecimale
f l(2 × 10−4 + 1) = f l(0.10002 × 101 ) = 0.100 × 1 = 1
şi obţinem soluţia x = y = 1, care este foarte apropiată de cea exactă.
Strategia de schimbare a liniilor astfel ı̂ncât pivotul din linia ”ı̂n lucru” să fie cel mai mare
element ı̂n valoare absolută de pe coloana sa, se numeşte pivotare parţială. Pivotarea parţială
ı̂nlătură o parte din efectele aproximării numerelor reale prin numere ı̂n virgulă flotantă de
precizie fixată.
La prima vedere am fi tentaţi să credem că dacă creştem precizia anomaliile ilustrate se
atenuează. Parţial este adevărat, dar crescănd precizia, putem da din nou alte exemple care ı̂n
precizia respectivă conduc la aceleaşi erori de aproximare.