metode de calcul numeric matriceal. algoritmi fundamentali
metode de calcul numeric matriceal. algoritmi fundamentali
metode de calcul numeric matriceal. algoritmi fundamentali
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
24 CAPITOLUL 1. ALGORITMI ELEMENTARI<br />
Comentarii. Instrucţiunea Pentru i = 1 : n înseamnă repetarea execuţiei, pentru<br />
toate valorile indicate ale indicelui i, a instrucţiunilor ce îi urmează (până la prima<br />
instrucţiune aflată la acelaşi nivel cu Pentru). Instrucţiunile sunt referite prin<br />
secvenţe <strong>de</strong> numere cuprinzând (<strong>de</strong> la dreapta spre stânga) numărul din algoritm al<br />
instrucţiunii respective şi numerele instrucţiunilor cărora le este subordonată (<strong>de</strong> la<br />
cea mai apropiată la cea mai <strong>de</strong>părtată). În algoritmul Saxpy, prima instrucţiune<br />
este 1, a doua 1.1.<br />
Contorizând operaţiile executate <strong>de</strong> algoritmul 1.1, constatăm că fiecare execuţie<br />
a instrucţiunii 1.1 necesită 2 flopi (o înmulţire şi o adunare), <strong>de</strong>ci, în total, sunt<br />
necesari N op = 2n flopi.<br />
În continuare, Saxpy va fi privită ca operaţie elementară şi va fi apelată prin<br />
Saxpy(α, x, y); ea face parte din grupul operaţiilor <strong>de</strong> nivel 1, împreună cu alte<br />
operaţii, dintre care unele vor fi prezentate ulterior 3 .<br />
Aşa cum este normal, Saxpy şi celelalte operaţii <strong>de</strong> nivel 1 sunt executate<br />
mai eficient pe <strong>calcul</strong>atoare vectoriale. De aceea, pe astfel <strong>de</strong> <strong>calcul</strong>atoare, există<br />
tendinţa <strong>de</strong> a scrie toţi <strong>algoritmi</strong>i în termeni <strong>de</strong> operaţii <strong>de</strong> nivel 1 şi nu prin operaţii<br />
aritmetice elementare.<br />
♦<br />
1.2 Produs scalar. Norme. Ortogonalitate<br />
Produsul scalar este o funcţie f : R n × R n −→ R cu proprietăţile:<br />
1. f(x, y) = f(y, x) (comutativitate);<br />
2. f(x, y + z) = f(x, y) + f(x, z) (distributivitate);<br />
3. f(x, αy) = αf(x, y);<br />
4. f(x, x) ≥ 0 şi f(x, x) = 0 ⇔ x = 0 (pozitivitate).<br />
Produsul scalar standard în R n , cel pe care îl vom utiliza <strong>de</strong> obicei, se <strong>de</strong>fineşte<br />
prin f(x, y) not<br />
= y T x, un<strong>de</strong> y T x <strong>de</strong>f<br />
= ∑ n<br />
i=1 x iy i . Invităm cititorul să verifice satisfacerea<br />
celor patru proprietăţi ale produsului scalar.<br />
Spaţiul R n împreună cu produsul scalar uzual este un spaţiu euclidian (în el este<br />
valabilă o geometrie similară cu cea din R 2 şi R 3 , cunoscută din liceu).<br />
Norme. Prin normă se asociază unui vector o mărime (lungime). O normă<br />
vectorială este o funcţie ν : R n → R + , notată <strong>de</strong> obicei ν(x) = ‖x‖, care satisface<br />
următoarele condiţii:<br />
1. ‖x‖ > 0, ∀x ∈ R n , x ≠ 0 (pozitivitate);<br />
2. ‖αx‖ = |α| · ‖x‖, ∀x ∈ R n , ∀α ∈ R (omogenitate);<br />
3. ‖x + y‖ ≤ ‖x‖ + ‖y‖, ∀x, y ∈ R n (inegalitatea triunghiului).<br />
Se <strong>de</strong>duce imediat că ‖0‖ = 0 şi ‖ − x‖ = ‖x‖.<br />
Cea mai utilizată normă vectorială este cea indusă <strong>de</strong> produsul scalar şi se<br />
numeşte normă euclidiană sau normă 2:<br />
‖x‖ 2 = √ ∑<br />
x T x = √ n x 2 i . (1.3)<br />
3 Numerotarea nivelelor se face după exponentul lui n din expresia numărului <strong>de</strong> flopi necesari<br />
la execuţie; operaţiile <strong>de</strong> nivel 1 necesită O(n) flopi, cele <strong>de</strong> nivel 2 necesită O(n 2 ) flopi etc.<br />
i=1