You are on page 1of 28

ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΡΟΣΗΜΟ

Επιστημονικός Υπολογισμός I
Περιεχόμενα

1 ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ 3


1.1 Εισαγωγικά . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Χαρακτηριστικά Μοντέλου με Ιεραρχία Μνήμης . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Μετρικές Απόδοσης . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Βασικές πράξεις Γραμμικής Άλγεβρας . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Ξετύλιγμα βρόχου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Υλοποιήσεις περιορισμένης Κρυφής Μνήμης . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7 ΖΗΤΟΥΜΕΝΑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.8 ΑΠΑΝΤΗΣΕΙΣ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.9 Ασκήσεις κεφαλαίου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ 8


2.1 Αριθμητική Μονής και Διπλής Ακρίβειας . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 ΣΦΑΛΜΑΤΑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Εμπρός ανάλυση σφάλματος και εμπρός ευστάθεια . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Πίσω ανάλυση σφάλματος και πίσω ευστάθεια . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Δείκτης κατάστασης προβλήματος . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 ΖΗΤΟΥΜΕΝΑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.7 ΑΠΑΝΤΗΣΕΙΣ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.8 Ασκήσεις κεφαλαίου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 16


3.1 ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Παραγοντοποίηση Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Παραγοντοποίηση QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Μέθοδος κανονικών εξισώσεων . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5 ΖΗΤΟΥΜΕΝΑ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.6 ΑΠΑΝΤΗΣΕΙΣ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.7 Ασκήσεις κεφαλαίου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 ΑΡΑΙΑ ΜΗΤΡΩΑ ΚΑΙ ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ 24


4.1 Αραιά μητρώα / Μητρώα ζώνης . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 Διακριτοποίηση . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Ασκήσεις κεφαλαίου . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

1
ΠΕΡΙΕΧΟΜΕΝΑ

Το μάθημα του Επιστημονικού Υπολογισμού είναι το πλέον απαιτητικό μάθημα του CEID, απαντώντας σε κρίσιμα
ερωτήματα της Επιστήμης των Υπολογιστών, όπως:

• Ποιο είναι το πρόβλημα που πρέπει να επιλύσω και πόσο δύσκολο είναι?
• Μπορεί να λυθεί ως έχει ή απαιτείται κάποια προσέγγιση αυτού του προβλήματος?

• Τι αλγόριθμο θα χρησιμοποιήσω και πώς μπορώ να τον βελτιστοποιήσω ώστε να λάβω ασφαλέστερα αποτελέ-
σματα και με τον πιο γρήγορο τρόπο?

• Τι υλικό χρειάζομαι για την υλοποίηση του?

Επομένως χρήσιμο είναι να υπάρχει ένα background ενασχόλησης με προγραμματισμό και με τα μαθήματα της Γραμ-
μικής Άλγεβρας, της Αριθμητικής Ανάλυσης και της Αρχιτεκτονικής.

2
ΚΕΦΑΛΑΙΟ 1

ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ


ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

1.1 Εισαγωγικά
Στον ΕΥ µας ενδιαφέρουν ο σχεδιασμός, η ανάπτυξη, και η χρήση αποδοτικών υπολογιστικών εργαλείων που βοη-
θούν στην πρακτική επίλυση των μαθηματικών μοντέλων της επιστήμης και της τεχνολογίας. Τα κύρια κριτήρια που
χρησιμοποιούνται για την αξιολόγηση των εργαλείων του επιστημονικού υπολογισμού είναι:

1. Ποιο είναι το πρόβλημα που πρέπει να επιλύσω και πόσο δύσκολο είναι?

2. Μπορεί να λυθεί ως έχει ή απαιτείται κάποια προσέγγιση αυτού του προβλήματος?


3. Τι αλγόριθμο θα χρησιμοποιήσω και πώς μπορώ να τον βελτιστοποιήσω ώστε να λάβω ασφαλέστερα αποτελέ-
σματα και με τον πιο γρήγορο τρόπο?
4. Τι υλικό χρειάζομαι για την υλοποίηση του?

Υπολογιστικοί πυρήνες: Blocks του προγράμματος στα οποία αναλώνεται το μεγαλύτερο μέρος εκτέλεσης του, για
παράδειγμα μια επαναληπτική δομή τριών γραμμών ανάμεσα σε εκατοντάδες γραμμές κώδικα, που εκτελείται για 106
φορές.

Υπολογιστικό μοντέλο με ιεραρχία μνήμης είναι αυτό στο οποίο αναφέρεται η θεωρία μας και αποτελείται από:

• Επεξεργαστή

• Καταχωρητές
• Κρυφή μνήμη

• Κεντρική μνήμη

1.2 Χαρακτηριστικά Μοντέλου με Ιεραρχία Μνήμης


• Αρχικά όλα τα δεδομένα που απαιτούνται για την εκτέλεση του προγράμματος βρίσκονται στην κύρια μνήμη.

• Ο επεξεργαστής αποκτά πρόσβαση στα δεδομένα αυτά με απλές εντολές φόρτωσης (load) και αποθήκευσης
(store).

• Η κρυφή μνήμη έχει πολύ μικρότερη χωρητικότητα από την κύρια.


• Ο χρόνος που απαιτείται για την εκτέλεση πράξης ±, ×, ÷ σε α.κ.υ. είναι ενιαίος και ίσος µε ταρθ .

• Για να μπορέσει να αξιοποιηθεί ένα δεδομένο που βρίσκεται στην κύρια μνήμη θα πρέπει να μεταφερθεί στους
καταχωρητές σε χρόνο τμετ .

3
ΚΕΦΑΛΑΙΟ 1. ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

• Όταν ένα δεδομένο βρίσκεται στην κρυφή μνήμη τότε ο χρόνος που απαιτείται για να αξιοποιηθεί είναι πολύ
μικρότερος από τμετ .

• Με το πέρας της εκτέλεσης του προγράμματος τα αποτελέσματα θα πρέπει να αποθηκευτούν στην κύρια μνήμη.

1.3 Μετρικές Απόδοσης


Ω : Είναι οι αριθμητικές πράξεις κινητής υποδιαστολής που απαιτούνται για να εκτελεστεί ένα πρόγραμμα.

Φ : Ο αριθμός μεταφορών μεταξύ κύριας μνήμης ή κρυφής και καταχωρητών.

Φmin : Ο ελάχιστος αριθμός μεταφορών που απαιτούνται για την εκτέλεση ενός προγράμματος, κάτι που προϋποθέτει
επαρκή μνήμη.
Φmin
µmin : Μετρική απόδοσης, που ισούται με τον λόγο των ελάχιστων μεταφορών προς τις αριθμητικές πράξεις, Ω .

Ο χρόνος λοιπόν που απαιτείται για την υλοποίηση μιας διαδικασίας διακρίνεται σε χρόνο που απαιτείται για την εκτέ-
λεση των πράξεων ταρθ και στον χρόνο που απαιτείται για τις μεταφορές τμετ .

Συμβολισμοί : μικρά λατινικά γράμματα θα αναφέρονται σε διανύσματα (x, y, z...), μικρά ελληνικά σε βαθμωτούς (σ, κ...) και κεφαλαία λατινικά σε
μητρώα (A, B, C...) ενώ T θα είναι ο χρόνος της κάθε πράξης.

1.4 Βασικές πράξεις Γραμμικής Άλγεβρας


• Πρόσθεση / αφαίρεση διανυσμάτων και μητρώων
• Εσωτερικό γινόμενο (DOT)

• Εξωτερικό γινόμενο
• Μητρώο ∗ Διάνυσμα (MV)

• Μητρώο ∗ Μητρώο με ίδιες και διαφορετικές διαστάσεις (ΜΜ)


• Μητρώο + Εξωτερικό γινόμενο (Ανανέωση πρώτης τάξης/Rank-1 Update)

• Διάνυσμα + βαθμωτός ∗ Διάνυσμα (sAXPY)

Κατηγορίες πράξεων (BLAS – Basic Linear Algebra Subroutines) :

Πράξεις (Ω) Μεταφορές (Φ) Απόδοση (µ)


BLAS-1 O(n) O(n) O(1)
BLAS-2 O(n2 ) O(n2 ) O(1)
BLAS-3 O(n3 ) O(n2 ) O( n1 )

Από τον παραπάνω πίνακα φαίνεται πως οι πιο ”φτηνές” υλοποιήσεις επιτυγχάνονται με BLAS-1 και άρα τις προτιμάμε
στην περίπτωση που έχουμε άπειρη μνήμη και μας ενδιαφέρει μόνο το υπολογιστικό κόστος, ενώ όταν υπάρχει περιο-
ρισμός μνήμης (κάτι που προφανώς έρχεται πιο κοντά στα σημερινά υπολογιστικά συστήματα) τότε προτιμάμε τις πιο
αποδοτικές πράξεις που είναι οι BLAS-3 (αυξημένη τοπικότητα).

4
ΚΕΦΑΛΑΙΟ 1. ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

1.5 Ξετύλιγμα βρόχου


Χρήση βήματος (βάθους) με σκοπό την μείωση των επαναλήψεων, την αύξηση του παραλληλισμού και της απόδοσης.
Από την άλλη μεριά αυξάνεται η πολυπλοκότητα του κώδικα.
Παράδειγμα το άθροισμα των στοιχείων ενός διανύσματος x:

%with step_size = 1 %with step_size > 1


x = ones (22 ,1); x = ones (22 ,1);
n = length (x); s = 0;
s = 0; n = length (x);
r = mod (22 ,5);
for i=1:n
s = s + x(i); for i=1:5:n-r
end s = s + x(i) + x(i+1)+ x(i+2)+
x(i+3)+ x(i+4);
end

for i=n-r+1:n
s = s + x(i);
end

1.6 Υλοποιήσεις περιορισμένης Κρυφής Μνήμης


Ζητούμενο εδώ είναι να πετυχαίνουμε τις ελάχιστες μεταφορές που απαιτεί μια πράξη, με την μικρότερη δυνατή μνήμη.
Είναι άλλο πράγμα η τάξη μεγέθους των μεταφορών και άλλο πράγμα η τάξη του μεγέθους της μνήμης που χρειαζό-
μαστε για να πετύχουμε αυτό το Φmin .

Όταν έχουμε απεριόριστη (αλλά και πιο ακριβή παράλληλα) μνήμη O(n2 ) μπορούμε άμεσα να φορτώνουμε όλα τα
δεδομένα μιας πράξης, χωρίς να προβληματιζόμαστε για την υλοποίηση. Το ερώτημα είναι αν την ίδια αυτή πράξη
μπορούμε να την υλοποιήσουμε με μικρότερης τάξης μνήμη (O(n) ή O(1) ) και να πετύχουμε και πάλι τις ίδιες ελάχιστες
μεταφορές. Προφανώς τότε θα προτιμήσουμε την μικρότερη και οικονομικότερη μνήμη.

1.7 ΖΗΤΟΥΜΕΝΑ
Να υπολογίζουμε το κόστος σε μεταφορές και πράξεις μιας αριθμητικής παράστασης. Εννοείται πρέπει να βρίσκουμε
πρώτα μια βέλτιστη μορφή αυτής της παράστασης, έτσι ώστε να χρειάζεται τις λιγότερες δυνατές πράξεις (και άρα
χρόνο) για να υλοποιηθεί.

Για παράδειγμα, γιατί να περιμένω την MATLAB να μου υλοποιήσει την πράξη Ak x σε μία ώρα ενώ με την κατάλληλη
υλοποίηση μπορώ να έχω το ίδιο αποτέλεσμα σε 5 λεπτά?

Πώς θα μπορούσα να υλοποιήσω έναν κώδικα με for που έχει default βήμα = 1 , με ένα άλλο μεγαλύτερο βήμα (ξετύ-
λιγμα βρόχου);

Μου δίνεται μια αριθμητική πράξη και σκοπός μου είναι βρω την μικρότερη δυνατή κρυφή μνήμη που μπορεί να υλο-
ποιήσει την πράξη αυτή με τις ελάχιστες μεταφορές (Φ
Φmin ).

5
ΚΕΦΑΛΑΙΟ 1. ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

1.8 ΑΠΑΝΤΗΣΕΙΣ
Σκοπός μας λοιπόν είναι όχι απλά να υπολογίζουμε το κόστος μιας αριθμητικής παράστασης σε πράξεις (Ω), αλλά να
βρίσκουμε τον τρόπο να βελτιστοποιούμε το ζητούμενο και έπειτα να υπολογίζουμε το βελτιωμένο Ω (οι μεταφορές
πολύ σπάνια μεταβάλλονται ανάλογα με την υλοποίηση).

Για τον λόγο αυτό είναι προτιμότερο να αναλύουμε πρώτα αυτό που μας δίνεται : βγάζουμε παρενθέσεις (επιμεριστική
ιδιότητα), κατεβάζουμε δυνάμεις (πχ An = A ∗ A ∗ ... ∗ A ∗ A), ενώ σε περίπτωση που μας δίνεται κώδικας πριν από
αυτά πρέπει να βρίσκουμε την έξοδο, να παράγουμε εμείς δηλαδή την αριθμητική παράσταση προς επίλυση.

Προτεραιότητα πράξεων δίνουμε με παρενθέσεις, ενώ χωρίς αυτές οι πράξεις γίνονται σειριακά από αριστερά προς τα
δεξιά και με τις γνωστές προτεραιότητες, δηλαδή πρώτα δυνάμεις, πολλαπλασιασμός, πρόσθεση/αφαίρεση...

Τι πρέπει να επιδιώκουμε : πιο οικονομικές πράξεις, όπως το εσωτερικό γινόμενο π.χ. (T (xy T x) >> T (x(y T x))) και
πράξεις μεταξύ βαθμωτών (Tαxσ > Tασx ), ενώ για πράξεις που επαναλαμβάνονται μπορούμε να χρησιμοποιούμε πολ-
λαπλασιασμό/εκθέτη π.χ. T ((x + y) + (x + y)) > T (2 ∗ (x + y)) και (x ∗ x ∗ x) > T (x3 ), αφού η ύψωση βαθμωτού
σε δύναμη θεωρείται μια πράξη ).

Τι πρέπει να αποφεύγουμε : τις ”ακριβές” πράξεις με χαρακτηριστικότερες την ΜΜ και το εξωτερικό γινόμενο καθώς
και πράξεις με το ταυτοτικό μητρώο (δηλαδή αχρείαστες πράξεις με μηδενικά).

6
ΚΕΦΑΛΑΙΟ 1. ΤΑΧΥΤΗΤΑ ΚΑΙ ΑΠΟΔΟΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΥΠΟΛΟΓΙΣΜΩΝ

1.9 Ασκήσεις κεφαλαίου


1. Ποιο είναι το αποτέλεσμα των παρακάτω πράξεων και ποιο είναι το Φmin και το Ω, α) όπως δίνονται, β) με
εξοικονόμηση πράξεων :
i) Ak ∗ x, x ∈ Rn , k ∈ R, A ∈ Rn×n
ii) (I − x ∗ y ) ∗ y,
T k
x, y ∈ Rn , k ∈ R και ταυτοτικό μητρώο I ∈ Rn×n
iii) xT ∗ (x ∗ y T )k ∗ y, x, y ∈ Rn , k ∈ R
iv) A ∗ B , μιγαδικά μητρώα A, B ∈ Cn×n
v) (uuT + vv T )1 0 , u, v ∈ Rn
2. Να βρεθεί το Ω και Φmin για τις πράξεις y ← y + Ax και A ← A + xy T με x, y ∈ Rn , A ∈ Rn×n και να
εξηγήσετε γιατί ανήκουν στην BLAS-2.

3. Να τροποποιήσετε τον παρακάτω βρόχο ώστε ο υπολογισμός να χρησιμοποιεί «ξετύλιγμα βρόχου» με βήμα 5.
Ο νέος κώδικας πρέπει να λειτουργεί ορθά ανεξάρτητα από το (μη αρνητικό) μέγεθος του n. s=0.0; for j=1:n ,
s=s+x(j)*y(j) ; end

4. H LU παραγοντοποίηση παράγει δύο μητρώα n × n δηλαδή A = LU . Να επιχειρηματολογήσετε για να δείξετε


ότι η παραγοντοποίηση LU ενός τετραγωνικού μητρώου παρέχει τη δυνατότητα καλής απόδοσης σε συστήματα
με ιεραρχική μνήμη.

(Εισάγοντας στην Matlab το μητρώο μας επιστρέφονται δύο νέα μητρώα ίδιας διάστασης με τον , τα L και U . To
3
κόστος της LU ανέρχεται σε 2n3 πράξεις).

5. Στο υπολογιστικό σύστημα που χρησιμοποιούμε στο μάθημα και για την πράξη πολλαπλασιασμού μητρώου n×n
με διάνυσμα, το Φmin δεν είναι εφικτό εκτός αν διαθέτουμε τουλάχιστον O(n2 ) θέσεις α.κ.υ. σε κρυφή μνήμη και
καταχωρητές. (Σ/Λ)

6. Να περιγράψετε χρησιμοποιώντας MATLAB τρεις διαφορετικούς αλγόριθμους υπολογισμού του C = C +A∗B


, όπου ο πρώτος θα πρέπει να βασίζεται σε DOT, ο δεύτερος σε SAXPY και ο τελευταίος σε ανανεώσεις 1ης τάξης.
7. a) Οι BLAS-2 μπορούν να υλοποιηθούν ώστε να έχουν καλύτερη επίδοση από τις BLAS-3. (Σ/Λ)
b) Ξεδίπλωμα βρόχου γενικά χρησιμοποιείται για να μειώσει το πλήθος πράξεων α.κ.υ. ( Σ/Λ)
8. Δίνονται τα στοιχεία b ∈ Rn , c ∈ R10 και A ∈ R10×n και θέλουμε να υπολογίσουμε το y ← c + Ab. Το n δεν
έχει κανέναν περιορισμό.

a) Ποιό είναι το Φmin για την πράξη;


b) Να δείξετε πώς μπορείτε να υλοποιήσετε τον πολλαπλασιασμό με Φ = Φmin χρησιμοποιώντας κρυφή
μνήμη και καταχωρητές (1).

9. Δίνονται x, y ∈ Rn , s θετικός ακέραιος και αρχικοποιημένος A κατάλληλης διάστασης και θέλουμε να υπολο-
γίσουμε το B = A + xT (xy T )s y.

a) Να γράψετε τις εντολές που υλοποιούν τα παραπάνω αποκλειστικά με πράξεις BLAS-2 και να βρείτε τα Ω,
Φmin .
b) Να κάνετε το ίδιο με BLAS-1.
c) Ποιο περιμένετε να είναι πιο γρήγορο και γιατί;

10. Έστω ότι γνωρίζετε το μέγεθος δύο διανυσμάτων (1 : AM ), (1 : AM ) και ότι είναι ίσο με το ΑΜ σας. Να
γράψετε τις εντολές για να υπολογιστεί σωστά το εσωτερικό τους γινόμενο με ξετύλιγμα βρόχου βάθους ρ + 3 ,
όπου ρ είναι το ακέραιο υπόλοιπο της διαίρεσης του τελευταίου ψηφίου του ΑΜ σας με το 3.

7
ΚΕΦΑΛΑΙΟ 2

ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ
ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ
ΥΠΟΛΟΓΙΣΜΩΝ

2.1 Αριθμητική Μονής και Διπλής Ακρίβειας


Α.Κ.Υ.: Είναι η αριθμητική που χρησιμοποιούν οι υπολογιστές, οι οποίοι μην μπορώντας να αναπαραστήσουν τίποτα
περισσότερο από ένα μικρό υποσύνολο των πραγματικών αριθμών, θα έπρεπε να εξελιχθεί μια αριθμητική που να προ-
σφέρει το απαιτούμενο εύρος.
Ένας α.κ.υ. λοιπόν παράγεται από τον ακόλουθο τύπο :

y = ±m ∗ β E
όπου m η ουρά , β η βάση του συστήματος (συνήθως 2) και Ε o εκθέτης.

Κανονικοποίηση Α.Κ.Υ. : Επειδή για κάθε αριθμό μπορούν να υπάρχουν πολλές αναπαραστάσεις, με την κανονικοποί-
ηση απαιτώ το πρώτο bit να είναι 1.

Τεχνική κρυμμένου bit: Αφού γνωρίζω πως το πρώτο bit είναι 1, το κρύβω και έτσι κερδίζω μια θέση bit.

Υποκανονικοποιημένοι Α.Κ.Υ. : Οι αριθμοί εκείνοι που αρχίζουν με 0. Δεν υποστηρίζουν όλα τα συστήματα υποκανο-
νικοποίηση.

Ειδικοί αριθμοί:

Nan : Not a Number με μη μηδενική ουρά και εκθέτη 11...11


±Inf : Άπειρο: με ουρά 1.00...00 και εκθέτη 111...1
±0 : Μηδέν με ουρά 0.00...00 και εκθέτη 00...00

Πρόσημο: 0 για θετικούς αριθμούς και 1 για αρνητικούς.

Εκθέτης: Με 8 bits μπορώ να κατασκευάσω 28 εκθέτες. Επειδή όμως χρειάζομαι και αρνητικούς το διάστημα σπάει
σε -127 έως 128 για την μονή ακρίβεια και σε -1023 έως 1024 για την διπλή ακρίβεια (συμπεριλαμβανομένου και του
0νικού εκθέτη).

Για μονή ακρίβεια οι εκθέτες από -126 έως 127 χρησιμοποιούνται για κανονικοποιημένους αριθμούς , ο -127 για υπο-
κανονικοποιημένους και ο 128 για ειδικούς αριθμούς.

Ομοίως για διπλή ακρίβεια οι εκθέτες από -1022 έως 1023 χρησιμοποιούνται για κανονικοποιημένους αριθμούς , ο -
1023 για υποκανονικοποιημένους και ο 1024 για ειδικούς αριθμούς.

8
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

Πόλωση εκθέτη: Για τον εκθέτη δεν προβλέπεται bit προσήμου, αν και έχουμε και αρνητικούς εκθέτες. Για τον λόγο
αυτό κάθε φορά που εισέρχεται στην μνήμη ένας εκθέτης προστίθεται αυτόματα το 127(ΜΑ) και 1023(ΔΑ) έτσι ώστε
να είναι πάντα θετικός, ενώ όταν χρησιμοποιηθεί πάλι αυτός ο εκθέτης αφαιρείται η αντίστοιχη πόλωση.

realmax: O μέγιστος θετικός κανονικοποιημένος α.κ.υ. που μπορεί να αναπαραστήσει το σύστημα. Οτιδήποτε πέρα
από αυτόν τον αριθμό επιστρέφει Inf (εκτός και αν χρησιμοποιείται εκτεταμένη ακρίβεια).

realmin: O ελάχιστος θετικός κανονικοποιημένος α.κ.υ. που μπορεί να αναπαραστήσει το σύστημα. Οτιδήποτε μικρό-
τερο από αυτόν τον αριθμό επιστρέφει 0 (εκτός και αν χρησιμοποιείται υποκανονικοποίηση).

Έψιλον μηχανής: Η απόσταση από τον 1 έως τον αμέσως επόμενο α.κ.υ. και μόνο αυτή: eps = 21−t

2.2 ΣΦΑΛΜΑΤΑ
Γιατί συμβαίνουν σφάλματα στον ΕΥ?

Γιατί λόγω περιορισμένης ακρίβειας , όταν χρειάζεται να αναπαρασταθεί ένας αριθμός από τον R στον F (A.K.Y.)
, πολύ πιθανό να στρογγυλοποιηθεί σε κάποια άλλη τιμή και να εισαχθεί ένα σφάλμα |δ| |δ|. Επομένως ο x του R
πλέον έχει γίνει x∗ = x(1 + δ1 ) και ομοίως ο y του R πλέον έχει γίνει y ∗ = y(1 + δ2 )).

Γιατί όταν έχουν αναπαρασταθεί όλοι οι αριθμοί από τον R στον F , ακολουθούν πράξεις που τα αποτελέσματα
τους θα χρειαστεί να στρογγυλοποιηθούν και αυτά. Επομένως ο x + y του R πλέον γίνεται (x∗ + y∗ )(1 + δ)
δ).

Χάριν απλότητας συνήθως θεωρούμε πως όλοι οι αριθμοί που χρησιμοποιούμε είναι ήδη α.κ.υ. , δηλαδή έχουν ήδη υπο-
στεί στρογγυλοποίηση και πλέον μας απασχολούν μόνο τα σφάλματα των πράξεων.

Σχεδόν όλες οι πράξεις που συμβαίνουν σε αριθμητική κινητής υποδιαστολής παράγουν σφάλματα.

Κανόνας ακριβούς στρογγύλευσης: Το αποτέλεσμα της πράξης στο σύστημα είναι σαν να εκτελείται η πράξη ακριβώς
στον R και μετά να στρογγυλοποιείται το αποτέλεσμα.

Είδη στρογγύλευσης: Προς πλησιέστερο και προς ζυγό, προς ±Ιnf , προς 0...

Μονάδα στρογγύλευσης: Ποιο είναι το μέγιστο σφάλμα που μπορεί να υπάρξει? Εξαρτάται από την μέθοδο στρογ-
γύλευσης. Στην συνηθέστερη περίπτωση της στρογγύλευσης προς τον πλησιέστερο, ισούται με το μισό του έψιλον
μηχανής, δηλαδή :

u= eps
2 = 2−t

Επομένως και το σφάλμα δ που προκύπτει (θετικό ή αρνητικό) φράζεται από αυτήν την ποσότητα :

|δ| ≤ u

Τις περισσότερες φορές λόγω των σφαλμάτων και της μετάδοσης τους, προκύπτουν γινόμενα σφαλμάτων τα οποία
φράζονται ως :

(1 + δ1 )(1 + δ2 ) ∗ … ∗ (1 + δn ) = (1 + θn ) , με |θn | ≤ γn , με γn = n∗u


(1−n∗u)

Το σφάλμα ποτέ δεν μπορώ να το υπολογίσω παρά μόνο να το φράξω!

9
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

FMA: Όταν μας δίνεται η δυνατότητα χρήσης της αρχιτεκτονικής FMA τότε για την πράξη της πρόσθεσης και του
πολλαπλασιασμού θα έχω ένα μόνο σφάλμα (αντί για δύο), δηλαδή :

f l((x + y) ∗ z) = (x + y) ∗ z ∗ (1 + δ1 ) ∗ (1 + δ2 ) , ενώ με την χρήση FMA θα έχω :

f l((x + y) ∗ z) = (x + y) ∗ z ∗ (1 + δ)

Τα σφάλματα δεν μπορούμε να τα υπολογίσουμε ποτέ ακριβώς (αλλιώς δεν θα είχαμε..)! Το μόνο που μπορούμε να
κάνουμε είναι να τα φράζουμε ως προς μια γνωστή ποσότητα.

Απόλυτο σφάλμα : |x − x∗ |
|x−x∗ |
Σχετικό σφάλμα : |x|

Συμβολισμοί :

x : η πραγματική μας είσοδος, «καθαρή» χωρίς σφάλματα.

x∗ : η είσοδος που χρησιμοποιείται στην υλοποίηση, δηλαδή μετά την στρογγυλοποίηση.

f (x) : η εκτέλεση της πράξης σε αριθμητική άπειρης ακρίβειας, δηλαδή χωρίς σφάλμα.

f (x∗ )): η «χαλασμένη» είσοδος, υπολογισμένη χωρίς σφάλματα.

fprog (x) : η υλοποίηση σε αριθμητική κινητής υποδιαστολής, δηλαδή με σφάλματα.

2.3 Εμπρός ανάλυση σφάλματος και εμπρός ευστάθεια


Είναι το συνολικό σφάλμα μιας αριθμητικής διαδικασίας. Αφού όπως είπαμε έχουμε να κάνουμε με δεδομένα που είναι
ήδη α.κ.υ , το εμπρός σφάλμα (Ε.Σ.) είναι αυτό που λαμβάνουμε από τις αριθμητικές πράξεις.

Αφού κάνουμε μετάδοση σφάλματος, το υπολογίζουμε ως :

Ε.Α.Σ = |fprog (x) − f (x)| , για το απόλυτο

ή
|fprog (x)−f (x)|
Ε.Σ.Σ = |f (x)| , για το σχετικό

Το εμπρός σφάλμα, όντας το συνολικό σφάλμα, περιλαμβάνει δύο έννοιες :

1) Πόσο εύκολο είναι να λυθεί το πρόβλημα?


2) Πόσο καλός είναι ο αλγόριθμος που επιλέγω για να λύσω αυτό το πρόβλημα?

Στο πρώτο ερώτημα απαντάει ο δείκτης κατάστασης προβλήματος, ενώ στο δεύτερο ο δείκτης κατάστασης αλγορίθμου
ή αλλιώς το πίσω σφάλμα.

10
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

2.4 Πίσω ανάλυση σφάλματος και πίσω ευστάθεια


Με την πίσω ανάλυση σφάλματος προσπαθούμε κατά κάποιο τρόπο να πάρουμε το σφάλμα που προκαλούν οι πράξεις
και να το ”χρεώσουμε” στην είσοδο.

Ψάχνω λοιπόν να βρω μια νέα είσοδο x∗ η οποία να είναι κοντά στην θεωρητική είσοδο x, έτσι ώστε αν αυτή υλοποιηθεί
σε αριθμητική άπειρης ακρίβειας (f (x∗ )) να είναι ίση με το υπολογισμένο αποτέλεσμα (fprog (x)).

Όταν γνωρίζω πως ένας αλγόριθμος είναι πίσω ευσταθής τότε το πίσω σφάλμα φράζεται από την μονάδα στρογγύλευ-
σης u.

2.5 Δείκτης κατάστασης προβλήματος


Είναι μια μετρική που μας δείχνει: για μικρές αλλαγές στην είσοδο πόσο μεγάλη αλλαγή θα έχω στην έξοδο? Σε ένα πρό-
βλημα με καλό δείκτη κατάστασης, αναμένουμε όσο αλλάζει η είσοδος να αλλάζει και η έξοδος, επομένως ο condition
number (cond) θα πρέπει να είναι κοντά στο 1.
Δείκτες κατάστασης cond(f ; X) :

Η είσοδος είναι διάνυσμα:


∥X∥ df
cond(f ; X) = ∥ |x∥
∥f (x)∥ dX

Η είσοδος είναι αριθμός:


|x|f ′ (x)
cond(f ; x) =
|f (x)|

Η είσοδος είναι μητρώο:


cond(X) = ∥X∥∥X −1 ∥

λmax
ενώ ο δείκτης κατάστασης ενός συμμετρικού μητρώου είναι ο λόγος των ιδιοτιμών: λmin

Ανακεφαλαιώνοντας λοιπόν επειδή πολλές φορές είναι δύσκολο να υπολογιστεί απευθείας το εμπρός σφάλμα , το
πρόβλημα αυτό σπάει σε δύο υποπροβλήματα: τον δείκτη κατάστασης και το πίσω σφάλμα και καταλήγουμε στον πιο
σημαντικό τύπο του κεφαλαίου:

(εμπρός σφάλμα) ≤ (πίσω σφάλμα) ∗ (δείκτης κατάστασης)

2.6 ΖΗΤΟΥΜΕΝΑ
Ασκήσεις και ερωτήσεις κατανόησης πάνω στην αριθμητική κινητής υποδιαστολής.

Πράξεις με αριθμούς κινητής υποδιαστολής.

Μελέτη ως προς την εμπρός και πίσω ευστάθεια καθώς και εύρεση του δείκτη κατάστασης.

11
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

2.7 ΑΠΑΝΤΗΣΕΙΣ
Πράξεις με α.κ.υ.: Τα πάντα είναι θέμα εκθετών! Στον πολλαπλασιασμό δεν υπάρχει πρόβλημα. Στην πρόσθεση όμως,
για να μπορούν να προστεθούν δύο αριθμοί θα πρέπει να ”κανονικοποιούμε” τους εκθέτες τους. Δηλαδή, να εξισώ-
νουμε τον μικρό με τον μεγαλύτερο εκθέτη. Για να το πετύχουμε αυτό θα πρέπει να πολλαπλασιάζουμε το εκθετικό
μέρος συνέχεια με το 2 και να διαιρούμε ταυτόχρονα την ουρά με το 2. Διαίρεση της ουράς με το 2 σημαίνει πως η
υποδιαστολή ολισθαίνει προς τα αριστερά. Έπειτα ακολουθεί η πράξη μεταξύ των α.κ.υ...

Παράλληλα πρέπει να λαμβάνουμε υπόψη το περιβάλλον στο οποίο βρισκόμαστε. Όταν δεν υποστηρίζεται υποκανο-
νικοποίηση, τότε οποιοδήποτε αποτέλεσμα προκύψει στο διάστημα (0, realmin) θα επιστρέψει 0. Ομοίως όταν δεν
υποστηρίζεται εκτεταμένη ακρίβεια τότε επιστρέφεται Inf. Η MATLAB υποστηρίζει υποκανονικοποίηση και όχι εκτε-
ταμένη ακρίβεια.

Για να μπορούμε πιο εύκολα να υπολογίζουμε την μετάδοση σφάλματος (για την πράξη της πρόσθεσης), αρκεί να απα-
ντάμε στο ερώτημα: ”σε πόσες πράξεις συμμετέχει ένας όρος;”. Αυτός θα είναι και ο δείκτης του ”θ”.

Η πράξη πρόσθεσης και πολλαπλασιασμού είναι τελείως διαφορετική όσον αφορά την ανάλυση σφάλματος! Στην πρό-
σθεση όλοι οι όροι που συμμετέχουν φορτώνονται με σφάλμα, ενώ στον πολλαπλασιασμό αρκεί να τον φορτωθεί μόνο
ένας (συνήθως).

Εμπρός Σφάλμα : Αρχικά κάνω μετάδοση σφάλματος (fprog (x)) και έπειτα θέλω να μελετήσω πόσο απέχει η fprog (x)
από την f (x). Συνήθως χρησιμοποιώ το εμπρός σχετικό σφάλμα.

Σκοπός μου πάντα, είναι να φράξω το σφάλμα. Για να γίνει όμως αυτό πρέπει να απαλείφω με κάποιο τρόπο τους άγνω-
στους όρους (τα δεδομένα δηλαδή), έτσι ώστε να μένουν μόνο μόνο δ και θ , τα οποία και μπορώ να φράξω. Συνήθως
αυτό το πετυχαίνω με το να φορτώνω όλους τους όρους με το μέγιστο σφάλμα, ώστε να βγαίνει κοινός παράγοντας
και εφόσον μπορώ να απαλείψω αριθμητή και παρανομαστή, τότε μπορώ να φράξω.

Εφόσον λοιπόν οι όροι αυτοί φραχτούν χαμηλά, δηλαδή βάσει του u ή του γn τότε οδηγούμαι σε Εμπρός Ευστάθεια.

Πίσω Σφάλμα : Ξεκινάει από εκεί που τελειώνει το εμπρός σφάλμα. Έπειτα παίρνουμε το σφάλμα της εξόδου και το
”πετάμε” στην είσοδο. Πολύ σημαντικό είναι να ξέρουμε να αναγνωρίσουμε την είσοδο/δεδομένα!

Εφόσον διαλέξουμε μια νέα είσοδο x∗ για να πετύχουμε f (x∗ ) = fprog (x) , θα πρέπει να επαληθεύουμε πάντα την
τελευταία σχέση σε περίπτωση που έχει γίνει λάθος. Τέλος υπολογίζουμε το φράγμα του πίσω σφάλματος για κάθε
δεδομένο ξεχωριστά και το τελικό πίσω σφάλμα θα είναι η μεγαλύτερη τιμή.

12
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

2.8 Ασκήσεις κεφαλαίου


1. Έστω ότι χρησιμοποιούμε αριθμητική IEEE διπλής ακρίβειας, στην οποία ισχύει η συνθήκη ακριβούς στρογγύλευ-
σης και ότι επιλέγουμε να χρησιμοποιήσουμε «αποκοπή» και όχι «στρογγύλευση προς τον πλησιέστερο» α.κ.υ. .
Εξηγήστε ποια θα είναι η μονάδα στρογγύλευσης u.

2. Αν πρέπει να συγκρίνουμε την επίδοση δύο αλγορίθμων σε ένα υπολογιστικό σύστημα, τότε ο αλγόριθμος που
εκτελεί περισσότερες πράξεις πετυχαίνει περισσότερα Mflops/sec. ( Σ / Λ )

3. Αν γενικά ο δείκτης κατάστασης ενός προβλήματος είναι μικρός, τότε το υπολογισμένο αποτέλεσμα θα είναι κο-
ντά στο αποτέλεσμα που θα παίρναμε αν χρησιμοποιούσαμε αριθμητική άπειρης ακρίβειας. ( Σ / Λ )

4. Αν στο σύστημα α.κ.υ. ΙΕΕΕ επιλέξουμε στρογγύλευση προς το μεγαλύτερο, τότε θα αλλάξει το eps. ( Σ / Λ )


x+1−1
5. Δίνεται η συνάρτηση f (x) = x . Από τα μαθηματικά μπορείτε να επαληθεύσετε ότι το lim (f (x)) = 21 .
x→0

a) Αν συμβολίσουμε το δείκτη κατάστασης προβλήματος ως cond(f ; x) να υπολογίσετε το lim (cond(f ; x)).


x→0
b) Να εξηγήσετε γιατί ο υπολογισμός της f μπορεί να οδηγήσει σε μεγάλο σφάλμα όταν το x είναι κοντά στο
0 (αλλά μεγαλύτερο του eps).
c) Να προτείνετε βελτιωμένο τρόπο υπολογισμού για τις πολύ μικρές τιμές του x.

6. Ποιός είναι ο καλύτερος τρόπος για να προσθέσετε α.κ.υ.;

7. Το eps για την α.κ.υ. ΙΕΕΕ είναι α.κ.υ.;

8. Να δείξετε ότι η μέθοδος Horner (s = an ; f or j = n − 1 : −1 : 0, s = s ∗ x + a; end) για τον υπολογισμό της


τιμής ενός πολυωνύμου, που δίνεται μέσω δυναμομορφής είναι πίσω ευσταθής.

9. Για κάθε ένα από τα παρακάτω μητρώα να εξηγήσετε αν έχουν καλό ή κακό δείκτη κατάστασης.
a) [1010 0; 0 10−10 ]
b) [1010 0; 0 1010 ]
c) [10−10 0; 0 10−10 ]
d) [1 2; 2 4]

10. Δίνονται x, y ∈ R4 . Υποθέτουμε ότι όλα τα στοιχεία τους είναι μη αρνητικοί α.κ.υ.. ‘Εστω ο υπολογισμός:
s = 0; f or i = 1 : 4, s = s + x(i) ∗ y(i); end

a) Να δείξετε ότι ο αλγόριθμος υπολογισμού είναι πίσω σταθερός.


b) Να δείξετε ότι το σχετικό εμπρός σφάλμα θα είναι μικρό.
c) Να σχολιάσετε τον ισχυρισμό: ”Aν δεν ισχύει η προϋπόθεση ότι όλα τα στοιχεία των x, y είναι μη αρνητικά,
τότε δε μπορούμε να είμαστε βέβαιοι για κάποιο από τα προηγούμενα”.
d) Αν ο αλγόριθμος υλοποιηθεί σε σύστημα που διαθέτει την εντολή FMA, να εξηγήσετε συνοπτικά (χωρίς
πλήρη ανάλυση σφάλματος) γιατί η χρήση της FMA μπορεί να επιδράσει ευνοϊκά στην ακρίβεια του παρα-
πάνω υπολογισμού.

13
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

11. Μας δίνονται α.κ.υ. και ένας αλγόριθμος για να τους αθροίσουμε. Να εξηγήσετε ποιοί από τους παρακάτω ισχυ-
ρισμούς είναι σωστοί και ποιοί λάθος:

a) Αν αλλάξουμε τον αλγόριθμο άθροισης, μπορεί να αλλάξουν το πίσω σφάλμα και το εμπρός σφάλμα. ( Σ /
Λ)
b) Αν γνωρίζουμε τους α.κ.υ. και τον αλγόριθμο άθροισης μπορούμε να υπολογίσουμε το ακριβές εμπρός
σφάλμα. ( Σ / Λ )
c) Αν οι αριθμοί είναι ομόσημοι, ένας καλός τρόπος άθροισης είναι από το μικρότερο στο μεγαλύτερο. (Σ / Λ)

12. Για την άθροιση των στοιχείων α.κ.υ. σε ένα διάνυσμα x διάστασης 8, χρησιμοποιούμε αλγόριθμο ”δέντρου” ,
δηλαδή υπολογίζουμε το αποτέλεσμα ως s = [((ξ1 + ξ2 ) + (ξ3 + ξ4 )) + ((ξ5 + ξ6 ) + (ξ7 + ξ8 ))].

Να υπολογίσετε το καλύτερο άνω φράγμα που μπορείτε για το πίσω σφάλμα του αλγορίθμου.

13. Έστω οι θετικοί α.κ.υ. και ο υπολογισμός y = 1; f or j = 1 : n, y = y ∗ ( + ξj ); end

a) Να δείξετε ότι ο αλγόριθμος υπολογισμού είναι πίσω σταθερός.


b) Ποιος είναι ο δείκτης κατάστασης του y(a, ξ1 , …, ξn ) ως προς τη νόρμα μεγίστου;

14. Στην ΙΕΕΕ πόσοι α.κ.υ. διπλής ακρίβειας περιέχονται μεταξύ δύο συνεχόμενων α.κ.υ. μονής;

15. Να ορίσετε με σαφήνεια τι σημαίνει πίσω ευστάθεια στον υπολογισμό της τιμής μιας συνάρτησης και να εξη-
γήσετε πώς, αν αποδείξουμε την πίσω ευστάθεια ενός αλγορίθμου, μπορούμε να αναγάγουμε την εύρεση της
απόστασης του f (x) από το υπολογισμένο fprog (x) σε ένα πρόβλημα διαταραχών.

Απάντηση: Αν ο υπολογισμός είναι πίσω ευσταθής, τότε μπορούμε να βρούμε διάνυσμα έστω xprog ∈ R , που
είναι κοντά στο x, τέτοιο ώστε f (xprog ) = fprog (x), δηλαδή ο υπολογισμός της συνάρτησης με το συγκεκρι-
μένο αλγόριθμο σε α.κ.υ. δίνει το ίδιο ακριβώς αποτέλεσμα με τον υπολογισμό της συνάρτησης στο xprog , με
αριθμητική άπειρης ακρίβειας, δηλάδη ∥f (x) − fprog (x)∥ = ∥f (x) − f (xprog )∥ , επομένως η απόσταση των δύο
θα είναι ίση με την απόσταση της τιμής του f στο x από την τιμή του f σε ένα κοντινό σημείο xprog και η μελέτη
της, εφόσον το x είναι κοντά στο xprog αντιστοιχεί σε πρόβλημα διαταραχών.

16. Γενικά, αν ένας αλγόριθμος είναι πίσω σταθερός, τότε μικρές αλλαγές στα στοιχεία εισόδου του αλγορίθμου οδη-
γούν κατ’ ανάγκη σε μικρές αλλαγές στο υπολογισμένο αποτέλεσμα. ( Σ / Λ )

17. Γενικά, αν στο μοντέλο ΙΕΕΕ στρογγυλεύσουμε έναν αριθμό προς τον πλησιέστερο α.κ.υ. και µ είναι η μονάδα
στρογγύλευσης, ισχύει ότι f l(x) = x(1 + δ) όπου δ ≤ µ . ( Σ / Λ )

18. Έστω ότι χρησιμοποιούμε αριθμητική κινητής υποδιαστολής διπλής ακρίβειας. Να μετρήσετε πόσοι υποκανονι-
κοποιημένοι α.κ.υ. μπορούν να αναπαρασταθούν.

19. Ο δείκτης κατάστασης ενός μητρώου ως προς την ευκλείδια νόρμα είναι άμεσα υπολογίσιμος από τις ιδιοτιμές
του μητρώου. ( Σ / Λ )

20. Θέλουμε να χρησιμοποιήσουμε πίσω ανάλυση σφάλματος για να υπολογίσουμε φράγμα για το εμπρός σχετικό
σφάλμα στον υπολογισμό του τετραγώνου της ευκλείδιας νόρμας με τον παρακάτω αλγόριθμο:
s = x(1) ∗ x(1); f or j = 2 : n, s = s + x(j) ∗ x(j); end
a) Να υπολογίσετε το δείκτη κατάστασης του προβλήματος και μια καλή εκτίμηση για το πίσω σφάλμα του
αλγορίθμου.
b) Να υπολογίσετε καλό φράγμα για το εμπρός σχετικό σφάλμα στο υπολογισμένο αποτέλεσμα s.

14
ΚΕΦΑΛΑΙΟ 2. ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΣΦΑΛΜΑΤΑ ΥΠΟΛΟΓΙΣΜΩΝ

21. Εάν ένα μητρώο έχει δείκτη κατάστασης 106 και η υπολογισμένη λύση σε σύστημα α.κ.υ. ΙΕΕΕ διπλής ακρίβειας

(μονάδα στρογγύλευσης) του συστήματος Ax = b με QR είναι x∗ τότε ∥x−x∥x∥

≤ 10 − ρ. Ποιά είναι η τιμή του
ρ και γιατί ;
Σημείωση: η QR είναι πίσω ευσταθής μέθοδος.

22. a) Στο σύστημα α.κ.υ. ΙΕΕΕ η έκφραση 1/N an–1/N an επιστρέφει 0. ( Σ / Λ )


b) Αν υπάρχουν δεδομένα εισόδου για τα οποία ο ακριβής υπολογισμός να δίνει το ίδιο αποτέλεσμα με τον
υπολογισμό σε α.κ.υ. τότε λέμε ότι το πίσω σφάλμα του υπολογισμού είναι μικρό. ( Σ / Λ )
c) Αν στο σύστημα α.κ.υ. , realmax είναι ο μεγαλύτερος α.κ.υ. που μπορούμε να αναπαραστήσουμε τότε
realmax + 1 επιστρέφει Inf ( Σ / Λ ).
d) Το eps δεν είναι α.κ.υ. ( Σ / Λ ).

n
23. Είναι γνωστό από τα μαθηματικά ότι η σειρά 1
j αποκλίνει (τείνει στο άπειρο καθώς n → ∞, περίπου σαν το
j=1
φυσικό λογάριθμο ln(n)) . Αν όμως εκτελέσουμε s = 0; f or j = 1 : n, s = s + 1/j; end , το υπολογισμένο s
παραμένει μικρό (κάτω από 20) όσο μεγάλο και να πάρουμε το n.
Να εξηγήσετε σύντομα γιατί.

24. Μελετήστε ως προς την εμπρός και πίσω ευστάθεια τις πράξεις του εσωτερικού γινομένου, εξωτερικού γινομένου
και ΜΜ.

25. Ποιό είναι το αποτέλεσμα των παρακάτω πράξεων;

realmax + 1
realmax + realmin
realmin + eps
realmin/2
realmax + 1
realmax + realmax
realmin/realmax
realmax/realmin
2/0
N an–N an
1+? = 1+
2+? = 2+
3+? = 3+
5+? = 5+
9+? = 9+
0 ∗ inf

(Απαντάμε τα “?” βάση του eps)

15
ΚΕΦΑΛΑΙΟ 3

ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Σκοπός είναι η επίλυση του συστήματος Ax = b , με A ∈ Rn×n και b ∈ Rn , χωρίς να χρησιμοποιήσουμε αντιστροφή
(μεγάλο κόστος και μεγάλο σφάλμα). Για αυτόν τον λόγο χρησιμοποιούμε παραγοντοποιήσεις οι οποίες αναγάγουν
το πρόβλημα επίλυσης ενός πυκνού γραμμικού συστήματος σε πρόβλημα επίλυσης τριγωνικών συστημάτων που είναι
σαφώς πιο εύκολο να επιλυθούν.

3.1 ΠΑΡΑΓΟΝΤΟΠΟΙΗΣΗ LU
Απαιτεί τετραγωνικά και αντιστρέψιμα μητρώα και διασπάει το αρχικό μητρώο Α σε :

L : κάτω τριγωνικός με 1 στη διαγώνιο και τους πολλαπλασιαστές από κάτω.

U : άνω τριγωνικός με τους οδηγούς στην διαγώνιο.

A∗x=b⇒L∗U ∗x=b , με U ∗ x = z
L∗z =b (εμπρός αντικατάσταση)
U ∗x=z (πίσω αντικατάσταση)

Στοιχειώδη μητρώα: Είναι μητρώα που χρησιμοποιούνται στις διαδικασίες παραγοντοποίησης (και όχι μόνο) και πα-
ράγονται από τον τύπο :

I–τ ∗ u ∗ v T

Με I το ταυτοτικό μητρώο, τ βαθμωτό και u, v διανύσματα. Τα μητρώα αυτά χαρακτηρίζονται πλήρως από τα τρία
αυτά στοιχεία και δεν είναι ανάγκη να τα υπολογίζουμε κάθε φορά.

Πώς γίνεται η διάσπαση LU ? Με στοιχειώδη τριγωνικά μητρώα / Μετασχηματισμοί Gauss:

L = I–u ∗ eT
k

όπου το u είναι το διάνυσμα που θέλω να ”πειράξω” βάζοντας 0 από τον οδηγό και πάνω και από κάτω τα στοιχεία που
θέλω να μηδενίσω διά τον οδηγό. Με ek συμβολίζουμε το μοναδιαίο διάνυσμα που έχει 1 στην θέση k του οδηγού.Όταν
το μητρώο Gauss χρειαστεί να αντιστραφεί για να αλλάξει μέλος, τότε απλά αλλάζει το πρόσημο των υποδιαγώνιων
στοιχείων του και ο τύπος γίνεται: L = I + u ∗ eT
k

Οδηγός : Το στοιχείο ακριβώς πάνω από αυτά που θέλω να μηδενίσω.

16
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Οδήγηση, αλλαγή δηλαδή του οδηγού, κάνω σε περίπτωση που μου προκύπτει κάποιος οδηγός ίσος με το 0 ή όταν
θέλω να καταλήξω σε πιο ευσταθή αποτελέσματα (η μέθοδος Gauss δεν είναι ευσταθής). Αυτό γίνεται με χρήση των
μεταθετικών μητρώων P , που όπως τα Gauss αποτελούν και αυτά κατηγορία στοιχειωδών μητρώων.

• Μερική οδήγηση : Στην θέση του οδηγού φέρνω το μεγαλύτερο κατ’ απόλυτη τιμή στοιχείο της στήλης του οδη-
γού. Χρειάζομαι μόνο εναλλαγές γραμμών, άρα εφαρμογή των μεταθετικών μητρώων από αριστερά. Το κόστος
της μεθόδου είναι O(n2 ).
• Πλήρης οδήγηση : Στην θέση του οδηγού φέρνω το μεγαλύτερο κατ’ απόλυτη τιμή στοιχείο όλου του μητρώου.
Χρειάζομαι εναλλαγές γραμμών αλλά και στηλών. Το κόστος της μεθόδου είναι O(n3 ).

Εκ των υστέρων πίσω σφάλμα Rigal-Gaches :

∥Ax∗ − b∥
ϵ=
∥A∥∥x∗ ∥ + ∥b∥

Εμπρός σφάλμα μεθόδου :

∥x − x∗ ∥ 2ϵ ∗ κ(A)

∥x∥ 1 − ϵ ∗ κ(A)

όπου κ(A) ο δείκτης κατάστασης του μητρώου.

Επομένως η LU εξαιτίας των μετασχηματισμών Gauss, που στηρίζονται σε πράξεις εσωτερικών γινομένων, δεν είναι
3
ευσταθής στην γενική περίπτωση. Το κόστος της μεθόδου είναι 2n3 για την διάσπαση LU και 2n2 για την εμπρός και
πίσω αντικατάσταση.

Οικονομική αποθήκευση LU

Η MATLAB έχει την δυνατότητα όταν εισάγουμε lu(A) να μας επιστρέφει ένα και μόνο μητρώο του οποίου το άνω
τριγωνικό μέρος είναι το U και το κάτω τριγωνικό το L. Με αυτόν τον τρόπο μπορεί να εξοικονομεί την μισή περίπου
μνήμη σε σχέση με την εντολή [L, U ] = lu(A), που θα επέστρεφε δύο ξεχωριστά μητρώα με «αχρείαστη» δέσμευση
μνήμης λόγω των πολλών μηδενικών.

Block LU / LU παραγοντοποίηση με ορμαθούς

Η LU μπορεί να εφαρμοστεί και σε μητρώα των οποίων κάθε στοιχείο δεν είναι αριθμός, αλλά ένα άλλο μητρώο. Για πα-
ράδειγμα μπορεί να έχουμε ένα μητρώο των οποίων τα στοιχεία είναι μητρώα υποδιπλάσιας διάστασης (A11 A12 ; A21 A22 ).
Επομένως το Α μπορεί να διασπαστεί σε :
[ ] [ ] [ ]
A11 A12 I 0 U11 U12
= ×
A21 A22 L21 I 0 U22

Κάνοντας τις πράξεις υπολογίζουμε τους αγνώστους L και U .

L11 = A21 A−1


11
U11 = A11
U12 = A12
U22 = A22 − A21 A−1
11 A12 (συμπλήρωμα Schur)

17
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

3.2 Παραγοντοποίηση Cholesky


Εφαρμόζεται σε μητρώα που επιπλέον είναι:

• Συμμετρικά: A = AT .
• Θετικά ορισμένα : όταν για κάθε διάνυσμα x ισχύει ότι xT Ax > 0 ή όταν οι ιδιοτιμές του μητρώου Α είναι
θετικές.

Το τελευταίο μπορώ να το επαληθεύω είτε ελέγχοντας αν το μητρώο είναι διαγώνια κυρίαρχο ή μέσω του θεωρήματος
Gerschgorin, σύμφωνα με το οποίο:

Κάθε γραμμή του μητρώου ορίζει μια ανίσωση. Το διαγώνιο στοιχείο μείον την ιδιοτιμή λ σε απόλυτη τιμή είναι
μικρότερο ή ίσο από το άθροισμα των απολύτων των υπόλοιπων στοιχείων της γραμμής, π.χ.:

|a11 − λ| ≤ |a12 + a13 + ... + a1n |

Κάθε ανίσωση ορίζει έναν κύκλο που έχει κέντρο το διαγώνιο στοιχείο και ακτίνα το δεύτερο μέλος της ανίσω-
σης. Η ένωση των κυκλικών δίσκων που ορίζουν οι ανισώσεις, μας δίνει το πεδίο ορισμού των ιδιοτιμών.

Εφόσον ικανοποιούνται τα κριτήρια το μητρώο διασπάται σε δύο παράγοντες R και RT , με τον R να είναι κάτω
3
τριγωνικό μητρώο και προφανώς ο RT άνω τριγωνικό μητρώο. Η μέθοδος είναι ευσταθής και έχει κόστος n3 (ακριβώς
το μισό της LU).

3.3 Παραγοντοποίηση QR
Η εφαρμογή της συνηθίζεται σε μητρώα τα οποία είναι μη τετραγωνικά, m × n. Η παραγοντοποίηση QR στηρίζεται
στα στοιχειώδη ερμιτιανά μητρώα ή μετασχηματισμούς Householder. Το μητρώο διασπάται σε ένα ορθογώνιο μητρώο
Q και σε ένα άνω τριγωνικό μητρώο R.

Στοιχειώδη ερμιτιανά μητρώα / μετασχηματισμοί Householder:

Ορθογώνιοι και συμμετρικοί : H −1 = H T και H T = H


T
Παράγονται από τον τύπο : H = I − 2 uu
uT u

Διάνυσμα Householder : u = x + sign(ξ) ∗ ∥x∥2 ∗ eκ

x : το διάνυσμα που θέλω να μηδενίσω με 0 πάνω από το ξ (εφόσον υπάρχουν στοιχεία)

ξ : ο αντίστοιχος «οδηγός» της QR, το στοιχείο δηλαδή πάνω από αυτά που θέλω να μηδενίσω

eκ : το μοναδιαίο διάνυσμα με 1 στην θέση κ, δηλαδή την θέση του ξ στο διάνυσμα

Έστω λοιπόν πως θέλω να εφαρμόσω QR σε ένα 4 × 3 μητρώο. Σκοπός είναι να το ανάγω σε άνω τριγωνική μορφή,
δηλαδή να μηδενίσω τα υποδιαγώνια στοιχεία και για τις 3 στήλες. Άρα θα χρειαστώ 3 μετασχηματισμούς Householder :

H1 ∗ A = R1 , για τον μηδενισμό της πρώτης στήλης


H2 ∗ R1 = R2 , για τον μηδενισμό της δεύτερης στήλης
H3 ∗ R2 = R , για τον μηδενισμό της τρίτης

Επομένως έχουμε :

18
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

H3 ∗ H2 ∗ H1 ∗ A = R ⇒ A = H1 ∗ H2 ∗ H3 ∗ R ⇒ A = Q ∗ R

Επίλυση συστήματος με QR

Ax = b ⇒ QRx = b ⇒ H1 H2 H3 Rx = b ⇒ Rx = (H3 (H2 (H1 b)))

Αφού εκμεταλλευτώ το διάνυσμα b για τον οικονομικό υπολογισμό του νέου δεξιού μέλους ακολουθεί η πίσω αντικα-
τάσταση.

Οικονομική αποθήκευση QR : Όμοια με την LU , το μητρώο QR(A) περιλαμβάνει το μητρώο R στο άνω τριγωνικό
μέρος (από την διαγώνιο και πάνω), ενώ στο υπόλοιπο μητρώο περιλαμβάνονται κατά στήλη τα κανονικοποιημένα δια-
νύσματα Householders που χρησιμοποιήθηκαν κατά την παραγοντοποίηση. Για να τα εξάγω αυτά φαντάζομαι 1 στην
διαγώνιο και 0 από πάνω.

Κατά την αντίστροφη διαδικασία, όταν θέλουμε να κατασκευάσουμε το QR(A), τοποθετούμε τον R στο άνω τριγωνικό
μέρος και έπειτα κανονικοποιούμε τα διανύσματα Householder ώστε να χωρέσουν στο μητρώο. Αυτό επιτυγχάνεται με
την διαίρεση του αρχικού διανύσματος με το στοιχείο του οποίου η θέση αντιστοιχεί στην διαγώνιο του QR(A) ή αλ-
λιώς στην θέση του ξ.

Ευστάθεια μεθόδου και κόστος : Η μέθοδος QR με Householder είναι πάντα ευσταθής ενώ το κόστος για ένα m × n
2
μητρώο είναι Ω = 2n (m−n)
3

3.4 Μέθοδος κανονικών εξισώσεων


Χρησιμοποιείται για μητρώα A , m × n στοιχείων. Πολλαπλασιάζοντας με τον ανάστροφο του μητρώου A και τα
δύο μέλη και υποθέτοντας πως το συμμετρικό AT A είναι θετικά ορισμένο, μπορεί να ακολουθήσει παραγοντοποίηση
Cholesky :

Ax = b => AT Ax = AT b ⇒ Cx = b∗
C = RT R και έπειτα εμπρός και πίσω αντικατάσταση RT z = b∗ , Rx = z

Κόστος μεθόδου : Εκμεταλλευόμενοι την συμμετρική δομή του C που θα προκύψει, το κόστος του AT A είναι :
(2m−1)(n+1)n
2

Έπειτα για τον υπολογισμό του δεύτερου μέλους : (2m − 1)n

n3
Cholesky και εμπρός και πίσω αντικατάσταση : 3 + n2 + n2

Μειονεκτήματα μεθόδου :

1) Ο πολλαπλασιασμός με τον ανάστροφο μπορεί να καταστρέψει οποιαδήποτε ειδική δομή του A.


2) Αύξηση πολυπλοκότητας, άρα και σφαλμάτων.
3) Τετραγωνισμός του δείκτη κατάστασης.

3.5 ΖΗΤΟΥΜΕΝΑ
Μας δίνεται μητρώο A και μας ζητάει να το παραγοντοποίησουμε σε LU με χρήση στοιχειωδών τριγωνικών μητρώων
ή QR με χρήση στοιχειωδών ερμιτιανών μητρώων. Αντίστροφα, μετά την παραγοντοποίηση ενός μητρώου μας δίνεται
η οικονομική αποθήκευση LU (A) ή QR(A) και μας ζητάει να υπολογίσουμε το αρχικό και άγνωστο μητρώο A.

Ποια είναι τα κριτήρια παραγοντοποίησης της Cholesky και ποιο το κόστος?

Ποιο είναι το κόστος της μεθόδου κανονικών εξισώσεων και ποια τα μειονεκτήματα?

19
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

3.6 ΑΠΑΝΤΗΣΕΙΣ
Ποτέ δεν υπολογίζουμε τα μητρώα Householder! Το εξωτερικό τους γινόμενο κοστίζει πολύ σε πράξεις, πολυπλοκό-
τητα και ακρίβεια. Αυτό που προσπαθούμε να εκμεταλλευτούμε κάθε φορά είναι να υπολογίζουμε κατά στήλες το κάθε
βήμα ώστε να προκύπτουν εσωτερικά γινόμενα.

Για παράδειγμα στο βήμα 1, θα εκτελούσα ξεχωριστά H1 ∗ A(:, 1), H1 ∗ A(:, 2), H1 ∗ A(:, 3). Έπειτα H2 ∗ R1 (:, 2),
H2 ∗ R1 (:, 3) και τέλος H3 ∗ R2 (:, 3). Οι ήδη μηδενισμένες στήλες δεν επηρεάζονται από τους μετέπειτα μετασχημα-
τισμούς.

Ομοίως για τον υπολογισμό του Q, χρησιμοποιώ υπολογισμούς κατά γραμμές ή κατά στήλες χρησιμοποιώντας τα μο-
ναδιαία διανύσματα π.χ. Q ∗ e2 = (H1 ∗ (H2 ∗ (H3 ∗ e2 ))) για τον υπολογισμό της δεύτερης στήλης.

Οι ανακλαστές Householder μπορούν να χρησιμοποιηθούν και σε άλλες παραγοντοποίησεις, πχ σε αναγωγή του αρχι-
κού μητρώου σε τριδιαγώνιο. Η ιδέα της QR μπορεί να χρησιμοποιηθεί και σε αυτές τις περιπτώσεις.

Δύο συστήματα που χρησιμοποιούν τον ίδιο παράγοντα A μπορούν να συγχωνευτούν σε ένα σύστημα με πολλαπλά
δεξιά μέλη. Έτσι λόγω αυξημένης τοπικότητας θα έχουμε BLAS-3 και λίγο μικρότερο κόστος επίλυσης πχ τα Ax = b
και Ay = z , μπορούν να γίνουν A[x, y] = [b, z].

20
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

3.7 Ασκήσεις κεφαλαίου


1. Έστω το διάνυσμα e = [1, 4, zeros(1, 6), 2, −2] και ότι θέλουμε να υπολογίσουμε μητρώα τα οποία έχουν τις
παρακάτω ιδιότητες:

a) Το M είναι κάτω τριγωνικό με μονάδες στη διαγώνιο και τέτοιο ώστε M ∗ e = eye(10, 1).
b) Το H είναι ορθογώνιο και τέτοιο ώστε H ∗ e = γ ∗ eye(10, 1) για κάποιο βαθμωτό γ.

i) Να υπολογίσετε τα μητρώα και καθώς και το γ για το συγκεκριμένο e.


ii) Δίνεται το διάνυσμα z. Να δείξετε και να γράψετε πώς μπορεί να υπολογιστεί φθηνά χρησιμοποιώντας
αποκλειστικά πράξεις BLAS-1, το z.
iii) Να υπολογίσετε τον (άνω τριγωνικό) παράγοντα R (και όχι το Q) της παραγοντοποίησης QR του
μητρώου = tril(ones(4, 3)) με βάση τα παραπάνω.

2. Έστω U άνω τριγωνικό και αντιστρέψιμο με μη μηδενικά στοιχεία στη διαγώνιο και το σύστημα U x = ej , όπου
ej είναι το διάνυσμα με μονάδα στη j θέση και μηδέν αλλού.

a) Να δείξετε ότι το αριθμητικό κόστος της επίλυσης του είναι O(j 2 ).


b) Ποιο είναι το ακριβές κόστος επίλυσης σε αριθμητικές πράξεις;

3. Δίνεται το μιγαδικό μητρώο G ∈ Cn×n για το οποίο γνωρίζουμε ότι μπορεί να γραφτεί ως G = i ∗ A + I, όπου
το A είναι πραγματικό, Σ.Θ.Ο. και τριδιαγώνιο. Έστω επίσης ότι πρέπει να λύσουμε το σύστημα G ∗ x = b με
b ∈ Rn×n και x ∈ Cn×n με x = xR + ixI όπου τα διανύσματα xR και xI είναι το πραγματικό και φανταστικό
μέρος του x αντίστοιχα.

a) Να δείξετε ότι το παραπάνω πρόβλημα είναι ισοδύναμο με τη λύση ενός πραγματικού γραμμικού συστήμα-
τος διπλάσιας διάστασης (δηλαδή 2n × 2n) που μπορεί να γραφτεί ως S ∗ X = B.
b) Να γράψετε την block LU διάσπαση του μητρώου S.
c) Να περιγράψετε συνοπτικά τα βήματα για την επίλυση του συστήματος S ∗ X = B χρησιμοποιώντας την
προηγούμενη διάσπαση του S.

4. Έστω ότι έχετε διαθέσιμους τους παράγοντες L και U της παραγοντοποίησης LU ενός γενικού μητρώου , δη-
λαδή A = LU και ότι γίνεται η εξής «ανανέωση» :
Αντικαθίσταται η τελευταία στήλη του με ένα άλλο διάνυσμα, έστω ρ.
Αν γνωρίζετε ότι το νέο μητρώο = [(:, 1), …, (:, n − 1), ρ] είναι επίσης αντιστρέψιμο, να περιγράψετε με βήματα
που αντιστοιχούν σε εντολές τύπου BLAS-3, έναν αποδοτικό τρόπο επίλυσης του συστήματος Bx = y.

5. Έστω ότι μετά την παραγοντοποίηση QR ενός μητρώου , το αποτέλεσμα που επιστρέφεται στο είναι [1, 4, 5; 1, 2, 6; 1, 2, 3].
Από αυτά τα στοιχεία να υπολογίσετε τους παράγοντες Q, R και το αρχικό .

6. Έστω ότι ο δείκτης κατάστασης του υπολογισμού της λύσης ενός συστήματος x = b ως προς την ευκλείδια
νόρμα είναι 101 × 106, όπου ενώ γνωρίζετε ότι η υπολογισμένη λύση ικανοποιεί ∥b − Ax∗ ∥2 = 10−12 καθώς
επίσης ότι ∥x∥2 = 10, ∥A∥2 = 10 και ∥b∥2 = 1. Να υπολογίσετε ένα άνω φράγμα για τη νόρμα του σχετικού
εμπρός σφάλματος.

7. Έστω ότι έχει χρησιμοποιηθεί παραγοντοποίηση QR ενός μητρώου και ότι στο τέλος τα στοιχεία του έχουν
αντικατασταθεί με τα παρακάτω: [ 8,1,6; 1,5,7; 1,2,2; 1,2,2 ]

a) Έστω ότι b = [5, −15, 0, 30]T . Με βάση μόνο αυτά τα στοιχεία να υπολογίσετε τη λύση του για το αρχικό
και άγνωστο προς το παρόν .
b) Να υπολογίσετε το αρχικό μητρώο χωρίς να υπολογίσετε άμεσα το Q.

21
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

c) Να υπολογίσετε το Q.

Προσοχή: Για πλήρη βαθμό θα πρέπει να λύσετε το α) όπως ζητείται από την εκφώνηση, δηλαδή χωρίς να χρη-
σιμοποιήσετε το αποτέλεσμα του β). Ομοίως, το β) πρέπει να λυθεί πριν το γ).

8. a) Ο δείκτης κατάστασης ενός γενικού μητρώου ως προς την ευκλείδια νόρμα είναι άμεσα υπολογίσιμος από
τις ιδιοτιμές του μητρώου. ( Σ / Λ )
b) Η επίλυση τριγωνικών συστημάτων με πολλά δεξιά μέλη παρουσιάζει καλή τοπικότητα και ανήκει στην
κατηγορία BLAS-3. ( Σ / Λ )
c) Με το πέρας της παραγοντοποίησης LU ενός μητρώου με μερική οδήγηση, οπότε επιστρέφονται στην
έξοδο τα μητρώα L και U και το διάνυσμα μεταθέσεων , είναι οι οδηγοί άμεσα διαθέσιμοι στην έξοδο;

9. Έστω το μητρώο = [4, −8, 1; 6, 5, 7; 0, −10, −3]. Ποιό θα είναι το στοιχείο «οδηγός» στο πρώτο βήμα:

a) αν δε χρησιμοποιηθεί οδήγηση;
b) αν χρησιμοποιηθεί μερική οδήγηση;
c) αν χρησιμοποιηθεί πλήρης οδήγηση;

10. Έστω ότι για ένα μητρώο είναι εφικτές και η LU και η QR παραγοντοποίηση. Με βάση τα κριτήρια του επιστημο-
νικού υπολογισμού, να αναφέρετε ένα λόγο για τον οποίο συνήθως προτιμάται η LU για επίλυση τετραγωνικού
συστήματος Ax = b και ένα λόγο που θα μπορούσε να καταστήσει τη χρήση της QR πιο επιθυμητή.

11. Έστω ότι έχουμε εφαρμόσει τον αλγόριθμο παραγοντοποίησης QR στο μητρώο που επιστρέφει στη θέση του
μητρώο με στοιχεία [3, −2, 1; 2, 1, 4; 1, −1, 2].

a) Να υπολογίσετε το αρχικό μητρώο .


b) Να χρησιμοποιήσετε τα παραπάνω για να λύσετε το σύστημα Ax = b , όπου b = 1/3 ∗ [−5, −16, 4]T .

12. Έστω κάποιο συμμετρικό , π.χ. = [4, −1, −1; −1, 4, 1; −1, 1, 4].

a) Να υπολογίσετε κατάλληλο διάνυσμα u με αριθμητικά ασφαλή τρόπο και τριδιαγώνιο μητρώο , τέτοια ώστε
T = QAQT , όπου το Q είναι ένας στοιχειώδης ανακλαστής που παράγεται από το u (μην υπολογίσετε τα
στοιχεία του Q).
b) Να αποθηκεύσετε τα αποτελέσματα στο χώρο που περιείχε τον έτσι ώστε να μη χρειάζεται παραπάνω χώ-
ρος και επιπλέον να μπορείτε αν χρειαστεί να ανακατασκευάσετε τον από αυτά. Περιγράψτε σύντομα πώς
θα κάνατε την ανακατασκευή του .

13. a) Η συνάρτηση qr της MATLAB εφαρμόζει μετασχηματισμό Householder για να υπολογίσει τους παράγο-
ντες [q, r] = qr(A). Aν θέσουμε B = q ∗ r και υποθέσουμε ότι ο πολλαπλασιασμός q ∗ r των παραγόντων
γίνεται με πολύ μεγάλη ακρίβεια, να εξηγήσετε αν είναι σωστός ο ισχυρισμός ότι η ποσότητα ∥B−A∥
∥A∥ θα
είναι μικρή.
b) Δίνονται οι εντολές MATLAB s = sqrt(sum(x.∧ 2)) που επιστρέφουν την ευκλείδια νόρμα του x στο s.
i) Να εξηγήσετε (ένα παράδειγμα αρκεί) γιατί μπορεί να επιστρέφει inf ακόμα και όταν η νόρμα είναι
πολύ μικρότερη από inf και επομένως δεν ενδείκνυται να τις χρησιμοποιήσουμε.
ii) Να εξηγήσετε πως μπορείτε να αποφύγετε αυτό το πρόβλημα.
iii) Έστω η πράξη AT Ax = b που επιλύεται με παραγοντοποίηση Cholesky. Είναι πίσω ευσταθής;

22
ΚΕΦΑΛΑΙΟ 3. ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

14. Δίνεται A = [1, 1, 2, 1; 0, 2, 1, −1; 0, 3, −1, 1; 0, 4, 1, 2] . Να υπολογίσετε διάνυσμα Householder ώστε ο ορθο-
γώνιος ανακλαστής που παράγεται από το διάνυσμα, να μηδενίζει τη θέση (4, 2) του μητρώου καθώς επίσης
και του B = P AP T . Επίσης να υπολογίσετε το B (να φέρετε εις πέρας όλες τις αριθμητικές πράξεις).

15. 1) Να βρείτε ακριβώς ένα μητρώο μετάθεσης για το οποίο ισχύει ότι το μητρώο B = P A για οποιοδήποτε
μητρώο έχει για στοιχεία τα βij = αn+1−i,j , όπου ως συνήθως αi,j συμβολίζει το στοιχείο στη θέση (i, j)
του A. Τότε αν το μητρώο L είναι άνω τριγωνικό, ποια θα είναι η δομή του μητρώου C:=PLP;
2) Με βάση τα παραπάνω να υποδείξετε έναν τρόπο για τον υπολογισμό της παραγοντοποίησης ενός μητρώου
A ως A = U L , όπου U, L αντίστοιχα είναι άνω και κάτω τριγωνικά και το U έχει μονάδες στη διαγώνιο.
Μπορείτε να υποθέσετε ότι δεν απαιτείται οδήγηση.
3) Να χρησιμοποιήσετε την παραπάνω ιδέα (πάντα χωρίς οδήγηση) για να λύσετε το γραμμικό σύστημα
Ax = e1 ,όπου e1 είναι το διάνυσμα [1, 0, 0]T και A = [10, −1, −1; −1, 8, −1; −1, −1, 5] ώστε να εξοικο-
νομήσετε περίπου n2 πράξεις κατά τη λύση σε σχέση με την κλασσική LU (πρέπει να δείξετε πού οφείλεται
η εξοικονόμηση), όπου βέβαια στην περίπτωσή μας n = 3.

23
ΚΕΦΑΛΑΙΟ 4

ΑΡΑΙΑ ΜΗΤΡΩΑ ΚΑΙ ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ

4.1 Αραιά μητρώα / Μητρώα ζώνης


Πρόκειται για μητρώα που έχουν πολλά μηδενικά στοιχεία. Η ειδική αυτή μορφή των μητρώων μας αρέσει γιατί εξοι-
κονομούμε πράξεις αλλά και μνήμη.

Για να υπολογίζω τις πράξεις με αραιά μητρώα , απλά δεν λαμβάνω υπόψη τις πράξεις με μηδενικά. Αυτές δηλαδή που
γνωρίζω εκ των προτέρων πως θα δώσουν 0. Γενικότερα για να κάνω εξοικονόμηση πράξεων δεν πρέπει να αφήνω την
Matlab να υπολογίζει πράγματα που μπορώ να ξέρω από πριν το αποτέλεσμα τους πχ η πράξη A − A για μένα δεν
κοστίζει τίποτα , αλλά για την MATLAB θα κοστίσει n2 .

Χαρακτηριστικά μητρώα ζώνης :

Άνω Hessenberg είναι ένα άνω τριγωνικό μητρώο με μία υποδιαγώνιο. Κάτω Hessenberg είναι ένα κάτω τριγωνικό
μητρώο με μία υπερδιαγώνιο.

Toeplitz είναι τα μητρώα των οποίων η κάθε διαγώνιος αποτελείται από τα ίδια στοιχεία.

Μέθοδοι αποθήκευσης :

Προφανώς δεν χρειάζεται να αποθηκεύουμε τα μηδενικά στοιχεία παρά μόνο τα nnz (non zero values) , έτσι ώστε να
εξοικονομήσουμε μνήμη.

COO (coordinates): Κατασκευάζουμε έναν πίνακα με 3 στήλες. Η πρώτη περιέχει τα nnz, η δεύτερη την γραμμή και η
τρίτη την στήλη στην οποία ανήκει το κάθε στοιχείο. Με λίγα λόγια ένας πίνακας με τις συντεταγμένες του κάθε nnz.

CSR (compressed sparsed rows): Κατασκευάζουμε έναν πίνακα με 4 γραμμές. Στην δεύτερη γραμμή τοποθετώ τα nnz
σαρώνοντας το μητρώο κατά γραμμή. Στην πρώτη γραμμή αριθμώ τα στοιχεία αυτά κατά αύξουσα σειρά. Στην τρίτη
αντιστοιχούμε την στήλη που ανήκει το κάθε στοιχείο. Στην τέταρτη τοποθετούμε τον αριθμό (από την πρώτη γραμμή)
του πρώτου μη μηδενικού στοιχείου κάθε γραμμής.

CSC (compressed sparsed columns): Κατασκευάζουμε έναν πίνακα με 4 γραμμές. Στην δεύτερη γραμμή τοποθετώ τα
nnz σαρώνοντας το μητρώο κατά στήλη. Στην πρώτη γραμμή αριθμώ τα στοιχεία αυτά κατά αύξουσα σειρά. Στην τρίτη
αντιστοιχούμε την γραμμή που ανήκει το κάθε στοιχείο. Στην τέταρτη τοποθετούμε τον αριθμό (από την πρώτη γραμμή)
του πρώτου μη μηδενικού στοιχείου κάθε στήλης.

24
ΚΕΦΑΛΑΙΟ 4. ΑΡΑΙΑ ΜΗΤΡΩΑ ΚΑΙ ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ

4.2 Διακριτοποίηση
Είναι η μέθοδος μέσα από την οποία απλοποιούμε/προσεγγίζουμε μια διαδικασία για την οποία, λόγω πολυπλοκότη-
τας, δεν υπάρχουν τα κατάλληλα μαθηματικά εργαλεία για να μελετηθεί. Εφόσον λοιπόν πρόκειται για προσέγγιση
αναγκαστικά προκύπτει και σφάλμα. Μας ενδιαφέρει η επίλυση διαφορικών εξισώσεων δευτέρου βαθμού :

d2 u du
− (x) + b(x) + c(x)u(x) = d(x)
dx2 dx

Το x έχει πεδίο ορισμού: XL ≤ x ≤ XU

Σκοπός μας είναι να μελετήσουμε τις τιμές της συνάρτησης u. Εξετάζουμε πρώτα την περίπτωση που ισχύουν οι συν-
θήκες Dirichlet, δηλαδή μας δίνεται η τιμή της συνάρτησης u στα δύο άκρα του πεδίου ορισμού. Η Διακριτοποίηση
αποτελείται από τρία βήματα :

• Διακριτοποίηση πεδίου ορισμού: Εφόσον οι τιμές του x είναι άπειρες θα πρέπει να διαλέξουμε κάποιες αντιπρο-
σωπευτικές τιμές, οι οποίες χάριν απλότητας ισαπέχουν. Έστω n αυτές οι τιμές. Στο πρώτο βήμα λοιπόν «σπάμε»
το πεδίο ορισμού σε n ισαπέχοντες κόμβους και υπολογίζουμε την απόσταση h μεταξύ των κόμβων καθώς και
το x σε κάθε περίπτωση:
XU −XL
h= n+1 , xj = XL + jh με j = 0, 1, 2, ..., n + 1

• Διακριτοποίηση ΔΕ: Πλέον πρέπει να βρούμε κάτι απλούστερο να αντικαταστήσουμε τους όρους της ΔΕ που μας
δυσκολεύουν περισσότερο και αυτοί είναι η πρώτη και δεύτερη παράγωγος. Χρησιμοποιούμε τους αντίστοιχους
τύπους του Taylor :
uj+1 −uj−1 (1)
2h = uj + O(h2 )
uj−1 +uj+1 −2uj (2)
h2 = uj + O(h2 )

οι οποίοι έπειτα από την διακριτοποίηση (παράλειψη όρων ασάφειας) γίνονται :


uj+1 −uj−1 (1)
2h = uj
uj−1 +uj+1 −2uj (2)
h2 = uj + O(h2 )

Για να ισχύει πλέον η ισότητα και να μπορώ να αντικαταστήσω στην ΔΕ, εισάγω την συνάρτηση πλέγματος U η
οποία αποτελεί μια προσέγγιση της πραγματικής τιμής u και αντικαθιστώντας στην ΔΕ παίρνω:
Uj−1 +Uj+1 −2Uj Uj+1 −Uj−1
h2 + bj 2h + cj Uj = dj , j = 1...n

• Εύρεση Διακριτής λύσης : Αφού λοιπόν «τακτοποιώ» τα U κατά αύξουσα σειρά και πηγαίνω τους σταθερούς
όρους στο δεξί μέλος καταστρώνω τις εξισώσεις. Εφόσον έχω n αγνώστους , χρειάζομαι n εξισώσεις. Είναι σημα-
ντικό η πρώτη και η τελευταία εξίσωση να έχουν από 2 αγνώστους :
2 1 b1 u0 u0
(c1 + h2 )U1 + (− h2 + 2h )U2 = d1 + h2 + b1 2h
b b
−( h12 + 2hj )Uj−1 + (cj + h22 )Uj + (− h12 + 2hj )Uj+1 = dj , j = 2, ..., n − 1
(− h12 − 2h
bn
)Un−1 + (cn + h22 )Un = dn + un+1
h2 − bn 2h
un+1

Από τα παραπάνω είναι εύκολο να δούμε πως οι άγνωστοι U1 , U2 ....Un μπορούν να βρεθούν μέσα από το σύ-
στημα AU = b. Το μητρώο A είναι πάντα τετραγωνικό διάστασης n × n (όσοι είναι οι άγνωστοι) και τριδιαγώνιο
. Επομένως χρησιμοποιούμε οικονομική παραγοντοποίηση LU ή Cholesky (όπως έχουμε πει προτιμάμε την τε-
λευταία).

Η επόμενη περίπτωση είναι οι συνθήκες Neumann , σύμφωνα με τις οποίες δεν μας δίνονται οι τιμές της u στα
άκρα αλλά οι παραγώγοι τους (ή μπορεί να ισχύει μόνο για το ένα άκρο). Πλέον οι άγνωστοι γίνονται n + 2 και
απαιτώ n + 2 εξισώσεις, για j = 0 και j = n. Παρατηρούμε όμως πως προκύπτουν οι όροι U−1 και Un+1 . Για να

25
ΚΕΦΑΛΑΙΟ 4. ΑΡΑΙΑ ΜΗΤΡΩΑ ΚΑΙ ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ

τους ξεφορτωθώ αυτούς χρησιμοποιώ τον τύπο του Taylor για την πρώτη παράγωγο και λύνω ως προς αυτούς,
για να αντικαταστήσω στην αρχική και τελική εξίσωση ώστε να έχω όμοια με πριν 2 αγνώστους και να μπορώ να
καταλήξω σε τριδιαγώνιο σύστημα.

4.3 Ασκήσεις κεφαλαίου


1. a) Αν δύο μητρώα είναι άνω Hessenberg τότε το γινόμενό τους θα είναι επίσης άνω Hessenberg. ( Σ / Λ )
b) Αν δύο μητρώα είναι Toeplitz τότε το άθροισμά τους είναι επίσης Toeplitz. ( Σ / Λ )

2. a) Αν ένα μητρώο είναι αντιστρέψιμο, τότε πάντα υπάρχει παραγοντοποίηση A = LU , όπου L είναι κάτω
τριγωνικό και U άνω τριγωνικό μητρώο. ( Σ / Λ )
b) Το αντίστροφο ενός τυχόντος, αντιστρέψιμου κάτω διδιαγώνιου μητρώου είναι επίσης κάτω διδιαγώνιο. (
Σ/Λ)
c) Να εξηγήσετε με ένα παράδειγμα γιατί ο παρακάτω ισχυρισμός μπορεί να είναι σωστός:

Υπάρχουν μητρώα, έστω ένα από αυτά, για τα οποία η επίλυση του γραμμικού συστήματος Ax = b να
κοστίζει O(n) αριθμητικές πράξεις ενώ η επίλυση του Bx = b, όπου B = An να στοιχίζει O(n3 ) πράξεις.
Προσοχή: Θεωρούμε ότι το B είναι γνωστό.

3. a) Αν το A είναι τριδιαγώνιο, η τελευταία στήλη του Aκ μπορεί να υπολογιστεί με κυρίαρχο κόστος πολύ μι-
κρότερο του Ω = O(κn3 ). Να εξηγήσετε ποιο θα είναι το κόστος από τα παρακάτω και να δείξετε ποια θα
είναι η σταθερά α που του αντιστοιχεί;

Ω1 = α1 nκ2 , Ω2 = α2 n2 κ , Ω3 = α3 nκ , Ω4 = α4 n

b) Έστω το μητρώο Hessenberg . Να δείξετε ότι (χωρίς οδήγηση και εφόσον υπάρχει) η παραγοντοποίηση LU
του H κοστίζει Ω = αn2 + O(n). Επίσης να υπολογίσετε τον κυρίαρχο συντελεστή α.
4. Έστω η συνάρτηση y : R → R της οποίας οι παράγωγοι μέχρι 4ης τάξης υπάρχουν και είναι συνεχείς στο διά-
στημα [0, 1]. Η συνάρτηση ικανοποιεί την ΣΔΕ: y ′′ (t) − 4ty ′ (t) = 16t για t ∈ (0, 1).
Θέλουμε να προσδιορίσουμε τη λύση της παραπάνω εξίσωσης εφαρμόζοντας πλέγμα αποτελούμενο από 3 ισα-
πέχοντες εσωτερικούς κόμβους στο διάστημα (0, 1). Οι συνοριακές συνθήκες που διαθέτουμε είναι y(0) = 1 και
y(1) = 0. Η διακριτοποίηση των διαφορικών τελεστών θα γίνει με χρήση κεντρισμένων πεπερασμένων διαφο-
ρών.
Να υπολογίσετε τους συντελεστές του μητρώου και του δεξιού μέλους που προκύπτουν από τη διακριτοποίηση
της Δ.Ε.

5. Έστω η συνάρτηση u : R → R για την οποία γνωρίζουμε ότι οι παράγωγοι u(j) (x), j = 1, .., 4 είναι συνεχείς
για x ∈ [−1, 1]. Γνωρίζουμε επίσης ότι u(−1) = 0 , u(1) = 1 και ότι η u ικανοποιεί τη διαφορική εξίσωση:

–u(2) (x) + µu(1) (x) + u(x) = x2 ,

Η ακριβής τιμή του µ δεν είναι γνωστή αλλά εξαρτάται από το πρόβλημα. Θέλουμε να προσεγγίσουμε τη λύση
αριθμητικά, λύνοντας γραμμικό σύστημα που προκύπτει από κεντρισμένες πεπερασμένες διαφορές δεύτερης τά-
ξης για την προσέγγιση των παραγώγων.

a) Να διακριτοποιήσετε την εξίσωση χρησιμοποιώντας πλέγμα ισαπέχοντων κόμβων στο διάστημα (−1, 1)
όπου h είναι η απόσταση μεταξύ διαδοχικών κόμβων. Να γράψετε προσεκτικά το γραμμικό σύστημα Aw =
b που πρέπει να λυθεί. Τα στοιχεία των A και b πρέπει να είναι όσο πιο απλοποιημένα γίνεται.
b) Έστω ότι εφαρμόζεται απαλοιφή Gauss με μερική οδήγηση για την παραγοντοποίηση του παραπάνω συ-
στήματος. Να υπολογίσετε σε ποιο ή σε ποια πραγματικά διαστήματα επιτρέπεται να βρίσκεται ο µ ώστε
να μη χρειάζεται εναλλαγή γραμμών στο πρώτο βήμα της απαλοιφής.

26
ΚΕΦΑΛΑΙΟ 4. ΑΡΑΙΑ ΜΗΤΡΩΑ ΚΑΙ ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ

2
6. Ενδιαφέρει η επίλυση της ΣΔΕ με την εξής μορφή: − d dx
u(x)
2 + 2 du(x)
dx + x u(x) = x , στο διάστημα x ∈ [1, 2]
2

Γνωρίζουμε ότι u(1) = 0 , u(2) = 1.


Να διακριτοποιήσετε με πεπερασμένες κεντρισμένες διαφορές χρησιμοποιώντας n = 4 εσωτερικά και ισαπέχο-
ντα σημεία στο παραπάνω διάστημα και να γράψετε το σύστημα των εξισώσεων που προκύπτει, δηλαδή AU = F .

7. Δίνεται η διαφορική εξίσωση u′′ (x) + (µ + 1)u′ (x) − (1 + 10x)u(x) = 0 στο [0, 2] με συνοριακές συνθήκες
u(0) = 40 , u(2) = 200 και προσεγγίζουμε τη λύση με κεντρισμένες πεπερασμένες διαφορές και ακρίβεια τάξης
O(h2 ) όπου h είναι η απόσταση μεταξύ κόμβων στο πλέγμα διακριτοποίησης.

a) Να υπολογίσετε μητρώο και δεξιό μέλος τέτοια ώστε το διάνυσμα g που ικανοποιεί το σύστημα Ag = b να
προσεγγίζει τη λύση u στους κόμβους.
b) Να εξηγήσετε γιατί αν ενδιαφερόμασταν για καλύτερη προσέγγιση και χρησιμοποιούσαμε n εσωτερικούς
κόμβους, το κόστος της επίλυσης μπορεί να είναι μόνο O(n) πράξεις α.κ.υ..
c) Έστω ότι η συνοριακή συνθήκη αλλάζει στο 0 και γίνεται u′ (0) = µ
10 + 1. Ποιο θα είναι το νέο γραμμικό
σύστημα;

8. Έστω η συνάρτηση u : R → R που ικανοποιεί τη διαφορική εξίσωση −u′′ (x) + (µ + 2)xu(x) = x2 για κάθε
x ∈ [0, 1], με συνοριακές συνθήκες u(0) = 1 , u(1) = 0.

a) Να διακριτοποιήσετε το πρόβλημα χρησιμοποιώντας πλέγμα n = 4 ισαπέχοντων εσωτερικών σημείων και


κεντρισμένες πεπερασμένες διαφορές 2ης τάξης και να γράψετε το αλγεβρικό σύστημα που προκύπτει ως
Ab = c. Πρέπει να γράψετε ακριβώς τις αριθμητικές τιμές των στοιχείων των A, c .
b) Ποια είναι μια ελάχιστη συνθήκη που πρέπει να ικανοποιεί η άγνωστη συνάρτηση u για να επιτρέπει το
σφάλμα διακριτοποίησης να είναι 2ης τάξης (ως προς την απόσταση των διαδοχικών σημείων του πλέγμα-
τος).
Απάντηση : Να είναι η 4η παράγωγος συνεχής (και άρα φραγμένη) στο κλειστό διάστημα [0, 1]. Προκύ-
πτει γιατί το σφάλμα διακριτοποίησης σε κάθε κόμβο του πλέγματος είναι ανάλογο του h2 u(x∗ ) για x∗
κοντά στο x. Επομένως για διακριτοποίηση 2ης τάξης πρέπει να εξασφαλίζεται ότι η 4η παράγωγος είναι
φραγμένη.
c) Αν χρησιμοποιούσαμε n κόμβους, τότε το κόστος υλοποίησης του γραμμικού συστήματος θα ήταν O(nk).
Ποιο θα είναι το k και γιατί;

27

You might also like