Sunteți pe pagina 1din 10

METODE NUMERICE

Curs 1
Elemente de teoria erorilor

1.1. Elemente de teoria erorilor

1.2. Condiionarea numeric. Factor de condiionare.

1.3. Stabilitatea algoritmilor

1.4. Complexitatea algoritmilor

1.5 Reprezentarea numerelor. Cifre semnificative exacte.

1.6 Erori ale operaiilor elementare

Noiuni introductive

Metodele numerice reprezint tehnici prin care problemele


matematice sunt reformulate astfel nct s fie rezolvate numai prin
operaii aritmetice.
Prin trecerea de la infinit la finit, diferenial la algebric, neliniar la
liniar problemele complicate sunt nlocuite de probleme mai simple care
au aceeai sau aproape aceeai soluie.
Astfel soluiile obinute prin aplicarea metodelor numerice
reprezint doar aproximaii ale soluiilor problemelor originale, i deci
implic erori.

1.1. Elemente de teoria erorilor

Sursele erorilor i clasificarea lor

1
METODE NUMERICE
Se pot distinge trei tipuri de erori n cazul aplicrii de metode numerice pentru rezolvarea
unei probleme:
Erori provenite din simplificarea modelului fizic, pentru a fi descris ntr-un model
matematic; erori din msurtorile iniiale sau erori din calcule anterioare. Aceste tipuri de
erori se numesc erori inerente.
Erori datorate metodei utilizate de exemplu, trunchierea unei serii infinite (mai precis
aproximarea sumei unei serii printr-o sum parial), sau considerarea unui termen cu un
rang suficient de mare pentru a aproxima limita unui ir. Aceste erori sunt numite erori
de metod sau erori de trunchiere.
Erori datorate reprezentrii datelor i efecturii calculelor ntr-o aritmetic cu precizie
limitat (de exemplu aritmetica virgulei mobile). Aceste erori se numesc erori de
rotunjire.
Erorile inerente sunt anterioare aplicrii metodei numerice, iar erorile de trunchiere i de
rotunjire apar n timpul calculului numeric.

Erori absolute i erori relative


Eroarea absolut = valoare aproximativ valoare exact
eroarea absoluta
Eroarea relativ =
valoare exacta
Din aceste definiii se obine:
Valoare aproximativ = (valoare exact )(1 + eroare relativ)
Eroarea absolut nu ine seama de ordinul de mrime al valorilor comparate. De exemplu,
o eroare n centimetri este mai important dac lungimea calculat este de 100 cm, dect dac
este de 100 km. De aceea, eroarea relativ se raporteaz la valoarea real. Adesea eroarea
relativ se exprim n procente:
eroarea absoluta
100%
valoare exacta
De obicei valoarea exact nu este cunoscut. De aceea nici eroarea (absolut sau relativ)
nu poate fi calculat, i doar se estimeaz valorile limit ale acesteia. Se utilizeaz majorani
pentru modulul erorii (sau norma erorii, dac se lucreaz ntr-un spaiu normat).

Erori ale datelor i erori de calcul


Considerm urmtoarea problem tipic: calculul valorii unei funcii f : R R pentru un
argument dat. Fie:
x = valoarea de intrare exact

2
METODE NUMERICE
x* = valoare de intrare aproximativ
f(x) = rezultatul dorit
f* = funcia aproximativ de calcul
Eroarea total este dat de:
f*(x*) f(x) = (f*(x*) f(x*)) (f(x*) f(x))
Deci
Eroare total = eroare de calcul + eroare propagat a datelor,
unde,
Eroare de calcul = f*(x*) f(x*)
Eroare a datelor = x* x.
Algoritmul nu are nici un efect asupra erorii propagate a datelor.

Erori de trunchiere i erori de rotunjire


Eroare de trunchiere = diferena dintre rezultatul exact (pentru datele de intrare curente)
i rezultatul furnizat de un algoritm dat utiliznd aritmetica exact.
Eroare de rotunjire = diferena dintre rezultatul produs de un algoritm dat utiliznd
aritmetica exact i rezultatul produs de acelai algoritm utiliznd o aritmetic cu precizie
limitat (de exemplu aritmetica virgulei mobile).
Eroarea de calcul este suma dintre eroarea de trunchiere i eroarea de rotunjire, dar de
obicei una dintre acestea predomin. De exemplu, dac aproximm derivata ntr-un punct prin
f ( x + h) f ( x)
f '( x)
h
h
eroarea de trunchiere este dominat de M , unde M = sup |f(t)| pentru t ntr-o
2
vecintate a lui x (acesta rezult aplicnd formula lui Taylor de ordinul doi n x). Dac domin
eroarea cu care se reprezint valorile lui f, atunci eroarea de rotunjire n formula de aproximare
2 h 2
considerat este mrginit de (h) M + .
. Deci eroarea total este mrginit de E =
h 2 h
M 1
Studiem variaia acestei funcii. Avem E ' ( h )= 2 2 i deci E ' ( h ) = 0 h = 2 . n
2 h M


plus E " 2 > 0 , deci funcia are punct de minim n h = 2 . Ca urmare, eroarea total
M M


este minim pentru h 2 . Pentru valori mai mici ale lui h eroarea total crete din cauza
M

3
METODE NUMERICE
creterii erorii de rotunjire, iar pentru valori mai mari ale lui h eroarea total crete din cauza
creterii erorii de trunchiere.

Erori forward i erori backward


S presupunem c dorim s calculm y = f(x), unde f : R R, dar obinem o valoare
aproximativ y*.
Eroare forward absolut = y = y* y
y y * y
Eroare forward relativ = = .
y y
Deseori eroarea y este dificil de estimat. Ideea analizei erorilor din punct de vedere a
erorilor backward este urmtoarea: soluia aproximativ y* este considerat soluia exact a unei
probleme cu datele iniiale modificate, mai precis se consider y* = f(x*), unde x* este o
perturbaie a lui x.
Eroare backward absolut = x = x* x, unde f(x) = y i f(x*) = y*.
x x * x
Eroare backward relativ = = .
x x
Soluia aproximativ y* se consider "bun" dac este soluie exact pentru o problem
cu datele "uor" perturbate.
De exemplu, dac aproximm 5 prin y* = 2.2, eroarea forward absolut este
|y| = |y* y| = |2.2 2.23606| 0.03606
iar eroarea forward relativ este aproximativ 1.6 %.
Pentru a calcula eroarea backward, observm c 4.84 = 2.2 .Eroarea beckward absolut
este
|x| =|x* x| = |4.84 5| 0.16,
iar eroarea backward relativ este aproximativ 3 %.

1.2. Condiionarea numeric. Factor de condiionare.

Problema se numete bine condiionat dac variaiile relative ale soluiei au acelai
ordin de mrime cu variaiile relative ale datelor de intrare ce le cauzeaz.
Problema este ru condiionat dac modificrile relative care au loc n soluie pot fi
mult mai mari dect cele ale datelor de intrare.
Factorul de condiionare se definete prin:
| variatia relativa a solutiei |
cond =
| variatia relativa adatelor de intrare |

4
METODE NUMERICE
S revenim la calculul y = f(x), unde f : R R. S presupunem c se obine valoarea
aproximativ y*. Fie x* cu proprietatea c f(x*) = y*. Avem
f ( x *) f ( x ) y
f ( x) y
=cond =
x * x x
x x
Problema este ru condiionat, dac factorul de condiionare
cond >> 1.
Factorul de condiionare acioneaz ca un "factor de amplificare" legnd eroarea forward
de eroarea backward:
| eroarea relativ forward | = cond | eroarea relativ backward |
De obicei factorul de condiionare nu este cunoscut exact i poate varia n funcie de
datele de intrare. De aceea se utilizeaz o estimaie margine superioar pentru cond. Deci
| eroarea relativ forward | < cond | eroarea relativ backward |.

Considerm un exemplu de estimare pentru factorul de condiionare. S presupunem c


se evalueaz funcia difereniabil f pentru data de intrare x i se obine valoarea aproximativ y*
corespunznd valorii
x* = x + x,
(mai precis y* = f(x*)). Eroarea absolut forward este
f(x + x) f(x) f (x ) x
iar eroarea relativ forward este
f ( x + x ) f ( x ) f ' ( x ) x

f ( x) f ( x)

Factorul de condiionare este


f ' ( x ) x
f ( x) xf ' ( x )
=
cond = .
x f ( x)
x

1.3. Stabilitatea algoritmilor

Noiunea referitoare la algoritmi analoag condiionrii numerice a problemelor este


stabilitatea. Intuitiv vorbind, stabilitatea numeric a unui algoritm nseamn ca acesta este ct
mai puin sensibil la perturbaiile din timpul calculului (erorile de rotunjire sau la alte
incertitudini numerice care pot aprea n procesul de calcul). Se spune c un algoritm de

5
METODE NUMERICE
rezolvare a unei probleme este stabil dac rezultatul produs este soluia exact a aceleai
probleme cu datele "uor" perturbate.
n cazul algoritmilor stabili efectul erorii de calcul nu este mai puternic dect efectul
erorii (mici) a datelor de intrare.
Un algoritm instabil poate amplifica mult perturbaiile date de erorile de calcul.

Acurateea metodelor
Acurateea se refer la apropierea soluiei calculate de soluia exact a problemei.
Stabilitatea algoritmului nu garanteaz acurateea. Aceasta depinde n egal msur de buna
condiionare a problemei i de stabilitatea algoritmului. Inacurateea poate rezulta din aplicarea
unui algoritm stabil unei probleme ru condiionate, ca i din aplicarea unui algoritm instabil
unei probleme bine condiionate.
Aplicarea (cu ajutorul calculatorului) unui algoritm stabil unei probleme bine
condiionat garanteaz obinerea soluiei cu o precizie bun, n sensul c eroarea relativ a
soluiei calculate fa de soluia exact este de ordinul de mrime al erorilor de reprezentare a
datelor n calculator.

1.4. Complexitatea algoritmilor

n evaluarea complexitii unui algoritm se ine cont de dou aspecte:


timpul necesar execuiei algoritmului (dat de numrul de operaii elementare);
spaiul de memorie necesitat de algoritm
n general nu este posibil s obinem simultan un timp de execuie mai scurt precum i un
necesar de spaiu de memorare mai mic. Progresele tehnologice din ultima vreme impun drept
criteriu primordial criteriul timp.
Fie n numrul de date de intrare pentru un anumit algoritm (eventual considerm n egal
cu numrul de locaii de memorie necesare pentru memorarea datelor iniiale). Fie T S (n) timpul
cerut de algoritm pentru un anumit set de n date de intrare S. Vom nota (n) timpul cerut de
algoritm n cazul cel mai defavorabil, i.e.:
(n) = sup {T S (n) : S este un set de date de intrare de dimensiune n }
n general nu este posibil s determinm o formul pentru (n). n acelai timp ne
intereseaz comportarea lui (n) pentru valori mari ale lui n. n acest sens introducem
urmtoarele notaii:
(n) = O(f(n)) dac C > 0, n 0 N cu (n) C f(n) n n 0
Interpretare: are o cretere mai lent dect f.

6
METODE NUMERICE
(n)
(n) = o(f(n)) dac lim =0
n f (n)

Interpretare: are o cretere strict mai lent dect f


(n) = (f(n)) dac C 1 , C 2 > 0, n 0 N cu C 1 f(n) (n) C 2 f(n) n n 0
Interpretare: are o cretere la fel de lent ca f
(n)
(n) ~ f(n) dac lim =1
n f (n)

Interpretare: are o cretere la fel de lent ca f


(n) = (f(n)) dac f(n) = O((n))
Interpretare: f are o cretere mai lent dect
O i o se folosesc pentru a stabili marginile superioare ale timpului de execuie, iar
pentru limita inferioar a timpului de execuie.
Un algoritm se numete algoritm polinomial dac (n) = O(P(n)), unde este timpul
cerut de algoritm, iar P este un polinom.

1.5 Reprezentarea numerelor. Cifre semnificative exacte.

Orice numr pozitiv poate fi reprezentat n baza 10 sub forma


a = m 10m + m1 10m1 + K + mn +1 10mn +1 + K
unde i sunt cifrele numrului a, cu m 0.
De exemplu:

314.15 = 3*102 + 1*101 + 4*100 + 1*101 + 5*102.


Situaiile concrete implic utilizarea unor numere aproximative cu un numr finit de
cifre. Toate cele n cifre zecimale reinute i , i = m, m 1, , m n + 1, se numesc cifre
semnificative. Unele dintre cifrele semnificative pot fi egale cu zero, cu excepia primei
cifre, m .

De exemplu, n numrul 0.00208 = 0*103 + 0*104 + 8*105, primele trei zerouri


nu sunt cifre semnificative, deoarece ele servesc numai pentru fixarea poziiei punctului
zecimal n scrierea zecimal a numrului.
Definiie. Spunem c un numr aproximativ a are n cifre semnificative exacte, n , m
1, K, m-n+1 dac eroarea absolut a numrului nu depete jumtate de unitate n poziia n,
numrnd de la stnga la dreapta, adic
1 mn +1
a 10 (1.6)
2

7
METODE NUMERICE
De exemplu, numrul a = 36.00 este n raport cu numrul exact A = 35.97 o aproximaie
cu trei cifre semnificative exacte. ntr-adevr, avnd n vedere c la | a A | = 0.03 <

1/2*10-1, rezult m n + 1 = 1, de unde n = 3 (m = 1).

Termenul "n cifre semnificative exacte" nu trebuie luat ad literam, deoarece nu este
obligatoriu ca ntr-un numr aproximativ a avnd n cifre exacte, primele n cifre semnificative
s coincid cu cifrele corespunztoare ale numrului exact A. De exemplu, numrul a = 9.995
este o aproximaie cu trei cifre corecte a numrului exact A = 10 i totui are toate cifrele
diferite.
Teorem. Dac un numr pozitiv a are n cifre exacte, eroarea relativ a a acestui
numr satisface inegalitatea

10 ( )
1 n 1
a (1.7)
2 m
unde m este prima cifr semnificativ a numrului a.
ntr-adevr,

a=
a

(1/ 2 ) 10 m n +1

1
10 ( )
n 1
m 1
| a | m 10 + m1 10 + K 2 m
m

Numrul de cifre semnificative exacte corespunztor unei erori relative a date este
conform relaiei (1.7).
n 1 log10 ( 2a m ) (1.8)

De exemplu, numrul aproximativ a = 3.15, utilizat n locul numrului exact A = ,


are n <= 2.72 , adic dou cifre exacte.
Numrul aproximativ a = 3.14 va avea n <= 3.29, adic trei cifre exacte.
Pentru numrul de cifre semnificative exacte, se poate obine o estimare grosier ns
foarte util n practic, considernd c eroarea relativ are forma
a 10 p i m 5
np (1.9)
Acest criteriu poate fi utilizat n situaiile n care, cunoscndu-se eroarea relativ a unui
numr, se impune estimarea rapid ns nu neaprat foarte precis a numrului de cifre exacte
ale acestuia.

1.6 Erori ale operaiilor elementare

1.6.1. Eroarea sumei

8
METODE NUMERICE
Teorem. Eroarea absolut pentru suma algebric a mai multor numere aproximative
nu depete suma erorilor absolute ale numerelor.
ntr-adevr, considernd suma algebric a numerelor aproximative a 1 , a 2 ,, a n :
a= a1 a2 K an
avem n mod evident
a = a1 a2 K an

i deci
| a || a1 | + | a2 | + K + | an |
Pentru eroarea absolut a sumei avem, prin urmare,
a a1 + a2 + K + an (1.10)
iar pentru eroarea absolut limit,
* a = a1 + a2 + K + an (1.11)
Din aceast relaie rezult c eroarea absolut limit nu poate fi mai mic dect eroarea
absolut a celui mai puin exact termen din sum
* a max ( a1 , a2 , K , an ) (1.12)

n consecin, ceilali termeni, cu grad de precizie mai mare (cu erori absolute mai
mici) nu pot ameliora precizia rezultatului.
Teorem. Dac toi termenii unei sume au acelai semn, eroarea relativ (limit) a
sumei nu depete cea mai mare eroare relativ a termenilor.

1.6.2 Eroarea diferenei

Considerm diferena a dou numere aproximative: a = a 1 a 2 .


Conform relaiei (1.11), eroarea absolut limit a diferenei este egal cu suma erorilor
absolute ale celor doi termeni
* a = a1 + a2
si eroarea relativ limit a diferenei va fi
* a a1 + a2
* a= =
A | A1 A2 |
unde A este valoarea exact a modulului diferenei.
Dac numerele aproximative a 1 i a 2 sunt foarte apropiate ca valoare, atunci diferena
exact A este mic i, chiar n condiiile n care erorile relative a1 i a2 sunt mici, eroarea
relativ limit a diferenei, *a, poate fi foarte mare.

9
METODE NUMERICE
Pentru a exemplifica cele artate mai sus, considerm numerele aproximative a 1 =
47.132 i a 2 = 47.111, fiecare avnd cinci cifre semnificative exacte, adic o eroare absolut de
cel mult 0.0005. Diferena a = 47.132 47.111 = 0.021 are doar dou cifre semnificative
exacte, iar eroarea absolut limit a diferenei este
*a = 0.0005 + 0.0005 = 0.001
i vom avea urmtoarele erori relative limit
0.0005 0.0005 0.001
=
a1 0.00001 , =
a2 0.00001 , * a1= 0.05
47.132 47.111 0.021

Dup cum se observ, eroarea relativ limit a diferenei este de aproximativ 5000 de
ori mai mare dect erorile relative ale termenilor. De aceea este de dorit ca n calcule numerice
s se rescrie expresiile care implic scderea unor numere aproximativ egale.

10

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