Documente Academic
Documente Profesional
Documente Cultură
1
analitic, ci numai prin metode aproximative cu care opereaza analiza
numerică.
Astfel, metodele numerice de calcul sunt metode aproximative, iar
disciplina aparŃine domeniului matematicii aplicate.
2
mici patrate, precum si a formulelor optimale de derivare si integrare
numerica.
Vom intelege prin problema algoritmica o functie total definita P : I → F ,
unde I este multimea informatiilor initiale (intrarile problemei) iar F este
multimea informatiilor finale. Presupunem ca I si F sunt cel mult
numarabile. Din multitudinea de algoritmi existenti pentru rezolvarea unei
probleme se va alege cel mai “performant”, adica sa fie usor de inteles,
codificat, modificat, depanat si sa utilezeze in mod eficient resursele.
Calitatea unui algoritm care se presupune ca permite obtinerea solutiei
corecte este apreciata prin eficienta sa spatiala (memoria necesara datelor si
programului) si temporala (timpul de calcul necesar obtinerii solutiei).
De exemplu, algoritmul pentru inmultirea matricelor patrate n dimensionale
necesita 3n^2 locatii de memorie (in fiecare memorandu-se un numar real,
element al matricei A,B sau C). Daca dimensiunea n a matricei creste de 10
ori, spatiul necesar creste de 100 ori, motiv pentru care se spune ca
algoritmul este de ordinul 2 si se scrie M = O(n2).
Eficienta unui algortitm se regaseste deci si in timpul consumat prin care
intelegem timpul consumat in numar de operatii (in virgula mobila).
Sa notam cu T = TA ( p ) numarul de operatii effectuate de algoritmul A
pentru rezolvarea unei instante p = P(i ), i ∈ I si vom asocia problemei
rezolvate un numar g (P ) numit dimensiunea problemei- numarul datelor de
intrare.
Timpul se exprima ca o functie de dimensiunea problemei, functie numita
complexitatea in timp a algoritmului T = f (n) .
Prin complexitate timp înŃelegem timpul necesar execuŃiei programului.
Înainte de a evalua timpul necesar execuŃiei programului ar trebui să avem
3
informaŃii detaliate despre sistemul de calcul folosit. Pentru a analiza teoretic
algoritmul, vom presupune că se lucrează pe un calculator "clasic", în sensul
că o singură instrucŃiune este executată la un moment dat. Astfel, timpul
necesar execuŃiei programului depinde de numărul de operaŃii elementare
efectuate de algoritm. Privind din perspectiva calculului paralel, acest mod
de analiză a complexităŃii timp a unui algoritm va fi, probabil, total
inadecvat pentru viitoarele generaŃii de calculatoare. Dar pentru algoritmii
"clasici" oferă un criteriu general de comparaŃie, fără a fi necesară
implementarea şi rularea pe un calculator. De altfel, din motive practice, pe
calculator nu putem testa algoritmul pentru cazuri oricât de mari şi nu putem
obŃine informaŃii asupra comportării în timp a algoritmilor decât pentru
seturi particulare de date de intrare.
Primul pas în analiza complexităŃii timp a unui algoritm este
determinarea operaŃiilor elementare efectuate de algoritm şi a costurilor
acestora. Numim operaŃie elementară o operaŃie al cărei timp de execuŃie
este independent de datele de intrare ale problemei. Timpul necesar
execuŃiei unei operaŃii elementare poate fi diferit de la o operaŃie la alta, dar
este fixat, deci putem spune că operaŃiile elementare au timpul mărginit
superior de o constantă. Fără a restrânge generalitatea, vom presupune că
toate operaŃiile elementare au acelaşi timp de execuŃie, fiind astfel necesară
doar evaluarea numărului de operaŃii elementare, nu şi a timpului total de
execuŃie a acestora. Analiza teoretică ignoră toŃi factorii care depind de
maşină sau de limbajul de programare ales şi se axează doar pe
determinarea ordinului de mărime a numărului de operaŃii elementare.
Scopul analizei teoretice a algoritmilor este de fapt determinarea unor
funcŃii care să limiteze superior, respectiv inferior comportarea în timp a
4
algoritmului. FuncŃiile depind de caracteristicile relevante ale datelor de
intrare.
Notăm TA(n) timpul necesar execuŃiei algoritmului A.
lui f(n) ( notat O(f(n)) ), dacă şi numai dacă există c > 0 şi n0∈N,
∀n ≥ 2.
Mai general, dacă TA(n) = an+b, a > 0, atunci TA(n)∈O(n) pentru că există
11n2, ∀n ≥ 5.
Mai general, dacă TA(n) = an2+bn+c, a > 0, atunci TA(n)∈O(n2), pentru
7⋅ 2n,∀n ≥ 4.
ObservaŃii
1. NotaŃia O oferă o limită superioară a timpului de execuŃie a unui
algoritm.
∈O(1) necesită un timp de execuŃie constant.
2. Un algoritm cu TA(n)∈
5
∈O(nk) se numeşte polinomial, iar dacă TA(n)∈
cu TA(n)∈ ∈O(2n) algoritmul
se numeşte exponenŃial.
max := a[[1]];
for i := 2 to n do
if a[[i]] > max then max := a[[i]];
6
solutiilor unor ecuatii operatoriale sau a unor sisteme de ecuatii liniare, prin
metode generate de procedee de aproximare a functiilor, accentul se va pune
pe prezentarea cu precadere, a spatiilor de functii.
In general, intr-o problema de aproximare intervin trei elemente esentiale:
1. o multime B ale carei elemete urmeaza a fi aproximate
2. o multime A a aproximatiilor ( cu elementele careia se aproximeaza
elementele lui B)
3. un criteriu prin care se selecteaza aproximatia din A a unui element
dat din B
De cele mai multe ori criteriul de selectie are la baza eroarea de aproximare
Nu sunt excluse nici situatiile in care aproximatia din A a unui element a lui
B se alege astfel incat ea sa fie usor de calculate sau cumularea erorilor de
calcul sa fie cat mai redusa.
Un loc aparte il ocupa problemele in care pentru un element dat f ∈ B se
cere determinarea elementului lui A care aproximeaza cel mai bine pe f sau
elemental din A care aproximeaza pe f cu o eroare dinainte data. Daca
multimea A nu contine nici un element care sa aproximeze pe f cu eroarea
prescrisa, ea poate fi extinsa astfel incat conditia pusa sa fie satisfacuta. De
exemplu daca A este multimea functiilor polinomiale de grad cel mult n, Pn ,
extinderea ei se poate face prin marirea gradului n, prin trecerea la multimea
functiilor spline, a functiilor rationale, etc.
Apare astfel necesitatea definirii erorii de aproximare a lui f ∈ B prin
elementul din A, a compararii mai multor aproximatii ale lui f cu scopul de a
decide care dintre ele este mai convenabila sau chiar la determinarea celei
mai bune aproximatii din A a lui f.
7
In unele cazuri definrea erorii poate depinde si de natura multimii B, de
structurile cu care este inzestrata. De exemplu daca ( B, d ) este un spatiu
metric, A ⊂ B si f ∈ B , eroarea de aproximare a lui f prin g ∈ A se masoara
8
1. p ( f + g ) ≤ p ( f ) + p ( g ) oricare ar fi f , g ∈ B
2. p (αf ) = α p ( f ) , oricare ar fi α ∈ K si f ∈ B
se numeşte seminorma pe B.
O seminorma p definite pe spatiul liniar B se numeste norma daca din
p ( f ) = 0 rezulta f = 0 .
Spatiul liniar B (peste corpul K) inzestrat cu o norma p se numeste spatiu
liniar normat.
Proprietati ale normei:
1. f = 0 implica f = 0
2. f + g ≤ f + g
3. αf = α f
Daca B este un spatiu liniar normat atunci
d ( f , g) = f − g , f , g ∈ B
este o distanta in B.
Deci orice spatiu liniar normat este un spatiu metric.
Fie { f n }n∈N un sir de elemete din B si f ∈ B . Se spune ca sirul converge in
norma la f daca:
lim f n − f = 0 .
n→∞
fm − fn ≤ ε
daca m, n > N ε .
Un sir convergent este un sir Cauchy.
9
Un spatiu liniar normat se numeste complet daca orice sir Cauchy de
elemente ale sale este convergent.
Un spatiu liniar normat si complet se numeste spatiu Banach.
Daca B este un spatiu liniar cu produs scalar, norma definite pe B prin
f = < f , f > se spune ca este indusa de produsul scalar.
Un spatiu liniar normat cu norma indusa de produsul scalar se numeste
spatiu prehilbertian.
Un spatiu prehilbertian si complet se numeste spatiu Hilbert.
Deci un spatiu Hilbert este un spatiu Banach cu norma indusa de un produs
scalar.
Exemple de spaŃii de funcŃii
1. C ([a, b]) - spatiul funcŃiilor continue pe intervalul [a, b] având norma
f = sup f ( x)
x∈[ a ,b ]
2. C p ([a, b]) -spaŃiul funcŃiilor f : [a, b] → R care admit derivate continue pâna
la ordinul p inclusiv. In raport cu norma
p
f p
= ∑ amax
≤ x ≤b
f k ( x)
k =0
f B
= sup f ( x)
a ≤ x ≤b
B ([a, b]) este un spaŃiu Banach.
10
1.3 Probleme numerice
normelor f p
, etc.
11
3. Rezolvarea unor ecuatii analitice: determinarea functiilor (sau
valorilor de functii) solutii ale unei ecuatii operatoriale, cum ar fi
ecuatiile diferentiale ordinare sau cu derivate partiale, ecuatiile
integrale, etc
4. Probleme de optimizare: determinarea unor valor numerice particulare
ale unor functii, care optimizeaza (minimizeaza sau maximizeaza) o
functie obiectiv cu restrictii sau fara restrictii.
Problemele matematice constructive, din care provin problemele
numerice, pot fi privite ca o aplicatie, abstracta F : X → Y intre doua
spatii liniare normate. In functie de care dintre cantitatile y, x sau F este
necunoscuta in ecuatia
Fx = y
avem de a face cu o problema directa, o problema inversa sau o problema
de identificare.
12