Documente Academic
Documente Profesional
Documente Cultură
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.
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
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 )
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
. Pentru valori mai mici ale lui h eroarea total crete din M
cauza creterii erorii de rotunjire, iar pentru valori mai mari ale lui h eroarea total crete din cauza creterii erorii de trunchiere.
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
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
xf (x ) f (x )
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.
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.
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
(n ) =0 f (n )
(n)
n f
(n)
=1