Documente Academic
Documente Profesional
Documente Cultură
Cap 1
Cap 1
= c . (1.4)
Dac se asociaz numrul x valorii reale a unei mrimi fizice i aproximata x
rezultatului msurrii, este clar ca valoarea lui x nu se cunoate. Din aceast cauz
numrul x de la numitorul relaiei (1.4) este nlocuit cu aproximata sa x , astfel nct
x
a
x
x
= c .
1.2. Erori de trunchiere
Eroarea de trunchiere este deosebit de frecvent n cadrul metodelor de calcul
numeric. Ea intervine ori de cte ori un calcul numeric infinit este nlocuit cu unul finit,
ceea ce constituie de fapt o trstur a majoritii algoritmilor prezentai n capitolele
urmtoare.
Foarte multe modele matematice din inginerie nu au soluii analitice ci doar
numerice. Aplicarea unui algoritm numeric la tratarea unui model matematic presupune
introducerea unor noi erori, cum sunt de exemplu aproximrile pe intervale ale derivatei
sau integralei. Aceste erori sunt cunoscute sub denumirea de erori de trunchiere.
Exemplul 1.1. Pentru calculul sinusului unui unghi x n radiani poate fi folosit
seria lui Taylor
...
! 9 ! 7 ! 5 ! 3
sin
9 7 5 3
+ + =
x x x x
x x (1.5)
2
Metode numerice
Deorece seria este infinit, nu pot fi utilizai n calcul toi termenii acesteia, ci
numai un numr finit de termeni, de exemplu primii patru sau cinci. Termenii omii,
care sunt n numr infinit, introduc o eroare n rezultatul calculelor.
S considerm situaia n care sunt luai n considerare succesiv, termenii de rang
. n tabelul 1.1 sunt prezentate valorile estimatei numrului i a erorii
relative a acesteia. Se consider ca valoare exact
5 2 1 , , , 1 sin
8414709 0 1 , sin = .
Tabelul 1.1
Variaia estimatei i a erorii relative a numrului 1 sin
Numr
termeni
Estimata numrului 1 sin
Eroarea relativ
[%]
1 1,0000000 18,83
2 0,8333333 0,96
3
0,8416666
2
10 32 2
- ,
4
0,8414682
4
10 20 3
- ,
5
0,8414710
5
10 18 1
- ,
Exemplul 1.2. Se consider algoritmului Newton-Raphson pentru rezolvarea
ecuaiilor neliniare. Acest algoritm are la baza descompunerea n serie Taylor a funciei
f(x)
... ) x x (
! 2
) x ( f
) x x (
! 1
) x ( f
) x ( f ) x ( f
2
1 i
1 i
1 i
1 i
1 i
+
' '
+
'
+ =
(1.6)
Astfel, dac se iau n consideraie numai primii doi termeni din seria Taylor, se
obine
) 1 i / ) 1 i 1 i i
x ( f x ( f x x
' = . (1.7)
Lund n consideraie numai primii doi termeni din seria Taylor, rezultatul a fost
trunchiat, eroarea de trunchiere fiind n acest caz
, (1.8) 2 / ) ( f ) x x (
2
1 i i
' '
unde ). x , x (
1 i i
e
1.3. Reprezentarea numerelor n virgul mobil
Exprimarea numerelor n baza zece. n general suntem obinuii s gndim i
s calculam cu numere n baza 10. Astfel, numrul zecimal 257,424 poate fi scris sub
forma
.
3 2 1 0 1 2
10 4 10 2 10 4 10 7 10 5 10 2
+ + + + +
Orice numr real n baza 10 are o reprezentare unic n forma preyentat
anterior. Se excepteaz cazul n care, n scrierea poziional a unui numr zecimal, cifra
3
Metode numerice
9 apare de o infinitate de ori. De exemplu numrul 99,9999 ... reprezint acelai numr
ca 100.
n general, pentru reprezentarea unui numr real putem utiliza o baz oarecare B,
2 > B , B fiind un numr natural. n aceast baz de numeraie, orice numar real pozitiv
admite o reprezentare unic de forma
... B a B a a B a ... B a B a
n
n
n
n
+ + + + + + +
2
2
1
1 0 1
1
1
unde coeficienii a se numesc cifre n sistemul cu baza B i sunt numere ntregi pozitive
cu proprietatea
1 0 s s B a
i
.
Avantajul scrierii unui numr ntr-o baz care conduce la o scriere poziional de
forma
, ... a a a a ... a a
, n n 2 1 0 1 1
unde reprezint partea ntreag, iar 0, partea fracionar a
numrului real, este acela c pentru operaiile aritmetice putem utiliza reguli simple. Cu
ct baza este un numr natural mai mic, cu att aceste reguli sunt mai simple. Acest
argument st la baza faptului c cele mai multe calcule opereaza n baza 2, respectiv n
sistemul binar cu dou cifre: 0 i 1.
0 1 1
a a ... a a
n n
... a a
2 1
Conversia n binar a unui numr ntreg. Pentru conversia unui numr ntreg
N
I
, exprimat n baza 10, ntr-o alt baz b, se folosete metoda mpririi repetate,
coform urmatorului algoritm:
a) se mparte numrul ntreg N
I
prin baza b, obinndu-se ctul Q
1
i restul R
0
;
b) se mparte ctul Q
1
prin baza b, obinndu-se ctul Q
2
i restul R
1
;
c) se continu operaia de la punctul b pn cnd se obine 0 =
n
Q .
Resturile obinute, asezate n ordine invers a apariiei lor, reprezint cifrele
numrului convertit n baza b, R
0
fiind cifra cea mai puin semnificativ.
Exemplul 1.3 S se reprezinte n baza 2 = b numrul zecimal 75.
Rezolvare. n tabelul 1.2 sunt prezetate rezultatele algoritmului "mpririi
repetate". n consecin, numrul n binar, obinut din numrul zecimal 75, este
1001011. Conversia din binar n zecimal a numrului 1001011 este realizat astfel:
= - + - + - + - + - + - + - =
0 1 2 3 4 5 6
2 1 2 1 2 0 2 1 2 0 2 0 2 1 N
75 1 2 8 64 = + + + = .
Avnd n vedere rezultatul obinut, rezult c procesul de conversie a unui
numr ntreg n binar decurge fr erori de conversie.
4
Metode numerice
Tabelul 1.2
Rezultatele obinute la conversia n binar a numrului 75
10
Numrul sau ctul
de mprit
Ctul obinut
Restul obinut
75 37 1
37 18 1
18 9 0
9 4 1
4 2 0
2 1 0
1 0 1
Conversia n binar a unui numr fracionar. Pentru conversia unui numr
zecimal subunitar N
s
, ntr-o alt baz b, se procedeaz n modul urmtor:
a) se nmulete numrul zecimal subunitar dat N
s
cu baza b, rezultnd partea
fracionara F
1
i cifra A
1
;
b) se nmulete partea fracionar F
1
cu baza b, obinndu-se partea fracionara
F
2
i cifra A
2
;
c) se continu nmulirea pn cnd partea fracionar F
m
este egal cu 0 sau
pn cnd se obine un numr de cifre A
i
apropiat de precizia cu care se dorete s se
reprezinte partea fracionara a numrului N
s
.
irul A
1
A
2
A
3
A
m
formeaz numrul convertit n baza b, A
1
fiind cifra cea mai
semnificativ. Dac dup un numr finit de nmuliri succesive se ajunge la o parte
fracionar 0 , atunci reprezentarea numrului zecimal N =
k
F
s
n baza b va avea un
numr finit de cifre. n caz contrar numrul de cifre va fi infinit.
Exemplul 1.4. S se reprezinte numrul zecimal 0,73 n baza . 2 = b
Rezolvare. n tabelul 1.3 sunt prezetate rezltatele algoritmul "nmulirii
repetate".
Tabelul 1.3
Rezultatele obinute la conversia n binar a numrului 0,73
10
Numrul sau
partea fracionar
Numrul
obinut
Partea
fracionar
obinut
Cifra
binar
obinut
0,73 1,46 0,46 1
0,46 0,92 0,92 0
0,92 1,84 0,84 1
0,84 1,68 0,68 1
0,68 1,36 0,36 1
5
Metode numerice
n consecin, numrul obinut n binar, exprimat cu cinci cifre zecimale, este
0,10111.
Conversia din binar n zecimal a numrului 0,10111 este dat de relaia
= - + - + - + - + - =
5 4 3 2 1
2 1 2 1 2 1 2 0 2 1 N
71875 0 03125 0 0625 0 125 0 5 0 , , , , , = + + + = .
Concluzie. Conversia n binar a numerelor zecimale este nsoit de erori. n
cazul concret al conversiei n binar a numrului 0,73 cu cinci zecimale, eroarea este
01125 0 71875 0 73 0 , , , e = = ,
respectiv
% ,
,
,
N
e
54 1 100
73 0
01125 0
= - = = c .
Conversia n binar a numerelor reale. n cazul numerelor reale, operaia de
conversie a acestor numere ntr-o baz de numeraie b se reduce la reprezentarea unui
numr ntreg N
I
i a unui numr subunitar N
s
, conform relaiei
R = N
I
+ N
s
.
Pentru numere fracionare se utilizeaz reprezentarea intern virgul mobil.
Conform standardului IEEE (Institute for Electrical and Electronics Engineers) datele
se memoreaza pe 32 de biti n simpl precizie i pe 64 de bii n dubl precizie. Pentru
reprezentari n simpl precizie, macheta datelor este prezentat n figura 1.1.
s Caracteristica Fractie
31 30 . . . 23 22 21 20 . . . . 2 1 0
Fig. 1.1. Reprezentarea intern n virgula mobil.
Aceasta macheta presupune ca numrul de reprezentat are urmtoarea exprimare
binar
(1.9) ( ) m = - - 1 1 2
s onent
fractie ,
exp
unde s este valoarea bitului de semn (1 pentru mantisa negativ i 0 pentru mantisa
pozitiv) iar fractie reprezint partea fracionar a mantisei.
Mantisa este normalizat i are ntotdeauna forma 1,fractie, ceea ce nseamn c
are valori n intervalul [1, 2). Pentru ca mantisa s fie adus la aceast form se
modific n mod corespunztor exponentul numarului m.
6
Metode numerice
Exemplul 1.5. Fie un numr binar m = 101,0111. S se normalizeze numrul m.
Rezolvare. Scrierea numrului m n form normalizat este .
2
2 1010111 1 - = , m
Observaie. Deoarece partea ntreaga a mantisei este ntotdeauna 1, aceasta nu se
reprezint intern. Fractia se reprezint intern sub forma semn-mrime (semnul exprimat
prin bitul de semn iar mrimea exprimat n cod direct). Pentru a nu se utiliza doi bii de
semn, unul pentru mantis i unul pentru exponent, convenia IEEE a nlocuit
exponentul din macheta de reprezentare cu o caracteristica. Aceasta este o valoare n
exces fa de 127, pentru reprezentri n simpl precizie, respectiv 1023 pentru
reprezentri n dubl precizie
caracteristica = exponent + 127 (simpl precizie);
caracteristica = exponent + 1023 (dubl precizie).
Exemplul 1.6. S se reprezinte n virgul mobil, n simpl precizie, numrul
zecimal 75,73.
Rezolvare. Numarul zecimal N = 75,73 se descompune in partea intreaga,
N
I
= 75 si partea fractionara N
z
= 0,73
N = N
I
+ N
z
75,73 = 75 + 0,73.
Reprezentarea in cod binar direct a numarului N
I
este prezentata in exemplul
3.1, rezultatul fiind N
I
= 1001011. Reprezentarea partii fractionare N
z
este tratata in
exemplul 3.2, rezultatul partial al conversiei fiind N
z
= 0,10111... .Prin insumarea celor
doua componente ale numarului N se obtine
N = 1001011 + 0,10111 = 1001011,10111
Mantisa normalizata a numarului binar N va fi
N = 1001011,10111 = 1,00101110111 x 2
6
.
Fractia asociata mantisei normalizate are valoarea
fractie = 00101110111
iar caracteristica va fi
caracteristica = 6 + 127 = 133
respectiv in cod direct
caracteristica = 10000101.
Reprezentarea interna pentru numarul 75,73 este
7
Metode numerice
Caracteristica are urmatoarele valori normale:
0 < caracteristica < 255 (simpla precizie);
0 < caracteristica < 2047 (dubla precizie).
Cand caracteristica are valoarea 0, numarul reprezentat intern este zero. Cand
caracteristica este 255 (respectiv 2047) se considera depasire in virgula mobila.
Caracteristicile reprezentarilor interne in virgula mobila sunt prezentate in
tabelul 3.3.
Tabelul 3.3
Caarcteristici ale datelor reprezentate in virgula mobila
Caracteristici Tip reprezentare
Simpla precizie Dubla precizie
Numar biti pentru reprezentare
caracteristica
8 11
Numar biti pentru reprezentare fractie 23 52
Valoare minima caracteristica 1 1
Valoare maxima caracteristica 254 2047
Eroare maxima fractie
2
-24
~ 10
-7
2
-53
~ 10
-16
Cel mai mic numar pozitiv
2
1-127
~ 10
-38
2
1-1023
~ 10
-307
Cel mai mare numar pozitiv
2x 2
254-127
~ 10
38
2x 2
2047-1023
~ 10
307
Domeniu de reprezentare -10
38
... 10
38
-10
307
... 10
307
n sistemele de calcul este folosit n mod curent reprezentarea n virgul mobil
pentru numerele reale.
Virgula mobil reprezint forma numerelor reale exprimate printr-o fracie,
numit mantis, i un numr ntreg cu funcie de exponent, numit caracteristic. Dac
se consider b baza sistemului de numeraie, f fracia i e exponentul, atunci un
numr exprimat n virgul mobil are forma . De exemplu, n sistemul zecimal,
numrul 574,12 va fi reprezentat sub forma 0 .
e
b f -
57412 , -
3
10
Normalizarea numerelor reprezint operaia prin care forma numrului va avea
prima cifr a mantisei diferit de zero. Un numr reprezentat n sistemul zecimal prin
virgul mobil are forma . Dac se utilizeaz forma normalizat, f nu poate fi
e
f x 10 - =
31 30 . . . 23 22 . . . . . . . . . . 2 1 0
0 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
8
Metode numerice
mai mic de 0,1, prima cifr fiind astfel diferit de zero.. Deoarece f este o fracie,
valoarea sa absolut nu poate fi mai mare ca 1. n consecin
1 1 , 0 < s f . (1.9)
Calculatoarele opereaz cu numere reale, rezervnd un anumit numr de cifre
pentru mantisa f i un altul pentru exponentul e. De exemplu, pentru unele medii de
programare, reprezentarea numerelor reale n virgul mobil este realizat utiliznd 32
de bii, din care 24 sunt pentru mantisa, 7 pentru caracteristic i un bit pentru semnul
numrului, figura 1.1.
Fig. 1.1. Reprezentarea datelor de tip real ntr-o locaie de 32 bit.
Exemplul 1.3. S se normalizeze urmtoarele numere: 542,36; 4527;
0,0002617;
42,15; 0,012. Soluia este prezentat n tabelul 1.1.
Numrul Numrul normalizat Mantisa Exponentul
542,36
3
10 54236 0 ,
0,54236 3
4527
0,4527
4
10
0,4527 4
0,0002617
0,2617
3
10
0,2617 3
42,15
-0,4215
2
10
-0,4215 2
0,012
-0,12
1
10
0,12 1
1.4. Operaii n virgul mobil
Fie dou numere, i 7012 , 124
1
= x 01028 , 0
2
= x . Adunarea acestor dou
numere conduce la rezultatul . 71148 , 124
3
= x
Se consider un calculator cu 7 cifre pentru mantis. Pentru a aduna cele dou
numere cu acest calculator, numerele trebuiesc nti normalizate, obinndu-se formele
i . Operaia de adunare necesit alinierea
virgulei, prin deplasare spre dreapta a mantisei lui x
3
1
10 1247012 , 0 = x
1
2
10 1028 , 0
= x
2
, astfel nct exponentul acestuia s
fie egal cu exponentul primului numr
.
3 3 3
2 1 3
10 12471148 , 0 10 00001028 , 0 10 1247012 , 0 = + = + = x x x
Acest rezultat poate fi pus sub forma a doi termeni normalizai, primul avnd 7
cifre pentru mantis iar cel de al doilea un exponent cu 7 uniti mai mic dect primul
9
Metode numerice
. (1.10)
4 3
3
10 8 , 0 10 1247114 , 0
+ = x
Pentru cazul general se presupune ca mantisa numerelor reprezentate n virgul
mobil conine t cifre. Oricare din cele patru operaii aritmetice va conduce la un
rezultat care poate fi descompus n doi termeni
, (1.11)
t e e
g f x
+ = 10 10
unde f ndeplinete restriciile (1.9).
1.5. Erori de rotunjire
Din exemplul precedent, s-a constatat c n cadrul operaiilor aritmetice n
virgul mobil, rezultatul obinut nu poate fi memorat n mod corespunztor i n
consecin vor apare erori.
Eroarea de rotunjire reprezint eroarea realizat prin modul n care se ia n
consideraie mantisa g n componena mantisei f a rezultatului (1.11). Dintre
procedeele de rotunjire sunt de subliniat:
rotunjirea prin tiere ;
rotunjirea simetric ;
rotunjirea uniform.
Rotunjirea prin tiere presupune stabilirea aproximatei x prin neglijarea lui g
e
f x 10 = . (1.12)
De exemplu, dac se aplic rotunjirea prin tiere pentru x
3
din calculul (1.10), se
obine
3
3
10 1247114 , 0 10 = =
e
f x .
Eroarea relativ a rotunjirii prin tiere este dat de
t
e
t e
e
t e
x
x
f
g
x
a
=
= =
1
10
10 1 , 0
10 1
10
10
c . (1.13)
Eroarea relativ crete cu valoarea mantisei g i scade cu valoarea mantisei f.
Eroarea relativ maxim a rezultatului operaiilor aritmetice n virgul mobil nu
depinde de mrimea numerelor, ci numai de t, adic de numrul cifrelor mantisei.
Rotunjirea simetric este definit prin relaia
=
>
<
=
0 , 10 0 0 , 0
2 1 , 10 10
2 1 , 10
9 9
x daca
g daca f
g daca f
x
t e e
e
. (1.14)
n cazul rezultatului (1.10) se observ c 2 1 8 , 0 > = g , astfel nct aplicarea
rotunjirii simetrice conduce la
3 3 3 7 3 3
3
10 1247115 , 0 10 0000001 , 0 10 1247114 , 0 10 10 1247114 , 0 = + = + =
x .
10
Metode numerice
Eroarea relativ este
( ) ( )
t
e
t e
e
t e
x
x
f x
a
=
= =
1
10
2
1
10 1 , 0
10 2 1
10
10 2 1
c . (1.15)
1.6. Exerciii
1.6.1. Scriei n baz 10 numerele: (1000)
2
, (100000)
8
, (A64)
16
.
1.6.2. Fie numrul 1/3 de memorat ntr-o celul de memorie cu 4 poziii
zecimale. Cum apare acest numr n calculator ? Cu ce eroare? Care este corecia ?
acelai lucru pentru numerele t i 2 .
1.6.3. In cazul reprezentrii n calculator a numrului 1/3, (indiferent pe cte
poziii zecimale (n numr finit)), coincide eroarea de rotunjire cu eroarea de
trunchiere ?
1.6.4. Pentru reprezentarea (cu rotunjire prin tiere) a unui numr iraional n
calculator, coincide eroarea de rotunjire ce cea de trunchiere?
1.6.5. Pentru un calculator ce lucreaz cu 7 poziii zecimale, care este unitatea?
1.6.5. Un calculator are rezervate 2 poziii zecimale pentru exponent. De cer se
adaug, n reprezentarea n calculator, numrul 50 exponentul real? Cum vor fi
reprezentai pe aceste dou poziii exponenii 7, 6, -22, -11, 20?
1.6.7.Avem un calculator cu 8 poziii binare pentru exponent. Care este cel mai
mare numr ntreg ce ncape n cele 8 poziii binare? Care este jumtatea acestui
numr? Care este numrul ce se va aduga exponentului real n reprezentarea n virgul
mobil n calculator? n ce interval se situeaz exponentul real?
1.6.8. Fie un calculator cu dou poziii zecimale pentru exponent i 4 poziii
zecimale pentru mantis. Sse efectueze n reprezentarea virgul mobil, cu rotunjire,
urmtoarele operaii:
a) t 1350 , 2 ;
b) e 2567 , 0 ;
11
Metode numerice
c) e t ;
d) 0,2125-0,212 ;
e) 1,2137+22,2137
1.6.9. Determinai eroarea relativ maxim pentru x, n cazurile:
a) 2 , 0 3 , 2 ;
1
= x
b) 2 , 0 3 , ; 22
2
= x
c) 2 , 0 3 , . 203
3
= x
Care din aceste trei numere are precizia relativ cea mai bun?
1.6.10. Calculaii eroarea relativ maxim pentru:
3
2
1
2
x
x x
E
= ,
unde x
1
, x
2
, x
3
sunt valorile din problema 1.6.9.
1.6.11. S se efectueze, cu precizia cea mai bun, adunarea
3 2 1
x x x S + + = ,
n virgula mobil, utiliznd 5 zecimale pentru mantis i 2 poziii pentru exponent,
pentru numerele:
11283 , 0
1
= x ;
000043888 , 0
2
= x ;
0082798 , 0
3
= x .
1.6.12. S se calculeze
dx
x
x
y
n
n
}
+
=
1
0
5
pentru , utiliznd formula de recuren: 8 , , 3 2 , 1 , 0 = n
n
y y
n n
1
5
1
= +
.
S se rspund la ntrebrile:
a) Cum rezult formula de recuren?
b) S se determine valoarea numeric prin rotunjire, utiliznd trei
zecimale.
12