26.12.2014 Views

metode de calcul numeric matriceal. algoritmi fundamentali

metode de calcul numeric matriceal. algoritmi fundamentali

metode de calcul numeric matriceal. algoritmi fundamentali

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!