Exerciții#
Această listă de exerciții este pur opțională în înțelegerea materiei; pe de altă parte, poate fi de mare ajutor în aprofundarea ei!
De asemenea, aceste exerciții sunt, într-o oarecare măsură, comparabile cu nivelul de dificultate asociat cu testele de laborator pe care eu le compun.
Probleme propuse#
Ex. 1. Considerați cunoscută factorizarea Crout a unei matrice \(A\in\mathbb{R}^{n\times n}\), anume \(A=LU\). Construiți factorizarea Doolittle pentru matricea transpusă, adică pentru \(A^T\).
Ex. 2. Explicați motivul pentru care este nevoie să impuneți valori pe diagonala principală a uneia dintre matricele \(L\) sau \(U\) din cadrul factorizării LU.
Ex. 3. Se pot utiliza valori nule în locul valorilor de \(1\) impuse pe diagonala principală în cadrul factorizării LU? Justificați.
Ex. 4. Care este problema practică cu modelul matematic prin care se soluționează un sistem de ecuații liniare? Cum ajută factorizarea LU?
Ex. 5. Presupuneți că puteți executa în paralel oricâte calcule vă doriți. Rularea a \(m\) calcule în paralel se face într-o singură unitate de timp, \(\forall m\in\mathbb{N}\). De câte unități de timp ar fi nevoie ca să factorizați Doolittle o matrice oarecare?
Ex. 6. Fie \(A\) o matrice superior triunghiulară, dar nu unitriunghiulară. Cum ați proceda pentru a calcula factorizarea sa Doolittle? Dar factorizarea Crout? Care este complexitatea finală a acestui algoritm?
Ex. 7. Scrieți formulele pentru o versiune modificată a factorizării Doolittle în care diagonala principală a lui \(L\) formează o progresie geomerică cu pas \(q\in\mathbb{R}_+\).
Ex. 8. Să se calculeze factorizarea Crout pentru matricea următoare:
\[A=\begin{bmatrix}1&-1&2\\3&3&-5\\2&0&0\end{bmatrix}\]Ex. 9. Urmăriți cu atenție codul de mai jos și explicați ce încearcă să realizeze. De ce nu funcționează codul? Explicați ce modificări pot fi făcute în acest sens.
function [B, C] = f(A)
[n, n] = size(A);
B = eye(n);
C = zeros(n);
for k = [1 : n]
for i = [k+1 : n]
S = 0;
for t = [k+1 : n]
S += B(i,t) * C(t,k);
end
B(i,k) = (A(i,k) - S) / C(k,k);
end
for j = [k : n]
S = 0;
for t = [1 : k-1]
S += B(k,t) * C(t,j);
end
C(k,j) = A(k,j) - S;
end
end
end
Ex. 10. Considerați deja implementată factorizarea LU [L, U] = Crout(A)
. Scrieți o funcție [L, D, U] = LDU(A)
ce realizează factorizarea LDU pentru o matrice primită ca parametru.
Ex. 11. Fie \(A = LU\) o factorizare LU oarecare. Totodată, cunoaștem \(A = L' + D' + U'\), unde \(L'\) și \(U'\) sunt matrice inferior/superior triunghiulare fără valori nenule pe diagonala principală, iar \(D'\) este o matrice diagonală. Cum se poate forma factorizarea \(A = L''DU''\)?
Sursă: lucrare 1 laborator, var A, 2024
Licență#
The book "Metode Numerice", written by Valentin-Ioan Vintilă, is licensed under CC BY-NC-SA 4.0