SPOJ Problem Set (main)
4158. Metoda Gaussa-Seidela
Problem code: GAUSSAID
Projekt nr 3
Zaimplementować metodę Gaussa-Seidela rozwiązywania układów równań liniowych postaci Ax = b.
Oprócz rozwiązania zadania w systemie SPOJ należy zaprezentować rozwiązanie wtrakcie zajęć
projektowych. Dokładność obliczeń, wektor początkowy i maksymalna liczba iteracji powinny być
łatwo modyfikowalnymi elementami programu. Dane do demonstracji rozwiązania proszę
przygotować, takabyujawniały różne zachowania algorytmu i implementacji. Zbadać i przedstawić w
postaci wykresów zależności: liczby iteracji od wyboru wekotra początkowego (w senise odległości
wektora startowego od rozwiązania dokładnego), liczby iteracji od dokładności obliczeń.
Uwaga: implementacja sprawdzania warunku zbieżności (patrz wykład i skrypt T.Ratajczaka) jest
konieczna, mimo że SPOJ tego nie wymaga. Podstawą oceny zadania jest przedstawienie
sprawozdania i rozmowa z prowadzącym zajęcia (chyba że prowadzący ustalił inaczej). Liczba
uzyskanych punktów na SPOJ-u ma więc charakter informacyjny. Macierz odwrotną proszę
wyznaczyć stosując metodę Jordana.
Zadanie nadobowiązkowe: zaimplementować dowolną inną metodę iteracyjną i porównać z metodą
Seidela-Gaussa. Sposób porównania jest inwencją studenta.
Input
Pierwszy wiersz zawiera liczbę przypadkow testowych t. Następnie dla każdego przypadku podany
jest rozmiar układu równań n. W kolejnych n wierszach, elementy macierzy kwadratowej n*n i w
n+1
-szym wierszu wektor wyrazow wolnych (transponowany).
Output
W kolenych wierszach współrzędne wektorów wynikowych obliczone z dokładnością do 10
-6.
Example
Input:
2
3
5 0 0
1 5 1
1 0 4
15 48 3
3
4 0 1
2 4 2
1 2 5
45 44 58
1
Output:
3 9 0
9 2 9
Added by:
Piotr
Date:
2009-04-01
Time limit: 1s
Source limit:50000B
Languages: C C99 strict C++ 4.0.0-8 C++ 4.3.2
2