Sunteți pe pagina 1din 8

Metode Numerice Curs 1

I. 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.

I.1. Elemente de teoria erorilor


Sursele erorilor i clasificarea lor 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 ntrun 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.

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

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 relativ =
eroare absolut valoare exact

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:
eroare absolut valoare exact

. 100 %

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:RR pentru un argument dat. Fie: x x* f* = valoarea de intrare exact = valoare de intrare aproximativ = funcia aproximativ de calcul f*(x*) - f(x) = (f*(x*) - f(x*)) - (f(x*) - f(x)) Deci

f(x) = rezultatul dorit Eroarea total este dat de:

Metode Numerice Curs 1

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 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 ) h h , unde M = sup f (t ) pentru t ntr-o 2

utiliznd o

f (x )

eroarea de trunchiere este dominat de M

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 considerat este mrginit de total este mrginit de E(h) = M Avem E (h ) = 2 . Deci eroarea h

h 2 + . Studiem variaia acestei funcii. 2 h

M 1 -2 2 i deci E (h ) = 0 <=> h = 2 . n plus, E 2 M >0, M 2 h

deci funcia are punct de minim n h = 2 minim pentru h 2

. Ca urmare, eroarea total este M

. Pentru valori mai mici ale lui h eroarea total crete din M

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

cauza 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 Eroare forward relativ =


y*y y = . 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*. Eroare backward relativ =
x*x x = . x x

Soluia aproximativ y* se consider "bun" dac este soluie exact pentru o problem cu datele "uor" perturbate. De exemplu, dac aproximm 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 absolut este | x | =| x* - x | = | 4.84 - 5 | 0.16, iar eroarea backward relativ este aproximativ 3 %. 4.84 =2.2. Eroarea backward 5 prin y* = 2.2, eroarea forward absolut

Metode Numerice Curs 1

I.2. Condiionarea numeric. Factor de condiionare.


Problema se numete bine condiionat dac variaiile relative ale soluiei au acelai ordin de mrime cauzeaz. Problema este ru condiionat dac modificrile relative care au loc n soluie pot fi mult mai mari dect cele ale datelor de intrare. cu variaiile relative ale datelor de intrare ce le

Factorul de condiionare se definete prin:


cond =
variatia relativ a solutiei variatia relativ a datelor de intrare

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
y f (x *) f (x ) y f (x ) 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

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

iar eroarea relativ forward este


f (x + x ) f (x ) f (x )x f (x ) f (x )

Factorul de condiionare este cond


f (x )x f (x ) x x

xf (x ) f (x )

I.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 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.

Metode Numerice Curs 1

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.

I.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 TS(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 {TS(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, n0 N cu (n) C f(n) n n0

Interpretare: are o cretere mai lent dect f


(n) = o(f(n)) dac lim
n

(n ) =0 f (n )

Interpretare: are o cretere strict mai lent dect f


(n) = (f(n)) dac C1, C2 > 0, n0N cu C1f(n) (n) C2f(n) n n0

Interpretare: are o cretere la fel de lent ca f

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

(n) ~ f(n) dac lim

(n)

n f

(n)

=1

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.

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