LABORATORIUM 4 Grupa P, czwartek 11.04.2024, godz 12:15
Napisz skrypt, który - korzystając z iteracyjnej metody potęgowej - wyszukuje najmniejszą wartość własną i wektor jej odpowiadający dla następującej macierzy 3x3:
Otrzymane wyniki porównaj z wartościami zwracanymi przez funkcję wbudowaną numpy.linalg.eig(), zastosowaną do macierzy wejściowej \(\mathbf{A}\). Początkowo przyjmij małą liczbę iteracji, np. 10.
Wymagania odnośnie zadania (w nawiasach podana punktacja):
Zadaniem skryptu jest wyznaczenie specyficznego wektora własnego zadanej macierzy \(\mathbf{A}\) oraz odpowiadającą jej wartość własną, korzystając z metody potęgowej, przy użyciu dekompozycji LU. Metoda ta została przedstawiona na wykładzie 4 (slajd 27). Do wyznaczenia dekompozycji LU nalezy użyć wbudowanej funkcji scipy.linalg.lu(), a do rozwiązania równań typu $\mathbf{A}\mathbf{x}=\mathbf{y}$ należy użyć wbudowanej funkcji numpy.linalg.solve(). [2.0p.]
Skrypt ma też sprawdzić jak zmienia się wartość własna w zależności od maksymalnej liczby iteracji $k$ ($k=1..20$). Wynik powinien być przedstawiony na wykresie. [1.0p.]
Na koniec skrypt ma wyznaczyć wszystkie wartości własne oraz wektory własne zadanej macierzy, używając do tego celu funkcji wbudowanej numpy.linalg.eig(). Wyznaczona w ten sposób najmniejsza wartość własna powinna zostać naniesiona na wykres w postaci linii (np. za pomoca funkcji plt.axhline()). [0.5p.]
Wyniki (tj. macierz wejściową, najmnięjsza wartość własna, a także wartości własne i wektory własne z funkcji numpy.linalg.eig()) mają zostać wyświetlone w sposób czytelny, tj. umożliwiający szybkie zorientowanie się, że zadanie zostało wykonane poprawnie bez potrzeby zaglądania w kod. [0.5p.]