Matrix Algorithms - Corelab
Matrix Algorithms - Corelab Matrix Algorithms - Corelab
Matrix Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου
- Page 2 and 3: Περιεχόμενα παρουσ
- Page 4 and 5: Πολλαπλασιασμός πί
- Page 6 and 7: Πολλαπλασιασμός πι
- Page 8 and 9: Βελτίωση της απόδο
- Page 10 and 11: Επίλυση τριγωνικού
- Page 12 and 13: Επίλυση τριγωνικού
- Page 14 and 15: Αντιστροφή Τριγωνι
- Page 16 and 17: Επίλυση τριδιαγώνι
- Page 18 and 19: Επίλυση τριδιαγώνι
- Page 20 and 21: Παρατηρήσεις • Δε
- Page 22 and 23: Parallel Prefix Algorithms (1/2) α
- Page 24 and 25: Παρατηρήσεις • Ο σ
- Page 26 and 27: LU-Παραγοντοποίηση
- Page 28 and 29: Gaussian Elimination(1/ (1/5) Χρ
- Page 30 and 31: Gaussian Elimination(3/5) • Γι
- Page 32 and 33: Gaussian Elimination(5/5) Η ίδι
- Page 34 and 35: Jacobi Relaxation (1/2) Ax = b σύ
- Page 36 and 37: Gauss - Seidel Relaxation (1/2) Π
<strong>Matrix</strong> <strong>Algorithms</strong><br />
Παρουσίαση στα πλαίσια του<br />
μαθήματος «Παράλληλοι<br />
Αλγόριθμοι»<br />
Γ. Καούρη<br />
Β. Μήτσου
Περιεχόμενα παρουσίασης<br />
• Πολλαπλασιασμός πίνακα με διάνυσμα<br />
• Πολλαπλασιασμός πινάκων<br />
• Επίλυση τριγωνικού συστήματος γραμμικών<br />
εξισώσεων (αντιστροφή<br />
πίνακα)<br />
• Επίλυση τριδιαγώνιου συστήματος εξισώσεων<br />
• Επίλυση τυχαίου συστήματος εξισώσεων με<br />
άμεσες μεθόδους<br />
• Επίλυση τυχαίου συστήματος γραμμικών και<br />
διαφορικών εξισώσεων με επαναληπτικές<br />
μεθόδους
Πολλαπλασιασμός πίνακα με<br />
διάνυσμα (1/2)<br />
Πρόβλημα: Α = (α(<br />
ij ) ΝxΝ πίνακας<br />
x = (x(<br />
j ) διάνυσμα Ν διαστάσεων<br />
Να υπολογιστεί το γινόμενο y = Ax,όπου<br />
N<br />
y = (y i ) και y i = ∑ax<br />
ij j , 1 ≤ i ≤ N<br />
j=<br />
1<br />
sequential algorithm: 2N 2 – N steps<br />
parallel algorithm: 2N – 1 steps
Πολλαπλασιασμός πίνακα με<br />
διάνυσμα (2/2)<br />
Υπολογισμός γινομένου πίνακα με διάνυσμα για Ν = 4 με<br />
τη χρήση Ν – διάστατου γραμμικού πίνακα
Πολλαπλασιασμός πινάκων (1/2)<br />
Πρόβλημα: A = (a(<br />
ij ) ΝxΝ πίνακας<br />
B = (b(<br />
ij ) ΝxΝ πίνακας<br />
Να υπολογιστεί το γινόμενο C = AB = (c(<br />
N<br />
ij<br />
με c =<br />
ij ∑aikbkj<br />
, 1 ≤ i, j ≤ N.<br />
k = 1<br />
ij ),<br />
sequential algorithm: O(N 3 )<br />
parallel algorithm: 3N – 2 steps
Πολλαπλασιασμός πινάκων (2/2)<br />
Υπολογισμός γινομένου πινάκων ΑxΒ, όπου Α, Β 4x4<br />
πίνακες. Βρισκόμαστε<br />
στο 5 ο βήμα του αλγόριθμου, όπου το κελί (i, j) j υπολογίζει το a ik b kj , με k =<br />
7 – i – j και 1 ≤ k ≤ 4.
Βελτίωση της απόδοσης των παραπάνω<br />
αλγορίθμων κατά σταθερό παράγοντα
Βελτίωση της απόδοσης των παραπάνω<br />
αλγορίθμων κατά σταθερό παράγοντα
Τριγωνικοί Πίνακες<br />
A<br />
B<br />
⎛1<br />
0 0⎞<br />
⎜ ⎟<br />
= 1 1 0<br />
⎜0 1 0⎟<br />
⎝ ⎠<br />
⎛2 0 4⎞<br />
⎜ ⎟<br />
= 0 1 2<br />
⎜0<br />
0 5⎟<br />
⎝ ⎠<br />
κάτω τριγωνικός πίνακας<br />
άνω τριγωνικός πίνακας<br />
• Ορίζουσα<br />
• Επίλυση συστήματος εξισώσεων<br />
• Υπολογισμός αντίστροφου
Επίλυση τριγωνικού συστήματος<br />
εξισώσεων (1/3)<br />
Έστω Α = (a(<br />
ij ) ΝxN<br />
κάτω τριγωνικός<br />
πίνακας και Ν – διάστατο διάνυσμα<br />
b = (b i ), θέλουμε να βρούμε το x = (x(<br />
j ),<br />
όταν Αx = b.<br />
Πρέπει a ii ≠0,<br />
για 1 ≤ i ≤ N.<br />
sequential algorithm: Πίσω αντικατάσταση
Επίλυση τριγωνικού συστήματος<br />
εξισώσεων (2/3)<br />
parallel algorithm: 2Ν – 1 steps<br />
Ορίζω σύνολο ενδιάμεσων τιμών {t i } ως εξής:<br />
t<br />
=<br />
b<br />
1 1<br />
i−1<br />
t = b −∑a x<br />
i i ij j<br />
j=<br />
1<br />
b<br />
Όμως<br />
συνεπώς:<br />
i<br />
= ∑<br />
a x<br />
i ij j<br />
j=<br />
1<br />
x<br />
i<br />
=<br />
οπότε<br />
t<br />
a<br />
i<br />
ii<br />
t<br />
=<br />
a x<br />
i ii i<br />
και
Επίλυση τριγωνικού συστήματος<br />
εξισώσεων (3/3)<br />
Αρχική τοποθέτηση δεδομένων για την επίλυση 4x4 κάτω τριγωνικού<br />
συστήματος εξισώσεων.<br />
Παρατήρηση: Οι τιμές των t i<br />
αρχικά ορίζονται ίσες με b i<br />
.
Αντιστροφή Τριγωνικών Πινάκων<br />
(1/2)<br />
Για την αντιστροφή πίνακα επιλύουμε το σύστημα<br />
των εξισώσεων AX = I.<br />
Ειδικότερα θεωρώντας τα Ν συστήματα εξισώσεων<br />
Αx j = e j , όπου e j = (0, …,, 0, 1, 0, …,, 0) T και Χ = (x(<br />
1 ,<br />
…, x N ) μπορούμε να τα επιλύσουμε ταυτόχρονα σε ένα<br />
NxN array σε 3Ν – 2 βήματα, οπότε να βρεθεί και η λύση<br />
του AX = I.
Αντιστροφή Τριγωνικού Πίνακα<br />
(2/2)<br />
Αρχική τοποθέτηση των δεδομένων για την αντιστροφή ενός 4x4 κάτω<br />
τριγωνικού πίνακα Α.<br />
t ij =0 αν i ≠ j και 1 αν i = j<br />
Προσοχή: Τα διαφορετικά σχήματα κάνουν διαφορετικές διεργασίες!
Τριδιαγώνιοι Πίνακες<br />
Α = (a(<br />
ij ) τριδιαγώνιος αν a ij = 0 για κάθε i,<br />
j τέτοια ώστε |i - j| > 1<br />
Παράδειγμα:<br />
A<br />
⎛7 −2 0 0 0⎞<br />
⎜<br />
⎟<br />
⎜<br />
5 4 1 0 0<br />
⎟<br />
= ⎜0 −3 −3 −1 0⎟<br />
⎜<br />
⎟<br />
0 0 2 6 4<br />
⎜0 0 0 0 1⎟<br />
⎝<br />
⎠
Επίλυση τριδιαγώνιου συστήματος εξισώσεων με<br />
τη μέθοδο odd – even reduction (1/4)<br />
Γενική ιδέα:<br />
Αντικαθιστούμε κάθε odd – index x i με μια γραμμική<br />
συνάρτηση των x i - 1 , x i + 1 . Το σύστημα που απομένει<br />
είναι τριδιαγώνιο, οπότε συνεχίζοντας αναδρομικά<br />
καταλήγουμε στην εύρεση του x N (όταν<br />
το Ν είναι<br />
δύναμη του 2) και με αντικατάσταση προκύπτει όλο το<br />
x.
Επίλυση τριδιαγώνιου συστήματος εξισώσεων με<br />
τη μέθοδο odd – even reduction (2/4)<br />
Μαθηματική διατύπωση:<br />
Έστω τριδιαγώνιο σύστημα εξισώσεων Ax = b, όπου<br />
A<br />
⎛<br />
⎜<br />
⎜<br />
⎜<br />
d1 u1<br />
l d u<br />
l<br />
...<br />
... 0<br />
d ...<br />
... ... ...<br />
0 ...<br />
...<br />
2 2 2<br />
3 3<br />
= ⎜ ⎟<br />
⎜<br />
⎜<br />
⎜<br />
⎝<br />
l d u<br />
l N d<br />
N−1 N−1 N−1<br />
κάνουμε πρώτα την αντικατάσταση για κάθε odd – index<br />
x i (θεωρούμε<br />
οτι x 0 =0):<br />
1<br />
= − −<br />
x ( b l x ux )<br />
i<br />
d<br />
i i i− 1 i i+<br />
1<br />
i<br />
N<br />
⎞<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎠
Επίλυση τριδιαγώνιου συστήματος εξισώσεων με<br />
τη μέθοδο odd – even reduction (3/4)<br />
Θεωρώντας οτι d i ≠ 0 για κάθε περιττό i, προκύπτει ένα<br />
νέο σύστημα εξισώσεων με μόνο even – index x i .<br />
Ειδικότερα:<br />
(1) (1) (1) (1)<br />
για 1 ≤ i ≤ N/2:<br />
όπου: (1)<br />
l =−<br />
2i<br />
2i<br />
2i−1<br />
2i−1<br />
l x + d x + u x = b<br />
d<br />
u<br />
b<br />
2i 2i− 1 2i 2i 2i 2i+<br />
2 2i<br />
ll<br />
,<br />
d<br />
u l u l<br />
d<br />
d d<br />
uu<br />
,<br />
d<br />
lb ub<br />
b<br />
d d<br />
(1) 2i− 1 2i =− + −<br />
2i<br />
2i<br />
2i 2i+<br />
1<br />
2i− 1 2i+<br />
1<br />
(1)<br />
=−<br />
2i<br />
2i<br />
2i+<br />
1<br />
2i+<br />
1<br />
(1)<br />
= −<br />
2i<br />
2i<br />
2i 2i− 1<br />
−<br />
2i 2i+<br />
1<br />
2i− 1 2i+<br />
1<br />
,<br />
,
Επίλυση τριδιαγώνιου συστήματος εξισώσεων με<br />
τη μέθοδο odd – even reduction (4/4)(<br />
Μετά από logN επαναλήψεις απομένει 1<br />
εξίσωση με έναν άγνωστο, οπότε λύνουμε<br />
ως προς αυτόν, στη συνέχεια<br />
υπολογίζουμε το x N/2 , μετά το x N/4 και το<br />
x 3N/4 κ.ο.κ. μέχρι να υπολογιστούν όλα τα<br />
x i .
Παρατηρήσεις<br />
• Δε δουλεύει όταν κάποιο διαγώνιο στοιχείο είναι<br />
ή προκύψει 0.<br />
• Είναι πολύ χρήσιμη για μεγάλες κλάσεις πινάκων,<br />
όπως οι συμμετρικοί θετικά ορισμένοι πίνακες και<br />
οι πίνακες με αυστηρή διαγώνια υπεροχή.<br />
Ιδιαίτερα για αυτές τις κλάσεις ο αλγόριθμος<br />
είναι αριθμητικά ευσταθής.
Multigrids
Parallel Prefix <strong>Algorithms</strong> (1/2)<br />
α) Μετατρέπουμε την i-οστή<br />
εξίσωση του συστήματος<br />
σαν γινόμενο πίνακα – διανύσματος<br />
+ + =<br />
− 1 + 1<br />
⎛ d i l i b ⎞<br />
i<br />
⎜ − − − ⎟<br />
⎛x<br />
⎞<br />
i+<br />
1 ⎜ u i u i u i ⎟⎛ x ⎞<br />
i<br />
⎜ ⎟ ⎜<br />
x 1 0 0 ⎟⎜ ⎟<br />
⎜ i ⎟ =<br />
⎜x<br />
i−1<br />
⎟<br />
β) Με επαναλαμβανόμενες αντικαταστάσεις προκύπτει<br />
όπου<br />
H<br />
⎜<br />
⎟<br />
⎜ 1 ⎟ ⎜ 0 0 1 ⎟⎜ 1 ⎟<br />
⎝ ⎠ ⎝ ⎠<br />
⎜<br />
⎟<br />
⎝<br />
⎠<br />
x<br />
i i i−1 1<br />
x<br />
⎛ ⎞ ⎛ ⎞<br />
i+<br />
1 1<br />
⎜ ⎟ ⎜ ⎟<br />
⎜ x 0<br />
i ⎟=<br />
H i ⎜ ⎟<br />
⎜ 1 ⎟ ⎜ 1 ⎟<br />
⎝ ⎠ ⎝ ⎠<br />
(1)<br />
lx dx ux b<br />
i i i i i i i<br />
d l b<br />
⎛<br />
⎞<br />
i i i<br />
⎜− − − ⎟<br />
⎜ ui ui ui⎟<br />
= GG ... G<br />
και<br />
1 0 0<br />
G = ⎜<br />
⎟<br />
i ⎜ ⎟<br />
⎜ 0 0 1 ⎟<br />
⎜<br />
⎟<br />
⎝<br />
⎠
Parallel Prefix <strong>Algorithms</strong> (2/2)<br />
γ) Λύνουμε το 3Χ3 σύστημα εξισώσεων<br />
x<br />
⎛ ⎞ ⎛ ⎞<br />
N<br />
1<br />
⎜ ⎟ ⎜ ⎟<br />
⎜x<br />
0 ,<br />
N −1⎟=<br />
H N −1⎜ ⎟<br />
⎜ 1 ⎟ ⎜ 1 ⎟<br />
⎝ ⎠ ⎝ ⎠<br />
lx +<br />
N N 1 dx =<br />
− N N bN<br />
δ)Διαδοχικά<br />
αντικαθιστούμε στην (1) για την<br />
εύρεση των υπολοίπων x i .<br />
x
Παρατηρήσεις<br />
• Ο συνολικός χρόνος που απαιτείται είναι<br />
O(logN) βήματα σε ένα Ν-leaf<br />
πλήρες<br />
δυαδικό δέντρο.<br />
• Ο αλγόριθμος δουλεύει καλά για κάθε<br />
τριδιαγώνιο πίνακα.<br />
• Είναι αριθμητικά ασταθής όταν το<br />
u i
LU- Παραγοντοποίηση(1/2)<br />
A<br />
⎛<br />
⎜<br />
⎜<br />
⎜<br />
⎜<br />
⎜<br />
⎜<br />
⎜<br />
⎝<br />
d 1 u1<br />
l2 d 2 u2<br />
l d u<br />
...<br />
... 0<br />
...<br />
3 3 3<br />
= =<br />
... ... ...<br />
0 ...<br />
...<br />
l d u<br />
l N d<br />
q<br />
N−1 N−1 N−1<br />
⎛ 1<br />
⎞⎛<br />
...<br />
⎞<br />
1 1<br />
⎜ ⎟ ⎜ ⎟<br />
⎜p 1 0 ⎟ ⎜<br />
2 q ... 0<br />
2 u<br />
⎟<br />
2<br />
⎜ ⎟ ⎜ ⎟<br />
⎜ p 1 ⎟ ⎜<br />
3 q ...<br />
3 u<br />
⎟<br />
3<br />
= ⎜ ⎟ ⎜ ⎟<br />
⎜ ... ⎟ ⎜ ... ... ... ⎟<br />
⎜ ⎜ ⎟<br />
⎜ ⎟<br />
0 p 1<br />
N −1 ⎜ 0 ... q<br />
N −1<br />
u N −1<br />
⎟<br />
⎟ ⎟<br />
p<br />
⎜ ⎟<br />
⎜ 1<br />
⎝<br />
⎟⎜<br />
N ⎠ ... q ⎟<br />
⎝ N ⎠<br />
N<br />
⎞<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎟<br />
⎠<br />
u<br />
όπου τα q i είναι μη-μηδενικά<br />
μηδενικά
LU-Παραγοντοποίηση<br />
Παραγοντοποίηση(2/2)<br />
Για να λύσω το σύστημα Ax=y λύνω τα<br />
συστήματα Ly=b και Ux=y<br />
(όπου<br />
A = LU)<br />
Και το δύο λύνονται σε χρόνο O(logN)<br />
χρησιμοποιώντας πρός τα πίσω και πρός<br />
τα μπρός αντικαταστάσεις αντίστοιχα.
Παρατηρήσεις<br />
Η μέθοδος μπορεί να εφαρμοστεί μόνο σε<br />
ορισμένες κλάσεις πινάκων (σ’ αυτές που<br />
μπορούσε να εφαρμοστεί και η odd-even<br />
reduction).<br />
Ο υπολογισμός πινάκων L, U τέτοιων ώστε<br />
A = LU είναι μια διαδικασία που μπορεί<br />
επίσης να λυθεί με έναν parallel-prefix<br />
prefix<br />
αλγόριθμο.
Gaussian Elimination(1/<br />
(1/5)<br />
Χρησιμοποιείται στην επίλυση γενικού<br />
γραμμικού συστήματος εξισώσεων<br />
Ax = B.<br />
Γενική ιδέα:<br />
Προσπαθούμε να φέρουμε τον<br />
επαυξημένο πίνακα [A|b] στη μορφή<br />
[Ι|b’] εφαρμόζοντας γραμμοπράξεις.
Gaussian Elimination(2/5)<br />
Μέθοδος:<br />
• Για την πρώτη σειρά<br />
1. Βρίσκουμε την ψηλότερη γραμμή στην οποία το<br />
αριστερότερο στοιχείο είναι ≠0 και την τοποθετούμε<br />
πρώτη.<br />
2. Πολλαπλασιάζουμε την πρώτη γραμμή με τον<br />
αντίστροφο του στοιχείου a 1,1 έτσι ώστε το a 1,1 να<br />
γίνει ίσο με 1.<br />
3. Αφαιρούμε τα κατάλληλα πολλαπλάσια της πρώτης<br />
γραμμής από τις υπόλοιπες γραμμές ώστε σε κάθε<br />
γραμμή i, το στοιχείο a i,1 να προκύψει 0.
Gaussian Elimination(3/5)<br />
• Για τη δεύτερη σειρά<br />
Επαναλαμβάνουμε κατάλληλα τα βήματα 1<br />
έως 3. Έπειτα αφαιρούμε το κατάλληλο<br />
πολλαπλάσιο της δεύτερης γραμμής από<br />
την πρώτη έτσι ώστε το στοιχείο a 1,2 =0.<br />
• Για τις υπόλοιπες σειρές<br />
Επαναλαμβάνουμε τα τρία βήματα που<br />
περιγράφηκαν για τη δεύτερη σειρά μέχρι να<br />
σχηματιστεί ο μοναδιαίος πίνακας στις<br />
πρώτες Ν στήλες.<br />
Τελικά η λύση του συστήματος είναι η τελευταία<br />
στήλη.
Gaussian Elimination(4/5)<br />
Η διαδικασία που<br />
περιγράφεται<br />
παραπάνω<br />
μοντελοποιείται από<br />
mesh of arrays και<br />
ολοκληρώνεται σε<br />
4N – 1 βήματα:
Gaussian Elimination(5/5)<br />
Η ίδια διαδικασία<br />
μπορεί να<br />
μοντελοποιηθεί για<br />
να βρεθεί ο<br />
αντίστροφος ενός<br />
πίνακα Α, αν στη<br />
θέση του<br />
διανύσματος b<br />
τοποθετήσουμε το<br />
μοναδιαίο πίνακα Ι.<br />
Η διαδικασία<br />
ολοκληρώνεται σε<br />
5Ν – 2 βήματα.
Επαναληπτικές μέθοδοι<br />
• Jacobi Relaxation<br />
• Gauss – Seidel Relaxation<br />
Όταν το σύστημα που έχουμε να λύσουμε<br />
συγκλίνει (M t -> ∞, , M t = D -1 (D - A)),<br />
),<br />
μπορούμε να χρησιμοποιήσουμε<br />
επαναληπτικές μεθόδους.
Jacobi Relaxation (1/2)<br />
Ax = b σύστημα εξισώσεων<br />
Α αντιστρέψιμος (μοναδική<br />
λύση)<br />
aii ≠ 0<br />
Η i – οστή γραμμή γράφεται ως:<br />
1 ⎛<br />
x + = − ⎜<br />
∑ x<br />
i<br />
( t 1) aij<br />
( t)<br />
j<br />
Οπότε ένας τρόπος να γραφτεί η λύση είναι:<br />
a<br />
ii<br />
⎝<br />
j≠i<br />
−<br />
b<br />
i<br />
⎞<br />
⎟<br />
⎠<br />
x<br />
i<br />
1 ⎛<br />
= − ⎜<br />
∑ a<br />
ii ⎝ j≠i<br />
a<br />
ij<br />
x<br />
j<br />
− b<br />
i<br />
⎞<br />
⎟<br />
⎠
Jacobi Relaxation (2/2)<br />
Ο ζητούμενος υπολογισμός μπορεί να εκφραστεί<br />
σαν γινόμενο πίνακα – διάνυσμα ως εξής:<br />
⎛ x<br />
⎜<br />
⎜ x<br />
⎜<br />
⎜<br />
⎜ x<br />
⎜<br />
⎝<br />
1<br />
2<br />
N<br />
⎛<br />
⎜ 0<br />
( t + 1) ⎞<br />
⎟<br />
⎜<br />
( t + 1) ⎜ a<br />
⎟<br />
⎜ −<br />
... ⎟ =<br />
a<br />
⎜<br />
⎟<br />
( t + 1)<br />
⎜<br />
⎟<br />
⎟<br />
⎜ a<br />
1 ⎜<br />
−<br />
⎠ a<br />
⎜<br />
⎝ 0<br />
21<br />
22<br />
N1<br />
NN<br />
−<br />
−<br />
a<br />
a<br />
0<br />
a<br />
a<br />
0<br />
12<br />
11<br />
N 2<br />
NN<br />
⎞<br />
⎟<br />
⎟⎛<br />
x1(<br />
t)<br />
⎞<br />
⎟<br />
⎜ ⎟<br />
⎜ x2(<br />
t)<br />
⎟<br />
⎟<br />
⎟<br />
⎜ ... ⎟<br />
⎟<br />
⎜ ⎟<br />
⎟<br />
⎜ xN<br />
( t)<br />
⎟<br />
⎟<br />
⎜ ⎟<br />
⎝ 1 ⎠<br />
⎟<br />
⎠<br />
Οπότε μπορεί να πραγματοποιηθεί από N – cell<br />
linear array σε Ο(Ν) βήματα.<br />
...<br />
...<br />
...<br />
...<br />
...<br />
a<br />
−<br />
a<br />
a<br />
−<br />
a<br />
0<br />
0<br />
1N<br />
11<br />
2N<br />
22<br />
b<br />
a<br />
b<br />
a<br />
1<br />
11<br />
2<br />
22<br />
bN<br />
a<br />
1<br />
NN
Gauss – Seidel Relaxation (1/2)<br />
Πλέον ο τύπος ανανέωσης του x i (t+1) είναι:<br />
⎛ 1 ⎞⎛<br />
⎞<br />
x + = − ⎜<br />
⎟<br />
⎜<br />
⎟<br />
∑ + + ∑<br />
i<br />
( t 1)<br />
aij<br />
x<br />
j<br />
( t 1) aij<br />
x<br />
j<br />
( t)<br />
⎝ aii<br />
⎠⎝<br />
j< i<br />
j><br />
i ⎠<br />
Η μέθοδος αυτή συγκλίνει πιο γρήγορα από την Jacobi,<br />
αλλά το βασικό της μειονέκτημα είναι οτι είναι πιο<br />
σειριακή.<br />
Οπότε, κάθε επανάληψη της μεθόδου χρειάζεται ένα N –<br />
cell linear array.
Gauss – Seidel Relaxation (1/2)<br />
a i,i-1<br />
…<br />
a i,1<br />
0<br />
…<br />
0<br />
a i,i<br />
…<br />
a i,N<br />
0<br />
…<br />
ιnput 0 output<br />
x i-1<br />
(t+1)…x 1<br />
(t+1) x 1<br />
(t)…x N<br />
(t) 0…0<br />
x i<br />
(t+1)…x 1<br />
(t+1) x 1<br />
(t)…x N<br />
(t)