MN08LAB

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania


Ćwiczenia: układy liniowe z macierzami rzadkimi

Ćwiczenie: Metoda Richardsona

Jedną z najprostszych klasycznych metod iteracyjnych dla równania Ax=b jest metoda Richardsona zadana wzorem

xk+1=xk+τ(bAxk),

gdzie τ jest pewnym parametrem. Gdy τ=1, mamy do czynienia ze zwykłą metodą iteracji prostej, która najczęściej nie będzie zbieżna, dlatego wybór parametru τ jest kluczowy dla skuteczności metody.

Dla A symetrycznej dodatnio określonej sprawdź, przy jakich założeniach o τ metoda będzie zbieżna do rozwiązania x* z dowolnego wektora startowego x0 i oceń szybkość tej zbieżności.

Testuj na macierzy jednowymiarowego laplasjanu L różnych wymiarów. Jak najefektywniej zaimplementować mnożenie przez L?

Ćwiczenie

Zaimplementuj operacje:

  • mnożenia macierzy A przez wektor x,
  • wyłuskania wartości elementu Aij,
  • zmiany wartości pewnego zerowego wyrazu macierzy na niezerową,

jeśli macierz jest zadana w formacie

  • AIJ,
  • CSC,
  • CSR.

Przetestuj dla kilku macierzy z kolekcji MatrixMarket.

Rozwiązanie

Ćwiczenie

Jak tanio rozwiązywać układ równań z macierzą cykliczną trójdiagonalną, tzn.

A=(a1c1b1b2a2c2b3a3cN1cNbNaN)

Dla uproszczenia załóżmy, że macierz jest dodatnio określona i symetryczna.

Zaimplementuj opracowaną metodę, korzystając z BLASów i LAPACKa.

Wskazówka
Rozwiązanie

Ćwiczenie: CGNE

Ktoś mógłby sugerować, że skoro CG działa tylko dla macierzy symetrycznych, to dowolny układ Ax=b z macierzą nieosobliwą można transformować do równoważnego mu układu równań normalnych

ATAx=ATb,
,

którego macierz ATA jest już oczywiście macierzą symetryczną i dodatnio określoną.

Wskaż potencjalne wady tej metody i podaj sposób jej implementacji.

Wskazówka
Rozwiązanie