Παράδειγμα #5 ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ & ΜΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης



Σχετικά έγγραφα
Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

Επίλυση ελλειπτικών διαφορικών εξισώσεων με πεπερασμένες διαφορές

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, , 3 ο ΕΞΑΜΗΝΟ ΑΠΑΝΤΗΣΕΙΣ ΕΡΓΑΣΙΑΣ #1: ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟ ΙΑΣΤΟΛΗΣ ΚΑΙ ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ ΕΠΙΜΕΛΕΙΑ: Σ.

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

Κεφάλαιο 4. Επίλυση ελλειπτικών διαφορικών εξισώσεων µε πεπερασµένες διαφορές

Αριθμητική Ανάλυση και Εφαρμογές

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες)

Παράδειγμα #5 EΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΕΘΟΔΟ NEWTON ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης. ( k ) ( k)

Κεφ. 6Α: Συνήθεις διαφορικές εξισώσεις - προβλήματα δύο οριακών τιμών

Παράδειγμα #4 ΑΛΓΕΒΡΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

Παράδειγμα #4 EΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Παράδειγμα #3 EΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΑΠΕΥΘΕΙΑΣ ΜΕΘΟΔΟΥΣ Επιμέλεια: Ν. Βασιλειάδης

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Κεφάλαιο 2. Μέθοδος πεπερασµένων διαφορών προβλήµατα οριακών τιµών µε Σ Ε

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

πεπερασμένη ή Η αναλυτική λύση της διαφορικής εξίσωσης δίνεται με τη βοήθεια του Mathematica: DSolve u'' r 1 u' r 1, u 1 0, u' 0 0,u r,r

A Τελική Εξέταση του μαθήματος «Αριθμητική Ανάλυση» Σχολή Θετικών Επιστημών, Τμήμα Μαθηματικών, Πανεπιστήμιο Αιγαίου

Μάθημα Επιλογής 8 ου εξαμήνου

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

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

Ειδικά θέματα στην επίλυση

Παράδειγμα #2 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΚΑΙ ΡΙΖΕΣ ΕΞΙΣΩΣΕΩΝ. ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια)

Αριθμητική Ανάλυση και Εφαρμογές

Επίλυση Γραµµικών Συστηµάτων

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Παράδειγμα #9 ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΟΡΙΑΚΩΝ ΤΙΜΩΝ ΕΛΛΕΙΠΤΙΚΕΣ ΣΔΕ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]

(συνθήκη συμμετρίας) (4) Το παραπάνω πρόβλημα μπορεί να περιγράψει τη μεταβατική πλήρως ανεπτυγμένη ροή σε κυλινδρικό αγωγό.

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 2004, 3 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ #4: ΠΑΡΕΜΒΟΛΗ

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, , 5 Ο ΕΞΑΜΗΝΟ ΔΙΔΑΣΚΩΝ: Δ. Βαλουγεώργης Απαντήσεις: ΠΡΟΟΔΟΣ 1, Επιμέλεια λύσεων: Γιώργος Τάτσιος

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

ιδάσκοντες :Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής,Τµήµα Β (Περιττοί) : Αριθµητική Επίκ.

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΣΥΓΚΡΙΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΡΙΘΜΗΤΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΑΙ ΕΠΙΛΥΣΗΣ ΓΡΑΜΜΙΚΩΝ ΚΑΙ ΜΗ-ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ: ΧΡΗΣΗ ΤΟΥ MATLAB

Πίνακας Περιεχομένων

ΧΡΟΝΙΚΗ ΟΛΟΚΛΗΡΩΣΗ. Για την επίλυση χρονομεταβαλλόμενων προβλημάτων η διακριτοποίηση στο χώρο γίνεται με πεπερασμένα στοιχεία και είναι της μορφής:

Εφαρμοσμένα Μαθηματικά ΙΙ

0.5, Μεταφορά θερμότητας ανάμεσα σε κυλίνδρους μεγάλου μήκους (χωρίς ασπίδα):

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Αριθμητική Γραμμική Άλγεβρα (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

3. Γραμμικά Συστήματα

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

Αριθμητική Ανάλυση και Εφαρμογές

Κεφάλαιο 12: Υδραυλική ανάλυση δικτύων διανομής

Παναγιώτης Ψαρράκος Αν. Καθηγητής

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α. Πρόλογος...15 ΚΕΦΑΛΑΙΟ 1. Σφάλματα

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη)

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Αστικά υδραυλικά έργα

ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ. Σταυράκης

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

D = / Επιλέξτε, π.χ, το ακόλουθο απλό παράδειγμα: =[IA 1 ].

Ασκήσεις Γενικά Μαθηµατικά Ι Οµάδα 5 (λύσεις)

2x 1 + x 2 x 3 + x 4 = 1. 3x 1 x 2 x 3 +2x 4 = 3 x 1 +2x 2 +6x 3 x 4 = 4

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ, , 5 Ο ΕΞΑΜΗΝΟ ΕΡΓΑΣΙΑ #5: ΥΠΕΡΒΟΛΙΚΑ ΠΡΟΒΛΗΜΑΤΑ ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ: ΕΠΙΜΕΛΕΙΑ: Ιωάννης Λυχναρόπουλος

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ

ΜΕΜ251 Αριθμητική Ανάλυση

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

ΠΛΗ 12- Σχέση ισοδυναμίας, γραμμικά συστήματα και απαλοιφή Gauss

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

ΦΑΙΝΟΜΕΝΑ ΜΕΤΑΦΟΡΑΣ ΙΙ ΜΕΤΑΦΟΡΑ ΘΕΡΜΟΤΗΤΑΣ ΚΑΙ ΜΑΖΑΣ

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

Εφαρμοσμένα Μαθηματικά ΙΙ 7ο Σετ Ασκήσεων (Λύσεις) Γραμμικά Συστήματα- Απαλοιφή Gauss Επιμέλεια: I. Λυχναρόπουλος

Κεφ. 3: Παρεμβολή. 3.1 Εισαγωγή. 3.2 Πολυωνυμική παρεμβολή Παρεμβολή Lagrange Παρεμβολή Newton. 3.3 Παρεμβολή με κυβικές splines

Αναγνώριση Προτύπων Ι

ΘΕΩΡΙΑ ΠΙΝΑΚΩΝ. Ορισμός 1: Ένας πίνακας Α με m γραμμές και n στήλες,

Αριθµητική Ανάλυση. Ενότητα 3 Αριθµητικές Μέθοδοι για την επίλυση Γραµµικών Συστηµάτων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Παράδειγμα #1 ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Αναγνώριση Προτύπων Ι

Πεπερασμένες Διαφορές.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

Παράδειγµα #11 ΠΡΟΒΛΗΜΑΤΑ ΑΡΧΙΚΩΝ ΤΙΜΩΝ Σ Ε ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Ανάλυση Ηλεκτρικών Κυκλωμάτων

ΚΩ ΙΚΑΣ ΕΠΙΛΥΣΗΣ ΜΕΤΑΦΟΡΑΣ ΘΕΡΜΟΤΗΤΑΣ ΜΕ ΑΚΤΙΝΟΒΟΛΙΑ ΣΕ ΚΛΕΙΣΤΕΣ ΚΟΙΛΟΤΗΤΕΣ ΜΕ ΙΑΧΥΤΙΚΕΣ ΚΑΙ ΓΚΡΙΖΕΣ ΕΠΙΦΑΝΕΙΕΣ

0 + a = a + 0 = a, a k, a + ( a) = ( a) + a = 0, 1 a = a 1 = a, a k, a a 1 = a 1 a = 1,

Επιστηµονικοί Υπολογισµοί (Αρ. Γρ. Αλγεβρα)Επαναληπτικές µέθοδοι και 31 Μαρτίου Ηµι-Επαναληπτικές Μέθοδο / 17

f στον κόμβο i ενός πλέγματος ( i = 1, 2,,N

Περιεχόμενα. Πρόλογος 3

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κεφ. 6: Επίλυση ελλειπτικών διαφορικών εξισώσεων με πεπερασμένες διαφορές προβλήματα οριακών τιμών

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

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

Λύσεις ασκήσεων Άσκηση 1: Cengel and Ghajar, Κεφάλαιο 13: Προβλήματα και

1 Επανάληψη εννοιών από τον Απειροστικό Λογισμό

Επιμέλεια απαντήσεων: Ιωάννης Λυχναρόπουλος

Transcript:

Παράδειγμα #5 ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ & ΜΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης. Το παρακάτω αλγεβρικό τρι-διαγώνιο σύστημα έχει προκύψει από την επίλυση µιας συνήθους διαφορικής εξίσωσης που περιγράφει την θερμοκρασιακή κατανομή σε µία ράβδο µε αδιάστατο μήκος 0 : -... -... - T T Ti. N - TN A 0 0, i,,,n,. 0 B Οι άγνωστοι του συστήματος, i Ν, αντιστοιχούν στις θερμοκρασίες i της ράβδου στα ισαπέχοντα σημεία 0< i <,, ενώ οι ποσότητες A και B είναι οι θερμοκρασίες στα δύο άκρα της ράβδου =0 και = αντίστοιχα. Να λυθεί το τρι-διαγώνιο σύστημα µε τις µμεθόδους: (i) Απαλοιφή Gauss (ii) Παραγοντοποίηση LU (iii) Cholesy (iv) Αλγόριθµο Thomas (v) Jacobi (vi) Gauss-Seidel (vii) S.O.R και (viii) S.S.O.R. Η επιλογή των παραμέτρων και ο αριθμός των εξισώσεων είναι ελεύθερη. Για την ακριβή επίλυση του προβλήματος απαιτείται η επίλυση του προβλήματος για τρεις διαφορετικές τιμές του Ν που να διαφέρουν τουλάχιστον κατά µία τάξη μεγέθους (Ενδεικτικά 3, 30 και 300). Τέλος να γίνει ολοκληρωμένη και πλήρης σύγκριση των μεθόδων.

Απαλοιφή Gauss Η απαλοιφή Gauss αποτελεί την πλέον διαδεδομένη και κλασσική μεθοδολογία άμεσης επίλυσης αλγεβρικών συστημάτων. Ο αναγκαίος αριθμός πράξεων είναι ιδιαίτερα μεγάλος και σε πολλές περιπτώσεις η χρήση της απαλοιφής Gauss σε τυπικούς προσωπικούς υπολογιστές γίνεται ιδιαίτερα δυσχερής. Τονίζεται επίσης ότι η απαλοιφή Gauss πρέπει να γίνεται με οδήγηση. Διαφορετικά, ο αλγόριθμος είναι ασταθής και σε περιπτώσεις αριθμητικά ιδιόμορφων συστημάτων οδηγεί σε λάθος αποτελέσματα. Παραγοντοποίηση LU Ο πίνακας συντελεστών A γράφεται σαν γινόμενου ενός κάτω τριγωνικού πίνακα L και ενός άνω τριγωνικού πίνακα U με μονάδες στη διαγώνιο. Τα άγνωστα στοιχεία των πινάκων L και U υπολογίζονται μέσω αναγωγικών σχέσεων που βασίζονται στη βασική σχέση A LU. Αφού βρεθούν οι πίνακες L και U το σύστημα επιλύεται με τη χρήση ενός ενδιαμέσου άγνωστου διανύσματος y ως εξής: Ab LUb Ly b, όπου U y. Πρώτα επιλύουμε για το ενδιάμεσο διάνυσμα y και στη συνέχεια για το. Μέθοδος Cholesy Στη περίπτωση που ο πίνακας A είναι συμμετρικός προκύπτει, εφαρμόζοντας την T παραγοντοποίηση LU, ότι ο πίνακας U L. Η ιδιότητα αυτή είναι ιδιαίτερα σημαντική και μειώνει δραστικά τον αναγκαίο αριθμό πράξεων. Η μεθοδολογία είναι γνωστή σαν αλγόριθμος Cholesy και αποτελεί μία από τις πλέον αποτελεσματικές μεθόδους επίλυσης συστημάτων με συμμετρικούς πίνακες συντελεστών. Για την εφαρμογή της συγκεκριμένης μεθόδου το αρχικό σύστημα A b τροποποιήθηκε στο A b ώστε να αποφευχθεί η χρήση μιγαδικών αριθμών. Αλγόριθμος Thomas Ο αλγόριθμος Thomas εφαρμόζεται μόνο σε τριδιαγώνια συστήματα και στην περίπτωση αυτή αποτελεί την πλέον αποτελεσματική μεθοδολογία επίλυσης.

Σχετικά με τις άμεσες μεθόδους σημειώνεται ότι, με εξαίρεση τους αλγόριθμους Thomas και Cholesy, οι υπόλοιπες τεχνικές, τουλάχιστον στην κλασσική τους μορφή, δεν εκμεταλλεύονται την ειδική δομή των αλγεβρικών συστημάτων και θα πρέπει να χρησιμοποιούνται με φειδώ, μόνο για πιλοτικούς σκοπούς ή στη περίπτωση μικρών συστημάτων ( N 0 ). Τα τελευταία χρόνια έχουν αναπτυχθεί βελτιωμένες και εξειδικευμένες άμεσες μέθοδοι όπως ο γρήγορος μετασχηματισμός Fourier (Fast Fourier Transorm, FFT). Όταν οι πίνακες συντελεστών είναι αριθμητικά ιδιόμορφοι η προτεινόμενη τεχνική είναι η μέθοδος διάσπασης (αποκλεισμού) των ιδιόμορφων τιμών (Singular Value Decomposition, SVD). Περνούμε τώρα στη δεύτερη κατηγορία μεθόδων επίλυσης, αυτή των επαναληπτικών τεχνικών. Στην επίλυση μεγάλων συστημάτων οι επαναληπτικές μέθοδοι εφόσον διατυπωθούν σωστά φαίνεται να έχουν περισσότερες δυνατότητες από τις άμεσες μεθόδους. Η υπεροχή τους οφείλεται στο γεγονός ότι οι περισσότερες επαναληπτικές μέθοδοι αξιοποιούν τα δύο βασικά χαρακτηριστικά των συστημάτων που προκύπτουν από την μέθοδο των πεπερασμένων διαφορών (αραιοί και διαγώνια κυρίαρχοι πίνακες). Οι περισσότερες επαναληπτικές τεχνικές βασίζονται στην διατύπωση αναγωγικών τύπων επαναληπτικού χαρακτήρα. Έστω το σύστημα A b. Προσθέτοντας και στις δύο πλευρές του συστήματος το διάνυσμα Q έχουμε A b A Q Q b Q Q A b Q Q A Q b I Q A Q b που γράφεται στην γενική επαναληπτική μορφή n n G (4.3.) όπου n είναι ο αριθμός επανάληψης, Q b και τα διανύσματα n και G I Q A είναι ο πίνακας επανάληψης, n δηλώνουν τις τιμές του αγνώστου διανύσματος μετά από n και n επαναλήψεις αντίστοιχα. Αφού κάνουμε μια αρχική 0 εκτίμηση εφαρμόζουμε τον επαναληπτικό αλγόριθμο (4.3.). Η επαναληπτική διαδικασία ολοκληρώνεται όταν όλες οι τιμές του έχουν συγκλίνει στην επιθυμητή

ακρίβεια, δηλαδή όταν ικανοποιούν το κριτήριο τερματισμού n n i i n i, ma (4.3.3α) όπου ma το μέγιστο επιτρεπτό σχετικό σφάλμα. Πολλές φορές χρησιμοποιούμε εναλλακτικά κριτήρια τερματισμού όπως το μέγιστο απόλυτο σφάλμα n n (4.3.3β) i i ma ή την Ευκλείδεια νόρμα N n n i i ma. (4.3.3γ) i Ο πίνακας επανάληψης G είναι μείζονος σημασίας σε σχέση με τη γρήγορη ή αργή σύγκλιση ή απόκλιση του επαναληπτικού αλγορίθμου. Εάν ορίσουμε το διάνυσμα του σφάλματος λύση n n μετά από n επαναλήψεις σαν την διαφορά ανάμεσα στην αριθμητική n και την αναλυτική λύση, δηλαδή n, (4.3.4) εύκολα προκύπτει ότι n n n n 0 G G G. (4.3.5) Παίρνοντας μία οποιαδήποτε νόρμα της (4.3.4) μπορούμε να εκτιμήσουμε την διάδοση του αρχικού σφάλματος μετά από n επαναλήψεις: n n 0 n 0 G G. (4.3.6) Επομένως η διάδοση του σφάλματος εξαρτάται άμεσα από την νόρμα του πίνακα επανάληψης G. Αποδεικνύεται ότι G όταν G G η, όπου φασματική ακτίνα του πίνακα επανάληψης G. Επομένως, η επαναληπτική μέθοδος θα G συγκλίνει μόνο όταν και βεβαίως όσο μικρότερη είναι η φασματική ακτίνα τόσο γρηγορότερη θα είναι η σύγκλιση της επαναληπτικής διαδικασίας. G Αντίθετα όταν η επαναληπτική διαδικασία θα αποκλίνει. Η επιλογή λοιπόν

του πίνακα G (ή του Q ) είναι καθοριστικής σημασίας και η κάθε επαναληπτική μέθοδος ορίζεται ανάλογα με την μορφή του πίνακα G στον γενικό επαναληπτικό αλγόριθμο (4.3.). Ακολουθεί μία σύντομη ανασκόπηση των τεσσάρων πλέον διαδεδομένων επαναληπτικών αλγορίθμων. Καταρχήν ο πίνακας συντελεστών A του συστήματος A b διασπάται σε τρεις πίνακες A DL U, όπου D, L και U είναι ένας διαγώνιος, ένας κάτω τριγωνικός και ένας άνω τριγωνικός πίνακας και ο κάθε ένας από αυτούς περιλαμβάνει τα αντίστοιχα στοιχεία του πίνακα A. Στη συνέχεια οι επαναληπτικές τεχνικές Jacobi (J), Gauss Seidel (GS), Successive Over Relaation (SOR) και Symmetric Successive Over Relaation (SSOR) διατυπώνονται ως εξής: Jacobi n n D LU D b ή b a N i i ij j a ii j ji n n Gauss Seidel n n DL U D L b ή b a a i N i i ij j ij j aii j ji n n n Μέθοδος S.O.R n n DL U D DL b ή

b a a i N n n n n i i ij j ij j i a ii j ji Η σύγκλιση και ο υπολογιστικός χρόνος που απαιτείται εξαρτάται άμεσα από την παράμετρο ω, η οποία κυμαίνεται από 0. Ο αριθμός των επαναλήψεων καθώς το ω τείνει στο συνεχώς μειώνεται ενώ από κάποια οριακή τιμή του ω οι επαναλήψεις που απαιτούνται αυξάνουν, (βλέπε Πίνακες 3 και 4 και Σχήματα και ). Για ω= η μέθοδος S.O.R εκπίπτει στην μέθοδο Gauss-Seidel. Όταν η πολυπλοκότητα του προβλήματος αυξάνει είναι αναγκαίο να ανατρέξουμε σε πιο εξειδικευμένες και αναβαθμισμένες τεχνικές όπως οι μέθοδοι Conjugate Gradient (CG) και Ελαχιστοποίησης Υπολοίπων (Minimal Residual, MINRES και Generalized Minimal Residual, GMRES). Τέλος, σημειώνεται ότι οι κλασσικές όπως και οι πιο εξειδικευμένες μέθοδοι επανάληψης αποκτούν νέα δυναμική όταν συνδυασθούν με μεθόδους πολλαπλών πλεγμάτων (Multigrid Methods). Οι κώδικες που χρησιμοποιούνται σε κάθε μέθοδο παρατίθενται στο Παράρτημα. Οι τιμές των παραμέτρων είναι A 0 και B 00 Το κριτήριο τερματισμού για τις επαναληπτικές μεθόδους είναι το σχετικό σφάλμα να είναι μικρότερο του.0e-06. Οι αρχικές τιμές του διανύσματος της θερμοκρασίας είναι για όλες τις επαναληπτικές μεθόδους οι μηδενικές.

Στους Πίνακες και απεικονίζονται τα αποτελέσματα για αριθμό εξισώσεων 30 και 300 αντίστοιχα. Σημειώνεται ότι στον Πίνακα τα αποτελέσματα έχουν τυπωθεί ανά 0 κόμβους. Απαλοιφή Gauss Παραγοντοποίηση LU Μέθοδος Cholesy Αλγόριθμος Thomas Jacobi 44 επαναλήψεις G-S 0 επαναλήψεις S.O.R 990 επαναλήψεις (ω=.5) 0 0 0 0 0 0 0 0 0.033.9033.903.9033.903.9039.9039.903 0.0664 5.80645 5.80645 5.80647 5.80644 5.80639 5.80639 5.8065 0.0997 8.70968 8.70967 8.7097 8.70966 8.70958 8.70958 8.70937 0.39.690.689.694.689.678.678.65 0.66 4.563 4.56 4.567 4.56 4.5598 4.5598 4.5564 0.993 7.4935 7.4933 7.494 7.4933 7.497 7.497 7.4877 0.36 30.358 30.356 30.363 30.356 30.337 30.337 30.39 0.658 33.58 33.578 33.586 33.578 33.557 33.557 33.506 0.990 36.903 36.9 36.908 36.9 36.877 36.877 36.8 0.33 39.036 39.033 39.033 39.033 39.0397 39.0397 39.0337 0.3654 4.93548 4.93545 4.93554 4.93545 4.9358 4.9358 4.93454 0.3987 44.8387 44.83868 44.83876 44.83868 44.83839 44.83839 44.8377 0.439 47.7494 47.749 47.7499 47.749 47.746 47.746 47.7409 0.465 50.6456 50.6453 50.645 50.6453 50.6448 50.6448 50.64409 0.4983 53.54839 53.54835 53.54845 53.54836 53.54803 53.54803 53.5479 0.536 56.456 56.4557 56.4567 56.4558 56.455 56.455 56.45049 0.5648 59.35484 59.35479 59.3549 59.3548 59.35447 59.35447 59.3537 0.5980 6.5806 6.580 6.58 6.5804 6.5769 6.5769 6.5693 0.63 65.69 65.65 65.634 65.66 65.609 65.609 65.606 0.6645 68.0645 68.06447 68.06456 68.06449 68.0645 68.0645 68.0634 0.6977 70.96774 70.96769 70.96778 70.9677 70.96738 70.96738 70.96666 0.7309 73.87097 73.8709 73.870 73.87095 73.8706 73.8706 73.86993 0.764 76.7749 76.7743 76.7745 76.7748 76.77386 76.77386 76.773 0.7973 79.6774 79.67736 79.67747 79.6774 79.677 79.677 79.67653 0.8306 8.58065 8.58059 8.5807 8.58064 8.58037 8.58037 8.57985 0.8638 85.48387 85.48383 85.4839 85.48388 85.48363 85.48363 85.4837 0.8970 88.3870 88.38706 88.3875 88.387 88.38689 88.38689 88.3865 0.930 9.903 9.903 9.9037 9.9033 9.906 9.906 9.8986 0.9635 94.9355 94.9353 94.9359 94.9356 94.9344 94.9344 94.93 0.9957 97.09677 97.09676 97.0968 97.09678 97.0967 97.0967 97.0966 00 00 00 00 00 00 00 Πίνακας : Θερμοκρασιακή κατανομή για 30 κόμβους.

Gauss Απαλοιφή Παραγοντοποίηση LU Μέθοδος Cholesy Αλγόριθμος Thomas Jacobi 8975 επαναλήψεις G-S 4735 επαναλήψεις S.O.R 90 επαναλήψεις (ω=.5) 0 0 0 0 0 0 0 0 0.033 0.9900 0.9899 0.9904 0.990 0.9357 0.9478 0.9748 0.0645 3.8904 3.8893 3.8946 3.8908 3.94 3.469 3.73 0.0968 6.7907 6.7887 6.7986 6.797 6.6588 6.95 6.4735 0.90 9.690 9.688 9.706 9.696 9.0358 9.406 9.78 0.63.594.5876.606.5936.04308.0949.9873 0.935 5.497 5.487 5.5095 5.4948 4.98493 5.044 5.754 0.58 8.390 8.387 8.4 8.396 7.9965 7.999 8.588 0.58 3.94 3.865 3.347 3.973 30.8777 30.95684 3.33 0.903 34.97 34.856 34.79 34.987 33.896 33.9744 34.084 0.36 37.0930 37.0846 37.4 37. 36.7857 36.8837 37.0953 0.3548 40.9934 40.9834 40.03 40.005 39.74643 39.84883 40.07345 0.387 43.8937 43.886 43.94 43.903 4.707 4.80 43.05679 0.494 46.7940 46.786 46.864 46.804 45.6884 45.79547 46.0463 0.456 49.6944 49.6806 49.778 49.7054 48.659 48.77503 49.080 0.4839 5.5947 5.580 5.63 5.606 5.64094 5.7589 5.059 0.56 55.4950 55.4795 55.533 55.507 54.684 54.747 55.00533 0.5484 58.3953 58.3787 58.437 58.4087 57.65 57.73986 57.9968 0.5806 6.957 6.77 6.3454 6.3093 60.603 60.7369 60.98876 0.69 64.960 64.756 64.55 64. 63.6453 63.7385 63.9866 0.645 67.0963 67.0733 67.584 67.9 66.634 66.74368 66.97789 0.6774 70.09967 70.09703 70.065 70.037 69.64908 69.7530 69.97464 0.7097 73.08970 73.0869 73.0966 73.094 7.6690 7.76606 7.979 0.749 76.07973 76.07694 76.08685 76.0835 75.69354 75.7865 75.977 0.774 79.06977 79.0675 79.0769 79.078 78.709 78.807 78.97389 0.8065 8.05980 8.05744 8.06656 8.06 8.7544 8.854 8.9760 0.8387 85.04983 85.04766 85.05598 85.056 84.7909 84.8505 84.97888 0.870 88.03987 88.0380 88.0459 88.040 87.8865 87.87778 87.9846 0.903 9.0990 9.0837 9.0348 9.03069 90.8694 90.90695 90.9867 0.9355 94.0993 94.088 94.030 94.004 93.90 93.9375 93.998 0.9677 97.00997 97.00935 97.06 97.008 96.95567 96.96836 96.99564 00 00 00 00 00 00 00 Πίνακας : Θερμοκρασιακή κατανομή για 300 κόμβους.

ω Iterations Iterations (N=30) (N=300) 0. 45 405660 0.3 4394 78699 0.5 56 547 0.7 650 7784 0.8 367 65078 950 4735. 663 33858.4 445 3598.6 73 5033.8 7595.9 34 4033.95 8 35.99 676 500.995 3659 30.997 67 487.999 8663 3848 Πίνακας 3α: Αριθμός επαναλήψεων για την μέθοδο S.O.R και κριτήριο τερματισμού 0e-06. ω Time(s) Time(s) (N=30) (N=300) 0. 0.65 780 0.3 0.5 790 0.5 0.5 485 0.7 0.5 337 0.8 0.056 83 0.065 05. 0.047 47.4 0.035 0.6 0.056 65.8 0.056 3.9 0.056 7.95 0.056 9.99 0.08 6.995 0.5 3.997 0. 0.999 0.85 60 Πίνακας 4α: Υπολογιστικός χρόνος για την μέθοδο S.O.R και κριτήριο τερματισμού 0e-06. ω Iterations Iterations (N=30) (N=300) 0. 406 0755 0.3 805 6066 0.5 568 453 0.7 46 3645 0.8 373 337 88 783. 9 348.4 6 967.6 0 60.8 58 68.9 70 839.95 56 590.99 74 904.995 397 506.997 37 409.999 6977 695 Πίνακας 3β: Αριθμός επαναλήψεων για την μέθοδο S.O.R και κριτήριο τερματισμού 0e-03. ω Time(s) Time(s) (N=30) (N=300) 0. 0.0603 49 0.3 0.0468 7 0.5 0.033 0 0.7 0.056 6.5 0.8 0.033 5 0.033. 0.033 0.5.4 0.056 9.6 0.033 7.5.8 0.056 5.9 0.056 4.95 0.0468.5.99 0.0468 4.995 0.0938 7.997 0. 0.5.999 0.3 3 Πίνακας 4β: Υπολογιστικός χρόνος για την μέθοδο S.O.R και κριτήριο τερματισμού 0e-03.

Επαναλήψεις 000 9500 8000 6500 5000 3500 000 0500 9000 7500 6000 4500 3000 500 0 0. 0.3 0.5 0.7 0.8..4.6.8.9 ω.95.99.995.997.999 Ν=30(eps=.0e-06) N=30(eps=.0e-03) Σχήμα : Αριθμός επαναλήψεων συναρτήσει της παραμέτρου ω για την μέθοδο S.O.R και 30 κόμβους και διαφορετικά κριτήρια τερματισμού. 000000 00000 Επαναλήψεις 0000 000 00 0 0. 0.3 0.5 0.7 0.8..4.6.8.9 ω.95.99.995.997.999 Ν=300(eps=.0e-06) N=300(eps=.0e-03) Σχήμα : Αριθμός επαναλήψεων συναρτήσει της παραμέτρου ω για την μέθοδο S.O.R και 300 κόμβους και διαφορετικά κριτήρια τερματισμού.

Στον Πίνακα 5 απεικονίζεται ο υπολογιστικός χρόνος που απαιτείται για την επίλυση του προβλήματος με δύο διαφορετικά κριτήρια τερματισμού όσον αφορά τις επαναληπτικές μεθόδους. Μέθοδος CPU time(sec) CPU time(sec) eps=.0e-03 eps=.0e-06 Απαλοιφή Gauss χωρίς οδήγηση 0.5 0.5 Απαλοιφή Gauss με μερική οδήγηση 0.47 0.47 Απαλοιφή Gauss με ολική οδήγηση 0.7 0.7 Παραγοντοποίηση LU 3 (???) 3 (???) Μέθοδος Cholesy 0.3 0.3 Αλγόριθμος Thomas 0.03 0.03 Μέθοδος Jacobi 0 84 Μέθοδος Gauss-Seidel 5 87 S.O.R(ω opt =.99) 4 6 Πίνακας 5: Υπολογιστικός χρόνος όλων των μεθόδων για την περίπτωση των 300 κόμβων.

. Να λυθούν µε απαλοιφή Gauss και χρησιμοποιώντας αριθμητική δύο σημαντικών ψηφίων τα συστήματα 0. 005 y 0. 5 α) και β) y 00y 00 y Περιγράψτε µε σαφήνεια τα βήματα επίλυσης και συγκρίνετε τα αποτελέσματα µε τα αντίστοιχα αποτελέσματα ακρίβειας πολλών σημαντικών ψηφίων. α) Τα αποτελέσματα που προκύπτουν με αριθμητική πολλών σημαντικών ψηφίων είναι: Το επαυξημένο μητρώο είναι: 0. 005 0. 5 Αναδιατάσσω τις εξισώσεις συμφωνά με την μερική οδήγηση: 0. 005 0. 5 Πολ/ζω την η γραμμή με (-0.005) και την προσθέτω στην η. Τότε προκύπτει: y 0. 497487 0. 995 0. 495 και 0. 505. Εάν χρησιμοποιήσουμε αριθμητική δύο σημαντικών ψηφίων τότε η επίλυση του συστήματος είναι: Το επαυξημένο μητρώο είναι: 0. 005 0. 5 Αναδιατάσσω τις εξισώσεις συμφωνά με την μερική οδήγηση: 0. 005 0. 5 Πολ/ζω την η γραμμή με (-0.005) και την προσθέτω στην η. Τότε προκύπτει: y 0.49 και 0. 5 0. 99 0. 49

β) Τα αποτελέσματα που προκύπτουν με αριθμητική πολλών σημαντικών ψηφίων είναι: Το επαυξημένο μητρώο θα είναι 00 00 Αναδιατάσσω τις εξισώσεις συμφωνά με την μερική οδήγηση: 00 00 Πολ/ζω την η γραμμή με (-) και την προσθέτω στην η : y 0.497487 και 0. 505. 99 99 Εάν χρησιμοποιήσουμε αριθμητική δύο σημαντικών ψηφίων τότε η επίλυση του συστήματος είναι: Το επαυξημένο μητρώο είναι: 00 00 Αναδιατάσσω τις εξισώσεις συμφωνά με την μερική οδήγηση: 00 00 Πολ/ζω την η γραμμή με (-) και την προσθέτω στην η. Τότε προκύπτει: y 0.49 και 0. 5. 00 99 3. Να βρεθεί ο επιπλέον αριθμός πράξεων (προσθέσεις / αφαιρέσεις και πολλαπλασιασμοί / διαιρέσεις) που απαιτείται για την απαλοιφή Gauss µε πλήρη οδήγηση σε σχέση µε την απαλοιφή Gauss χωρίς οδήγηση. Στην μέθοδο απαλοιφής Gauss το πλήθος των προσθαφαιρέσεων είναι περίπου ίσο με το πλήθος των πολλαπλασιασμών και των διαιρέσεων. Συνολικά για την απαλοιφή Gauss χωρίς οδήγηση απαιτούνται

3 3 n 3n n n On 3 3 Η μερική οδήγηση δεν συντελεί στην εκτέλεση επιπλέον πράξεων διότι η κύρια ιδέα της μερικής οδήγησης είναι η εύρεση του μέγιστου κατ απόλυτη τιμή στοιχείου του πίνακα Α και όχι ένα πλήθος πολ/σμων-διαιρέσεων ή προσθαφαιρέσεων για την απαλοιφή κάποιου αγνώστου. Πρέπει να σημειωθεί ότι η διαδικασία εύρεσης του μέγιστου κατ απόλυτη τιμή στοιχείου αναπαρίσταται από ένα πλήθος προσθαφαιρέσεων. Στην περίπτωση αυτή, ο επιπλέον αριθμός πράξεων που απαιτούνται για την εύρεση του μέγιστου στοιχείου είναι i n nn i On 4. Εάν ο πίνακας Α ενός γραµµικού συστήματος b αναλυθεί σε όπου D είναι ένας διαγώνιος πίνακας L και U είναι κάτω και άνω τριγωνικοί πίνακες αντίστοιχα, να αποδειχθεί ότι και οι τρεις επαναληπτικές μέθοδοι Jacobi, GS και SOR μπορούν να γραφούν στη γενική μορφή M N M b Να βρεθούν οι πίνακες M και N σε σχέση µε τους πίνακες D, L και U. Αν ισχύει ότι D L U τότε το γραμμικό σύστημα μπορεί να γραφεί στην μορφή A b ή D L U b. Για την μέθοδο Jacobi ισχύει D L U b D L U b D L U D b δηλαδή είναι ειδική περίπτωση της γενικής μεθόδου Ειδικά για την Jacobi ισχύει N b M J D και L U. N J Για την μέθοδο Gauss-Seidel ισχύει D L U b L D U b L D U L D b όμοια η μέθοδος ανήκει στην γενικής μεθόδου

b N όπου για την Gauss-Seidel ισχύει D L M GS και U N GS. Για την μέθοδο SOR ισχύει ότι ακριβώς για την μέθοδο Gauss-Seidel με την προσθήκη της παραμέτρου ω. Έτσι σε μορφή πινάκων γράφεται b U D D ω ω ωl ή b L D U D L D όμοια η μέθοδος ανήκει στην γενικής μεθόδου b N όπου για την SOR ισχύει L D M SOR και U D N SOR. 5. Να επιλυθεί το µη γραµµικό σύστημα: 0 8 0 3 3,, Θα χρησιμοποιηθεί η μέθοδος Newton όπου ισχύει ), J( και ), J( y y με J συμβολίζεται το Ιακωβιανό μητρώο, το οποίο ισούται με 3 3, J. Κάνοντας χρήση του Mathematica προκύπτουν οι ακριβείς λύσεις 0.,. ή., 0. Αναμένουμε λύσεις. Χρησιμοποιώντας τον παρακάτω κώδικα σε Fortran 90/95:

program NumAnal_5 implicit none real(8)::,g,,,_old,_old,g,gy,jac,s,s,tol,,y integer::i,n,maiter print*,'give initial and ' read*,, n=0 tol=.0e-9 maiter=000 do i=,maiter n=n+ _old= _old= =_old+_old-. g=(_old)**3+(_old)**3-8. =.0 y=.0 g=3*(_old**) gy=3*(_old**) jac=*gy-g*y s=(*gy-g)/jac s=(g-*g)/jac =_old-s =_old-s i(abs(.-(_old/)).le.tol.and.abs(.&- (_old/)).le.tol)then goto 00 endi 00 write(*,*),,n end program NumAnal_5 Τα αποτελέσματα που προκύπτουν χρησιμοποιώντας ως κριτήριο τερματισμού το σχετικό σφάλμα να είναι μικρότερο του 0-9, απεικονίζονται στον παρακάτω πίνακα. Αρχική εκτίμηση Επαναλήψεις 5, 4.0 0.0 0 -, 3 0.0.0 7

6. Να λυθεί µε τη μέθοδο Newton-Raphson το σύστημα (ΠΡΟΑΙΡΕΤΙΚΗ): P είναι µια παράμετρος που καθορίζεται αυθαίρετα. Απάντηση Βλέπε Άσκηση 5, Εργασία 3-004_Απαντήσεις.pd, η οποία βρίσκεται στην ιστοσελίδα του μαθήματος.

ΑΣΚΗΣΗ (i) Κώδικας για την απαλοιφή Gauss. program NumAnal_i!χωρίς οδήγηση implicit none ΠΑΡΑΡΤΗΜΑ real(8),allocatable, dimension(:,:)::a real(8),allocatable, dimension(:)::x integer::i,j,,i,,n=30 real(8)::t=0.,t=00. allocate(a(n,n+),x(n)) A=0.0 Do i=,n A(i,i)=-. Do i=,n- A(i,i+)=. Do i=,n A(i,i-)=. A(,N+)=-T A(N,N+)=-T Do =,N =+ Do j=,n+ A(,j)=A(,j)/A(,) I(==N)eit Do i=,n Do j=,n+ A(i,j)=A(i,j)-A(i,)*A(,j) X(N)=A(N,N+) Do =,N i=(n+)- X(i)=A(i,N+) i=i+ Do j=i,n X(i)=X(i)-A(i,j)*X(j) 8

Do i=,size(x) write(*,*) X(i) End program NumAnal_i Program Gauss!με μερική ή ολική οδήγηση implicit none doubleprecision,allocatable::a(:,:),x(:) integer,allocatable::tx(:) integer::n=000,i,j,,status real::t,pivot,s,tim allocate(a(n,n+),x(n),tx(n)) i (status/=0) Stop 'Not enough memory' open(,ile='ino.dat') A=0.0 Do i=,n A(i,i)=-. Do i=,n- A(i,i+)=. Do i=,n A(i,i-)=. A(,N+)=-0. A(N,N+)=-00. do i=,n TX(i)=i = do while (<=n) pivot=ind_pivot(3,)!εύρεση οδηγού της -γραµµής! s= χωρίς οδήγηση! s= µερική οδήγηση! s=3 πλήρης οδήγηση i (pivot==0) then print*, 'Pivot = 0. Gauss elimination can not continue' stop endi 9

do j=,n+ a(,j)=a(,j)/pivot do i=+,n t=a(i,) do j=,n+ a(i,j)=a(i,j)-a(,j)*t =+ (n)=a(n,n+) do i=n-,,- s=0 do j=i+,n s=s+a(i,j)*(j) (i)=a(i,n+)-s do i=,n write(,*),(i) call CPU_TIME(tim) print*, 'Program has used', tim, 'seconds o CPU time.' Contains subroutine print_table integer::i do i=,n print*, a(i,:) end subroutine print_table real unction ind_pivot(s,) integer,intent(in)::s, integer::i,mai,maj,t real::ma,temp i (s==) then! No pivoting ma=a(,) elsei (s==) then! Partial Pivoting ma=a(,) mai= do i=,n i (abs(a(i,))>abs(ma)) then ma=a(i,) mai=i 0

endi i (mai/=) then do j=,n+ temp=a(,j) a(,j)=a(mai,j) a(mai,j)=temp endi elsei (s==3) then! Full Pivoting ma=a(,) mai= maj= do i=,n do j=,n i (abs(a(i,j))>abs(ma)) then ma=a(i,j) mai=i maj=j endi i (mai/=) then do j=,n+ temp=a(,j) a(,j)=a(mai,j) a(mai,j)=temp endi i (maj/=) then do i=,n temp=a(i,) a(i,)=a(i,maj) a(i,maj)=temp t=tx() TX()=TX(maj) TX(maj)=t endi endi ind_pivot=ma end unction ind_pivot end

(ii) Κώδικας για την παραγωντοποίηση LU. program NumAnal_ii implicit none real, allocatable, dimension(:,:)::u,l,a real, allocatable, dimension(:)::,y real::t,t,g, integer::i,j,n, T=-00. T=-000. n=3 allocate(u(n+,n),l(n+,n),a(n+,n),(n),y(n)) a=0.0;u=0.0;l=0.0 a(,)=-;a(,)= Do i=,n- a(i,i)=- a(i-,i)= a(i+,i)= a(n,n)=-;a(n-,n)= a(n+,)=t;a(n+,n)=t u=0;l=0 do i=,n do j=,n g=0.;=0. do =,i g=l(-,j)*u(j,-)+g =l(j,-)*u(-,j)+ l(i,j)=a(i,j)-g u(j,i)=(a(j,i)-g)/l(i,i) l(n+,i)=a(n+,i) y=0.;y()=l(n+,)/l(,) do i=,n g=0. do =,i- g=l(,i)*y(i-)+g y(i)=(/l(i,i))*(l(n+,i)-g) do i=,n u(n+,i)=y(i) =0.;(n)=u(n+,n)

do j=,n- i=n-j g=0. do =i,n- g=u(+,i)*(i+)+g (i)=u(n+,i)-g write(*,*) end program NumAnal_ii (iii) Κώδικας για την μέθοδο Cholesy program NumAnal_iii implicit none real, allocatable, dimension(:,:)::a real, allocatable, dimension(:)::,b real::t,t integer::i,j,n n=300 ; T=0.0 ; T=00.0 open(,ile='ino.dat') allocate(a(n,n),(n),b(n)) a=0.0;b=0.0 b()=-t;b(n)=-t Do i=,n- a(i,i+)=. Do i=,n a(i,i-)=. Do i=,n a(i,i)=-. call cholesy(a,b,n,) Do i=,n write(,*)(i) end program NumAnal_iii subroutine cholesy(a,b,n,x) implicit none integer n,i,j,, real::a(n,n),b(n),l(n,n),u(n,n),y(n),x(n) =;U=0;A=-A;B=-B 3

Do while (<=n) L(,)=A(,) Do i=,- L(,)=L(,)-L(,i)** L(,)=sqrt(L(,)) Do i=+,n j= L(i,j)=A(i,j)/L(j,j) Do =,j- L(i,j)=L(i,j)-(L(i,)*U(,j))/L(j,j) Do j=,n i= U(i,j)=L(j,i) =+ Do i=,n Y(i)=B(i) Do =,i- Y(i)=Y(i)-L(i,)*Y() Y(i)=Y(i)/L(i,i) Do i=n,,- X(i)=Y(i) Do =i+,n X(i)=X(i)-U(i,)*X() X(i)=X(i)/U(i,i) End subroutine (iv) Κώδικας για τον αλγόριθμο Thomas. program NumAnaliv implicit none real, allocatable, dimension(:)::d,,v,g integer::i,n, real::t,t T=0. T=00. n=3 allocate(d(n),(n),v(n),g(n)) d=0.0 4

d()=-t d(n)=-t v()=- Do i=,n v(i)=--(./v(i-)) g()=d()/v() Do i=,n g(i)=(d(i)-g(i-))/v(i) (n)=g(n) Do i=n-,,- (i)=g(i)-(i+)/v(i) Do i=,n write(*,*)(i) end program NumAnaliv (v) Κώδικας για τον αλγόριθμο Jacobi. program NumAnal_v implicit none real, allocatable, dimension(:,:)::a real, allocatable, dimension(:)::b,,,e real::s,er,t,t,eps integer::i,j,iter,n,maiter n=3 T=00. T=000. maiter=.0e+6 eps=.0e-09 allocate(a(n,n),b(n),(n),(n),e(n)) =. b=0.0 a=0.0 b()=-t b(n)=-t Do i=,n- a(i,i+)=. Do i=,n a(i,i-)=. 5

Do i=,n a(i,i)=- Do iter=,maiter Do i=,n s=0. Do j=,n i (j/=i)then s=s+a(i,j)*(j) Endi (i)=(b(i)/a(i,i))-(s/a(i,i)) e(i)=abs(((i)-(i))/(i)) i(e(i)>eps)then er=e(i) endi I(er<=eps)eit = Do i=,n write(*,*)(i) end program NumAnal_v (vi) Κώδικας για τον αλγόριθμο Gauss-Seidel. program NumAnal_vi implicit none real, allocatable, dimension(:,:)::a real, allocatable, dimension(:)::b,,,e real::s,er,t,t,eps,z integer::i,j,iter,n,maiter n=3 T=00. T=000. maiter=.0e+6 eps=.0e-09 allocate(a(n,n),b(n),(n),(n),e(n)) =. b=0.0 a=0.0 b()=-t b(n)=-t Do i=,n- 6

a(i,i+)=. Do i=,n a(i,i-)=. Do i=,n a(i,i)=- Do iter=,maiter er=0.0 Do i=,n s=0. z=0. i (i/=n)then do j=+i,n s=s+a(i,j)*(j) Endi i(i/=)then do j=,i- z=z+a(i,j)*(j) endi (i)=(b(i)/a(i,i))-(s/a(i,i))-z/a(i,i) e(i)=abs(((i)-(i))/(i)) i(e(i)>eps)then er=e(i) endi I(er<=eps)eit = Do i=,n write(*,*)(i) end program NumAnal_vi (vii) Κώδικας για τον αλγόριθμο S.O.R. program NumAnal_vii implicit none real, allocatable, dimension(:,:)::a real, allocatable, dimension(:)::,_old,eps,sam,b,s real::error,epsilon,w,t,t integer::i,j,maiter,l,n n=3 T=00. 7

T=000. w=. maiter=000 epsilon=.0e-6 allocate(a(n,n),eps(n),_old(n),sam(n),s(n),(n),b(n)) b=0.0 b()=-t b(n)=-t a=0.0 Do i=,n- a(i,i+)=. Do i=,n a(i,i-)=. Do i=,n a(i,i)=- =0.0 Do l=,maiter do i=,n _old(i)=(i) sam=0. s=0 do j=i+,n sam(i)=sam(i)-a(i,j)*_old(j) do j=,i- s(i)=s(i)-a(i,j)*(j) (i)=(w*(sam(i)+s(i)+b(i))+(-w)*a(i,i)*(i))/a(i,i) eps(i)=((i)-_old(i))/(i) i (eps(i)>error)then error=eps(i) endi i (error<epsilon)then eit endi Do i=,n write(*,*)(i) end program NumAnal_vii 8