10.07.2015 Views

Calcul matriceal elementar

Calcul matriceal elementar

Calcul matriceal elementar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

16 SEMINAR 1. CALCUL MATRICEAL ELEMENTARSoluţia a) Scriem mai întâi un algoritm eficient pentru calcularea produsului X ←X ∗ (I n + uv T ), unde X este o matrice dată iar u, v ∈ IR n sunt vectori coloană daţi. EvidentY = X ∗ (I n + uv T ) = X + X ∗ u ∗ v T , astfel că Y (i, j) = X(i, j) + X(i, :) ∗ u ∗ v(j) =X(i, j) + σ ∗ v(j) unde scalarul σ = X(i, :) ∗ u = ∑ nk=1X(i, k)u(k) depinde de i dar nudepinde de j. Avem astfel următorul algoritm eficient:Algoritmul 1.12. Fiind dată matricea X ∈ IR n×n şi vectorii coloană u, v ∈ IR n ,acest algoritm calculează X ← X ∗ (I n + uv T ).1. pentru i = 1 : n1. σ = 02. pentru k = 1 : n1. σ = σ + x ik ∗ u k3. pentru j = 1 : n1. x ij = x ij + σ ∗ v jAcum, introducând numele Xuv pentru procedura de mai sus şi apelând secvenţa deinstrucţiuni de mai sus prinX = Xuv(X, u, v)putem rezolva problema folosind urmatoarea procedură:Algoritmul 1.131. X = I n2. pentru k = 1 : n1. X = Xuv(X, U(:, k), V (k, :))Observaţi că algoritmul 1.12 necesită O(n 2 ) operaţii, deci am rezolvat problema înmulţiriia n matrice cu o complexitate de numai O(n 3 ) flopi.b) Metoda eficientă de a calcula determinantul se bazează pe faptul că dacă u, v ∈ IR nsunt vectori coloană, atunci det(I n + uv T ) = 1 + v T u (demonstraţi, spre exemplu folosindinducţia matematică). Aşadar,şi algoritmul estedet X =Algoritmul 1.14n∏(1 + V (k, :) ∗ U(:, k)) =k=11. δ = 12. pentru k = 1 : n1. ν = 12. pentru k = 1 : n1. ν = ν + v ki ∗ u ik3. δ = δ ∗ νn∏(1 +k=1n∑V (k, i) ∗ U(i, k))i=1

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

Saved successfully!

Ooh no, something went wrong!