Μελέτη και υλοποίηση αλγορίθμων για την αριθμητική επίλυση γραμμικών συστημάτων. Study and implementation of linear systems solvers

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Μελέτη και υλοποίηση αλγορίθμων για την αριθμητική επίλυση γραμμικών συστημάτων. Study and implementation of linear systems solvers"

Transcript

1 Πανεπιστήμιο Θεσσαλίας Διπλωματική Εργασία Μελέτη και υλοποίηση αλγορίθμων για την αριθμητική επίλυση γραμμικών συστημάτων Study and implementation of linear systems solvers Αδαμαντίδη Αικατερίνη ΑΕΜ: 1146 Επιβλέπουσα Καθηγήτρια: Τσομπανοπούλου Παναγιώτα Βόλος 2015

2 Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά τους επιβλέποντες καθηγητές της διπλωματικής μου εργασίας κα. Τσομπανοπούλου Παναγίωτα και κ. Μποζάνη Παναγιώτη, οι οποίοι υπήρξαν καθοδηγητές μου καθ όλη την διάρκεια της εκπόνησης διπλωματικής εργασίας χωρίς τους οποίους δεν θα μπορούσε να έχει φτάσει στο πέρας της. Η άψογη συνεργασία και επικοινωνία καθώς και η καθοδήγηση τους αποτελούν στοιχεία τα οποία συντέλεσαν σημαντικά στην ολοκλήρωση αυτής της μελέτης. Επίσης, ευχαριστώ τους φίλους που μου συμπαραστάθηκαν και ήταν συνοδοιπόροι σε αυτό το ταξίδι γνώσης τα τελευταία έξι χρόνια. Τέλος, ένα μεγάλο ευχαριστώ στην οικογένεια μου η οποία με στήριζε και μου συμπαραστεκόταν με κάθε δυνατό τρόπο καθ όλη την διάρκεια της ακαδημαϊκής μου πορείας. ii

3 Περιεχόμενα Ευχαριστίες... ii Περίληψη... 1 Εισαγωγή... 2 Κεφάλαιο 1: Γραμμική Άλγεβρα... 3 Ιδιότητες πινάκων... 3 Άμεσες Μέθοδοι (Direct Methods)... 9 Επαναληπτικές Μέθοδοι Μέθοδοι Ελαχιστοποίησης Κεφάλαιο 2 : Python Και Παράλληλοι Υπολογισμοί Numpy Βιβλιοθήκες Βελτιστοποίησης Παράλληλη Python IPython Mpi4py Multiprocessing Σύνοψη Κεφάλαιο 3 : Υλοποίηση, Πειράματα και Συμπεράσματα Υλοποίηση Προπαρασκευαστικό Στάδιο Πειράματα Πίνακες που χρησιμοποιήσαμε για τα πειράματα μας Βιβλιογραφία iii

4 Περίληψη Η παρακάτω διπλωματική εργασία έχει σαν αντικείμενο μελέτης τα γραμμικά συστήματα και τους διαφόρους τρόπους επίλυσης τους. Πιο αναλυτικά, σε αυτήν την εργασία θα ασχοληθούμε με τους τρόπους επίλυσης και απλοποίησης αυτών των συστημάτων δίνοντας έμφαση στην παραγοντοποίηση Cholesky, και την μέθοδο επίλυσης γραμμικών συστημάτων που προκύπτουν από διαφορικές εξισώσεις conjugate gradient. Αξίζει να σημειώσουμε ότι στην συγκεκριμένη εργασία επικεντρωνόμαστε κυρίως σε πίνακες οι οποίοι χαρακτηρίζονται από συγκεκριμένες ιδιότητες, όπως η συμμετρία, και το αν είναι θετικά ορισμένοι. Η υλοποίηση των μεθόδων έγινε σε python και περιλαμβάνει σειριακή και παράλληλη υλοποίηση μεθόδων προκειμένου να επιλυθούν τα συστήματα. Απώτερος σκοπός της διπλωματικής αυτής εργασίας είναι η εξαγωγή συμπερασμάτων σχετικά με τον χρόνο επίλυσης γραμμικών συστημάτων όταν οι μέθοδοι αυτοί υλοποιούνται σειριακά και παράλληλα. 1

5 Εισαγωγή Είναι γνωστό ότι τα περισσότερα προβλήματα που συναντάμε είτε είναι γραμμικά είτε τα αναγάγουμε σε γραμμικά προκειμένου να προσεγγίσουμε την λύση τους. Για την προσέγγιση της επιθυμητής λύσης μπορούμε να χρησιμοποιήσουμε είτε άμεσες είτε επαναληπτικές μεθόδους. Σε ότι αφορά τις άμεσες μεθόδους εστιάσαμε την μελέτη μας στις μεθόδους LU και παραγοντοποίησης Cholesky του πίνακα του συστήματος μας. Ακόμα σχετικά με τις επαναληπτικές μεθόδους έγινε εκτενής μελέτης της μεθόδου απότομης καθόδου (conjugate gradient). Σε αυτό το σημείο αξίζει να σημειώσουμε ότι η παρακάτω μελέτη επικεντρώνεται κυρίως σε αραιούς πίνακες, δηλαδή σε πίνακες με αρκετά μηδενικά στοιχεία. Η μέθοδος conjugate gradient υλοποιήθηκε σε γλώσσα προγραμματισμού python σειριακά αλλά και παράλληλα. Επίσης, γίνεται αναλυτική περιγραφή των διαθέσιμων πακέτων που διαθέτει η python για παράλληλο προγραμματισμό και παρουσίαση των αποτελεσμάτων και συμπερασμάτων που προέκυψαν από την παράλληλη εκτέλεση του κώδικα. 2

6 Κεφάλαιο 1: Γραμμική Άλγεβρα Όπως αναφέραμε και στη εισαγωγή τα περισσότερα προβλήματα είτε μοντελοποιούνται με την βοήθεια γραμμικών εξισώσεων είτε γίνεται η αναγωγή τους σε γραμμικά προκειμένου να μοντελοποιηθούν μέσω ενός γραμμικού συστήματος ώστε να καταφέρουμε να τα επιλύσουμε. Το πιο σημαντικό στοιχείο του γραμμικού συστήματος είναι ο πίνακας Α εάν θεωρήσουμε ότι ένα γραμμικό σύστημα έχει την μορφή Ax = b γιατί από αυτό καθορίζονται αρκετά πράγματα που αφορούν τον τρόπο με τον οποίο θα περιέλθουμε στην επιθυμητή λύση του προβλήματος. Συνεπώς, συμπεραίνουμε ότι η μέθοδος επίλυσης που θα ακολουθήσουμε εξαρτάται σε μεγάλο βαθμό από τις ιδιότητες που χαρακτηρίζουν τον πίνακα. Οι ιδιότητες του πίνακα έχουν να κάνουν τόσο με την πυκνότητα του, δηλαδή με το ποσοστό των μηδενικών στοιχείων ως προς τον συνολικό αριθμό των στοιχείων του, όσο με την συμμετρία και την θέση των στοιχείων. Έχει παρατηρηθεί ότι όταν οι πίνακες συστημάτων έχουν συγκεκριμένη μορφή μπορεί να γίνει ειδική επεξεργασία των συστημάτων αυτών που είναι πιο συμφέρουσα ως προς τον χρόνο επεξεργασίας των πινάκων αλλά και τον συνολικό χρόνο επίλυσης του προβλήματος. Οι ιδιότητες που θα μας απασχολήσουν περισσότερο είναι η συμμετρία και το αν είναι θετικά ορισμένοι. Ωστόσο, ιδιαίτερο ενδιαφέρον παρουσιάζουν και οι τρισδιαγώνιοι πίνακες στους οποίους γίνεται και αναφορά. Λαμβάνοντας λοιπόν τις παραπάνω ιδιότητες γίνεται παρουσίαση των μεθόδων παραγοντοποίησης του πίνακα LU και Cholesky, γνωστή και ως LL T. Οι μέθοδοι παραγοντοποίησης προηγούνται της εφαρμογής μίας μεθόδου επίλυσης του συστήματος και εφαρμόζονται με σκοπό να μετατρέψουν το σύστημα σε ένα ισοδύναμο του προκειμένου να είναι πιο εύκολη η εύρεση της τελικής λύσης. Ιδιότητες πινάκων Όπως έχουμε ήδη αναφέρει παραπάνω, οι πίνακες ενός συστήματος διέπονται από κάποιες ιδιότητες. Μία από τις πιο σημαντικές ιδιότητες που αποτελεί κριτήριο εφαρμογής αρκετών μεθόδων επίλυσης συστήματος είναι αυτή της συμμετρίας. Το κριτήριο το οποίο αν ικανοποιείται ισχύει η συμμετρία είναι ότι ο ανάστροφος πίνακας του Α είναι ίσος με τον πίνακα Α, δηλαδή Α Τ =Α. Συνεπώς προκειμένου να τον επεξεργαστούμε αρκεί να πάρουμε τα στοιχεία είτε από την διαγώνιο και πάνω είτε από την διαγώνιο και κάτω. 3

7 Ακόμα, ιδιαίτερο ενδιαφέρον παρουσιάζουν οι πίνακες οι οποίοι είναι τρισδιαγώνιοι ή πενταδιαγώνιοι. Στη πλειοψηφία τους είναι μεγάλοι πίνακες οι οποίοι έχουν όλα τα στοιχεία τους μηδενικά πλην αυτών που βρίσκονται στην διαγώνιο και σε μια-δυο διαγώνιες πάνω και κάτω της κύριας διαγωνίου μη μηδενικά αντίστοιχα. Επίσης, σε ότι αφορά το πλήθος των συνολικών μηδενικών στοιχείων ενός πίνακα μπορούμε να χωρίσουμε τους πίνακες σε πυκνούς και αραιούς. Οι πυκνοί πίνακες είναι αυτοί οι οποίοι έχουν μικρό ποσοστό των συνολικών στοιχείων τους μηδενικά ενώ οι αραιοί πίνακες έχουν μεγάλο ποσοστό στοιχείων μηδενικά. Ο διαχωρισμός των πινάκων σε πυκνούς και αραιούς γίνεται γιατί μπορούμε να επεξεργαστούμε διαφορετικά τα συστήματα με αραιούς πίνακες διότι αρχικά απαιτούν λιγότερο χώρο αποθήκευσης τους και κατά συνέπεια και μικρότερο χρόνο επίλυσης των συστημάτων που τους περιέχουν. Οι διάφοροι τρόποι αποθήκευσης ενός αραιού πίνακα είναι σαν dictionary of keys(doκ), σαν list of lists (LIL), σαν coordinate list(coo), Yale και τέλος Compressed Sparse Column ή Compressed Sparse Row (CSC ή CSR). Προκειμένου να χρησιμοποιήσουμε κάποια από τις παραπάνω μεθόδους αποθήκευσης του πίνακα είναι απαραίτητο να γνωρίζουμε την ακριβή θέση των μη μηδενικών στοιχείων στον πίνακα. Για τους σποραδικούς πίνακες χρησιμοποιούμε επαναληπτικές μεθόδους επίλυσης γραμμικών συστημάτων ενώ για τους πυκνούς άμεσες μεθόδους. Dictionaries of Keys (DOΚ) Σε αυτήν την μορφή έχουμε ένα dictionary το οποίο έχει σαν κλειδί ένα ζεύγος (γραμμή, στήλη) και σαν τιμή την τιμή του στοιχείου. Όπως είναι αναμενόμενο λείπουν τα ζευγάρια που η τιμή του στοιχείου είναι 0. Η μέθοδος αυτή είναι βολική όταν θέλουμε να δημιουργήσουμε σταδιακά έναν πίνακα με τυχαία σειρά στοιχείων αλλά όχι για επαναλαμβανόμενη πρόσβαση στα μη μηδενικά στοιχεία του πίνακα με λεξικογραφική σειρά. Συνήθως, όταν κάποιος χρησιμοποιεί αυτή την μορφή κατασκευής του πίνακα εφόσον την χρησιμοποιήσει θα χρειαστεί να προβεί σε μία άλλη μορφή αποθήκευσης προκειμένου να επεξεργαστεί πιο εύκολα και αποτελεσματικά τον πίνακα του. 4

8 Lists of Lists (LIL) Σε αυτήν την μορφή έχουμε μία λίστα από λίστες με την κάθε μία από τις τελευταίες να αντιπροσωπεύει μία γραμμή του πίνακα. Όπως και η προαναφερθείσα μορφή αποθήκευσης DOK είναι μία μέθοδος που μπορεί να είναι χρήσιμη για την σταδιακή κατασκευή του πίνακα αλλά μετά την χρήση της είναι αναγκαστικό να χρησιμοποιηθεί είτε η CSC ή CRS. Συνεπώς, ούτε αυτός ο τρόπος είναι ιδανικός για την αποθήκευση ενός αραιού πίνακα. Coordinate List (COO) Ο πίνακας Α διασπάται σε τρεις επιμέρους λίστες. Η μία αντιπροσωπεύει τις μη μηδενικές τιμές των στοιχείων του πίνακα η δεύτερη την γραμμή στην οποία βρίσκεται το κάθε μη μηδενικό στοιχείο του πίνακα και ο τρίτος την γραμμή στην οποία βρίσκεται το μη μηδενικό στοιχείο. Είναι σημαντικό να τονίσουμε ότι τα στοιχεία αποθηκεύονται κατά γραμμή, δηλαδή για να κατασκευάσουμε αυτούς τους 3 πίνακες διατρέχουμε τον αρχικό πίνακα Α κατά γραμμή, δηλαδή από αριστερά προς τα δεξιά και έπειτα από επάνω προς τα κάτω. Επίσης, υπάρχει και η αντίστοιχη μέθοδος αποθήκευσης για διαπέραση του πίνακα κατά στήλες δηλαδή από πάνω προς τα κάτω και έπειτα από αριστερά προς τα δεξιά. Παράδειγμα 1.1 Αν έχουμε τον πίνακα Α : Α= Τότε στην COO μορφή αποθήκευσης οι λίστες θα είναι οι εξής: =[11, 14, 22, 26, 31, 33, 41, 45, 53, 55, 64, 66] =[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6] =[1, 4, 2, 6, 1, 3, 1, 5, 3, 5, 4, 6] 5

9 Yale Όπως και στην COO έτσι και στην Yale ο αρχικός πίνακας αναπαρίσταται από τρεις επιμέρους διανύσματα/λίστες. Η πρώτη λίστα περιέχει μόνο τις τιμές των μη μηδενικών στοιχείων του πίνακα ενώ η δεύτερη (IA) έχει μέγεθος όσο και η Α λίστα συν ένα διότι περιέχει την θέση του πρώτου μη μηδενικού στοιχείου της κάθε γραμμής και τελευταίο της στοιχείο είναι ο συνολικός αριθμός των μη μηδενικών στοιχείων του πίνακα. Επιπροσθέτως, η τελευταία λίστα περιέχει την κάθετη συντεταγμένη του στοιχείου. Τέλος αξίζει να σημειωθεί ότι το πρώτο στοιχείο της λίστας ΙΑ είναι πάντα 0. Παράδειγμα 1.2 Για τον πίνακα του παραδείγματος 1.1 προκύπτουν οι εξής λίστες Α = [11, 14, 22, 26, 31, 33, 41, 45, 53, 55, 64, 66] ΙΑ = [0, 1, 0, 0, 2, 3,12] JA = [0, 3, 1, 5, 0, 3, 0, 4, 2, 4, 3, 5] Compressed Row Storage (CRS) & Compressed Column Storage (CCS) Η συγκεκριμένη μέθοδος αποθήκευσης ενός αραιού πίνακα έχει αρκετά κοινά σημεία με την μέθοδο Yale. Πάλι χρειαζόμαστε 3 καινούριους πίνακες για την αποθήκευση των στοιχείων που μας αφορούν και όπως και στη προηγούμενη μέθοδο κρατάμε ως έχουν τους πίνακες a_values και j_index και αντί του i_index θα χρησιμοποιήσουμε έναν διαφορετικό πίνακα τον i_ptr ο οποίος σηματοδοτεί την αρχή της κάθε γραμμής του πίνακα έτσι χρησιμοποιώντας το παραπάνω παράδειγμα θα δείξουμε τα περιεχόμενα του καινούριο πίνακα i_ptr. Η αντίστοιχη μέθοδος για διαπέραση κατά στήλες είναι η Compressed Sparse Column (CSC or CCS) και στην περίπτωση όπου την υλοποιήσουμε θα έχουμε όπως στην COO τους πίνακες a_values και i_index και αντί του j_index θα χρησιμοποιούσαμε τον j_ptr όπου θα σηματοδοτούσε την αρχή της κάθε στήλης. Ουσιαστικά, δηλαδή οι πίνακες i_ptr και j_ptr περιέχουν τον αριθμό πλήθους του πρώτου μη μηδενικού στοιχείου του πίνακα στην καινούρια γραμμή ή στήλη. Η διαφορά ανάμεσα στην CRS και στην CCS είναι ότι ο τρόπος με τον οποίο διαβάζουμε τα στοιχεία, στην πρώτη τα διαβάζουμε πρώτα από αριστερά προς τα δεξιά και έπειτα από πάνω προς τα κάτω ενώ στην δεύτερη πρώτα από πάνω προς τα κάτω και έπειτα από αριστερά προς τα δεξιά 6

10 Παράδειγμα 1.3 Ο πίνακας Α του παραδείγματος 1.1 με την CRS =[11, 14, 22, 26, 31, 33, 41, 45, 53, 55, 64, 66] =[1, 3, 5, 7, 9, 11, 13] =[1, 4, 2, 6, 1, 3, 1, 5, 3, 5, 4, 6] Παράδειγμα 1.4 Ο πίνακας Α του παραδείγματος 1.1 με την CCS =[11, 31, 41, 22, 33, 53, 14, 64, 45, 55, 26, 66] =[1, 3, 4, 2, 3, 5, 1, 6, 4, 5, 2, 6] =[1, 4, 5, 7, 9, 11, 13] Σαφώς υπάρχουν και άλλοι τρόποι αποθήκευσης ενός αραιού πίνακα άλλα δεν χρειάζεται για την μελέτη μας να προβούμε σε περαιτέρω ανάλυση του συγκεκριμένου θέματος. Οι μορφές αυτές υποστηρίζονται κάποια συγκεκριμένα file formats όπως το matrix market format το οποίο υποστηρίζει την COO μέθοδο αποθήκευσης και το Harwell-Boeing Exchange Format, που υποστηρίζει το CSR format. Τέλος αξίζει να αναφέρουμε πως υπάρχει πληθώρα δεδομένων στα sites και από όπου αντλήσαμε και εμείς τα δεδομένα μας προκειμένου να καταλήξουμε στα συμπεράσματα μας για τα οποία θα υπάρξει ξεχωριστό κεφάλαιο. 7

11 Τετραγωνικές Μορφές Πίνακα Στα γραμμικά συστήματα κάθε πίνακας ο οποίος είναι τετραγωνικός, συμμετρικός και τα στοιχεία του είναι πραγματικοί αριθμοί θεωρείται θετικά ορισμένος. Αρκεί όλες οι ιδιοτιμές του πίνακα που εξετάζουμε να είναι θετικές προκειμένου να καταλήξουμε στο συμπέρασμα ότι ένας πίνακας είναι θετικά ορισμένος. Αντίστοιχα ένας πίνακας είναι αρνητικά ορισμένος όταν όλες οι ιδιοτιμές του είναι αρνητικές. Ακόμα θετικά και αρνητικά ημι-ορισμένοι θεωρούνται οι πίνακες οι οποίοι έχουν τις ιδιοτιμές του μεγαλύτερες ή ίσες με το μηδέν και αρνητικές ή ίσες με το 0 αντίστοιχα. Προκειμένου να αποφύγουμε την διαδικασία εύρεσης των ιδιοτιμών αρκεί να δείξουμε ότι οι ορίζουσες όλων των κύριων υποπινάκων του πίνακα μας συμπεριφέρονται αντίστοιχα με το πώς είναι ορισμένος ο πίνακας μας, πχ. για θετικά ορισμένους πρέπει όλες να είναι θετικές κοκ. Όταν ένας πίνακας δεν ανήκει σε καμία από τις παραπάνω τετραγωνικές μορφές τότε είναι αόριστος. Σύνοψη Ένας συμμετρικός πίνακας Α και η τετραγωνική μορφή x T Ax θα ονομάζονται: Θετικά ορισμένοι εάν: x T Ax>0 Θετικά ήμιορισμένοι εάν: x T Ax 0 Αρνητικά ήμιορισμένοι εάν: x T Ax 0 Αρνητικά ορισμένοι εάν: x T Ax<0 Αόριστοι εάν: x T Ax παίρνει και θετικές και αρνητικές τιμές 8

12 Άμεσες Μέθοδοι (Direct Methods) Οι άμεσες μέθοδοι είναι κατάλληλες για γραμμικά συστήματα με πυκνούς πίνακες όπως έχουμε ήδη αναφέρει. Μία από τις πιο σημαντικές άμεσες μεθόδους είναι η απαλοιφή Gauss(Gauss Elimination). Προκειμένου να λύσουμε το σύστημα μας χρησιμοποιούμε την A = LU παραγοντοποίηση διότι είναι πολύ πιο εύκολη η επίλυση ενός συστήματος με τριγωνικό πίνακα. Οπότε επιλέγουμε να λύσουμε δύο επιμέρους συστήματα για καταλήξουμε στην επιθυμητή λύση. Το σύστημα Ax= b ανάγεται μετά τη LU παραγοντοποίηση στο Ly=b και Ux =y. Παραγοντοποίηση A = LU Είναι γνωστό πως είναι πολύ πιο εύκολο να επιλύσουμε ένα γραμμικό σύστημα εξισώσεων όταν ο πίνακας του συστήματος είναι σε τριγωνική μορφή δηλαδή είτε άνω τριγωνικός είτε κάτω τριγωνικός. Στην συγκεκριμένη παραγοντοποίηση ο αρχικός πίνακας αναλύεται σε δύο επιμέρους πίνακες, έναν άνω τριγωνικό U και έναν κάτω τριγωνικό L όπως περιγράφεται στην παραπάνω φωτογραφία: Ο αλγόριθμος για την παραγοντοποίηση A = LU είναι ο ακόλουθος: 9

13 Έπειτα από την παραπάνω παραγοντοποίηση του πίνακα Α μπορούμε να χρησιμοποιήσουμε την προς τα πίσω αντικατάσταση για την εύρεση της λύσης. Λύση συστήματος με άνω τριγωνικό πίνακα: Λύση συστήματος με κάτω τριγωνικό πίνακα: 10

14 Cholesky factorization A = LL T Η ανάλυση Cholesky είναι εφαρμόσιμη εφόσον έχουμε να κάνουμε με συστήματα των οποίων οι πίνακες είναι τετραγωνικοί, συμμετρικοί και τα στοιχεία τους ανήκουν όλα στο σύνολο των πραγματικών αριθμών. Αν μάλιστα συνδυάσουμε όλα όσα αναφέραμε παραπάνω συμπεραίνουμε όρι είναι απαιτούμενο οι πίνακες να είναι συμμετρικοί και θετικά ορισμένοι. Σε αυτήν την παραγοντοποίηση ανάγεται η παραγοντοποίηση A=LU εάν ο πίνακας ικανοποιεί τις παραπάνω συνθήκες, οπότε και ισχύει ότι U = L T. Αξίζει να σημειωθεί ότι αυτή η παραγοντοποίησης είναι δύο φορές αποδοτικότερη της LU παραγοντοποίησης. Επίσης, τα στοιχεία της διαγωνίου του πίνακα L επιτρέπεται να είναι και μηδέν. Τέλος, από την συγκεκριμένη μέθοδο ανάλυσης προκύπτουν και οι παραγοντοποιήσεις LD L T και LDM T στις οποίες δεν θα επεκταθούμε στην συγκεκριμένη διπλωματική εργασία. Ο αλγόριθμος αυτής της μεθόδου ανάλυσης του πίνακα είναι ο ακόλουθος: 11

15 Επαναληπτικές Μέθοδοι Στην αρχή αυτού του κεφαλαίου διατυπώσαμε την άποψη ότι οι επαναληπτικές μέθοδοι είναι κατάλληλοι για συστήματα όπου οι πίνακες τους είναι σποραδικοί, έχουν δηλαδή αρκετά μηδενικά στοιχεία. Συνήθως, τέτοια συστήματα προκύπτουν στην προσπάθεια εύρεσης λύσης σε μερικές διαφορικές εξισώσεις ή όταν έχουμε να κάνουμε με προβλήματα βελτιστοποίησης. Επίσης, αυτές οι μέθοδοι επιτρέπουν και τον παραλληλισμό των υπολογισμών πιο εύκολα από ότι οι άμεσες μέθοδοι. Οι πιο γνωστές επαναληπτικές μέθοδοι για γραμμικά συστήματα είναι η Jacobi, η Gauss-Seidel και η SOR. Η γενική ιδέα στις επαναληπτικές μεθόδους είναι ότι έχουμε μία αρχική προσέγγιση της λύσης, συνήθως ισούται με το μηδενικό διάνυσμα και καταλήγουμε πιο γρήγορα από τις άμεσες μεθόδους. Προκειμένου να εφαρμόσουμε τις επαναληπτικές μεθόδους ο πίνακας του συστήματος οφείλει να είναι αντιστρέψιμος, δηλαδή η ορίζουσα του να μην ισούται με το μηδέν. Η βασική διάσπαση του αρχικού πίνακα είναι A= L+D+U. Στις επαναληπτικές μεθόδους για την επίλυση γραμμικών συστημάτων περιλαμβάνονται και οι μέθοδοι ελαχιστοποίησης. Οι μέθοδοι αυτοί ονομάζονται έτσι διότι προσπαθούν να περιέλθουν στην λύση του συστήματος κατασκευάζοντας την f(x) = x T Ax - x T b και αναζητώντας το ελάχιστο αυτής το οποίο θεωρείται και η λύση του συστήματος. Πιο γενικευμένα το σκεπτικό είναι πως προσπαθούμε να βρούμε ένα σταθερό σημείο ενός ισοδύναμου προβλήματος του αρχικού συστήματος. Στην συνέχεια αυτής της παραγράφου θα εντρυφήσουμε περεταίρω στο τις επαναληπτικές μεθόδους καθώς και στο πως καταλήγουμε στα σποραδικά συστήματα μέσω των μερικών διαφορικών εξισώσεων καθώς και την επίλυσης συστημάτων αραιών πινάκων με την μέθοδο ελαχιστοποίησης συζυγών κλίσεων, γνωστή ως conjugate gradient καθώς και με την μέθοδο αυτή όταν γίνεται και εφαρμογή ενός preconditioner (προρυθμιστή). Jacobi Method Η διάσπαση σε αυτήν την μέθοδο είναι η : Dx = (L+U)x +b και το διάνυσμα της προσέγγισης του επόμενου σημείου επέρχεται από την εξίσωση : x (k+1) = D -1 (L+U)x (k) + D -1 b. Η μέθοδος συγκλίνει όταν ρ(d -1 (L+U)<1, όπου ρ(a)=max{ λ 1, λ 2,, λ n }, όταν δηλαδή η νόρμα όλων των διανυσμάτων των ιδιοτιμών του πίνακα D -1 (L+U) είναι μικρότερη του 1 ενώ η σύγκλιση της μεθόδου είναι βέβαιη όταν ο Α έχει κυρίαρχη διαγώνιο, δηλαδή όταν όλα τα στοιχεία της κύριας διαγωνίου είναι μεγαλύτερα από τα υπόλοιπα στοιχεία του πίνακα. 12

16 Τέλος, αξίζει να σημειωθεί ότι το η επόμενη προσέγγιση του x εξαρτάται μόνο από την προηγούμενη προσέγγιση του x συνεπώς καταλήγουμε στο συμπέρασμα ότι η συγκεκριμένη μέθοδος είναι πλήρως παραλληλίσιμη. Gauss-Seidel Η διάσπαση σε αυτήν την μέθοδο είναι η : (D+ L)x = Ux +b και το διάνυσμα της προσέγγισης του επόμενου σημείου επέρχεται από την εξίσωση : x (k+1) = (D-L) -1 Ux (k) + (D-L) -1 b. Η μέθοδος συγκλίνει όταν ρ((d-l) -1 U)<1, όπου ρ(a)=max{ λ 1, λ 2,, λ n }, όταν δηλαδή η νόρμα όλων των διανυσμάτων των ιδιοτιμών του πίνακα (D-L) -1 U είναι μικρότερη του 1 ενώ η σύγκλιση της μεθόδου είναι βέβαιη όταν ο Α έχει κυρίαρχη διαγώνιο, δηλαδή όταν όλα τα στοιχεία της κύριας διαγωνίου είναι μεγαλύτερα από τα υπόλοιπα στοιχεία του πίνακα. Τέλος, αξίζει να σημειωθεί ότι το η επόμενη προσέγγιση του x εξαρτάται από όλες τις προηγούμενες προσέγγισεις του x καθώς και από όλες τις επόμενες συνεπώς καταλήγουμε στο συμπέρασμα ότι η συγκεκριμένη μέθοδος είναι σειριακή οπότε δεν προτιμάται έναντι της Jaco/bi method. SOR Έχοντας ήδη μία αρχική προσέγγιση και x k καθώς και την προσέγγιση της Gauss-Seidel τότε το η επόμενη προσέγγιση του x (k+1) προκύπτει ως εξής : (D-ωL)x (k+1) = [(1-ω)D +ωu]x (k) +ωb. Η μέθοδος συγκλίνει εφόσον 0<ω<2. Τέλος, όταν ω=1 τότε η SOR ταυτίζεται με την Gauss-Seidel. 13

17 Μέθοδοι Ελαχιστοποίησης Όπως αναφέραμε στην εισαγωγή αυτής της παραγράφου οι μερικές διαφορικές εξισώσεις αποτελούν την κύρια πηγή μεγάλων γραμμικών συστημάτων με σποραδικούς πίνακες. Η πιο γνωστή μέθοδος προκειμένου να ανάγουμε το σύστημα μας σε ένα ισοδύναμο, να γίνει δηλαδή διακριτοποίηση μιας μερικής διαφορικής εξίσωσης είναι η μέθοδος πεπερασμένων στοιχείων. Μέθοδος Πεπερασμένων Στοιχείων (Finite Elements Method) Πρόκειται για μία μέθοδο εύρεσης προσεγγιστικής λύσης σε προβλήματα συνοριακών συνθηκών για μερικές διαφορικές εξισώσεις. Το βασικό σκεπτικό που πρέπει να ακολουθήσουμε στην μέθοδο αυτή είναι διακριτοποιούμε το πρόβλημα σε επιμέρους μικρότερα προβλήματα και έπειτα η εύρεση της λύσης προκύπτει από το συνδυασμό των λύσεων των επιμέρους αυτών προβλημάτων. Η τελική λύση προέρχεται από ένα σύνολο γραμμικών εξισώσεων για προβλήματα σταθερής κατάστασης ή/και από ένα σύνολο συνήθων διαφορικών εξισώσεων για προβλήματα κατάστασης μετάβασης. Στην παρούσα μελέτη θα εμβαθύνουμε στην πρώτη κατηγορία προβλημάτων. Σε αυτά τα προβλήματα που περιγράφουμε η κάθε εξίσωση έχει ένα πεδίο Ω για το οποίο ισχύει η μερική διαφορική εξίσωση, γι αυτό εξίσου σημαντικές είναι και οι συνοριακές συνθήκες που πρέπει να ικανοποιούνται στα άκρα του Ω. Υπάρχουν τριών ειδών συνοριακές συνθήκες ενώ είναι δυνατόν μία διαφορική εξίσωση να χρειάζεται να ικανοποιεί ανάμεικτη συνοριακή συνθήκη. Τα είδη των συνοριακών συνθηκών είναι τα εξής: Dirchlet Boundary Condition u(x)=φ(x) Neumann Boundary Condition (x) = 0 Cauchy Boundary Condition (x) +α(x)u(x)=γ(x) 14

18 Μέθοδος Συζυγών Κλίσεων (Conjugate Gradient Method) Αυτή η τεχνική είναι κατάλληλη για μεγάλα και αραιά συστήματα των οποίων ο χειρισμός είναι δύσκολος με άμεσες μεθόδους. Όπως και σε κάθε επαναληπτική μέθοδο έχουμε μία αρχική προσέγγιση της λύσης x 0 η οποία είναι συνήθως το μηδενικό διάνυσμα και προσπαθούμε να προσεγγίσουμε την λύση της quadratic equation f(x) = x T Ax - x T b. Το μέτρο με το οποίο ελέγχουμε εάν είμαστε πλησιέστερα στην λύση σε κάθε επανάληψη είναι εάν η τιμή του f(x) είναι μικρότερη από την τιμή του σε σχέση με την προηγούμενη προσέγγιση. Το χαρακτηριστικό αυτής της μεθόδου είναι ότι εάν έχουμε επιλέξει σωστά τα συζυγή διανύσματα κατεύθυνσης μπορεί να μην τα χρειαζόμαστε στο σύνολο τους προκειμένου να καταλήξουμε σε μία καλή προσέγγιση της λύσης του x. Σε κάθε βήμα το διάνυσμα r k είναι συζυγές με το p k και σε κάθε βήμα της μεθόδου απαιτείται μόνο ένας πολλαπλασιασμός πίνακα διανύσματος (Αp k ). Ακολουθεί ο αλγόριθμος της μεθόδου: 15

19 Μέθοδος Συζυγών Κλίσεων Gradient Method) με Προρυθμιστή(Preconditioned Conjugate Η μέθοδος συζυγών κλίσεων στο σύνολο της θεωρείται ότι είναι μία άμεση μέθοδος που ακόμα και σαν επαναληπτική η προσεγγιστική λύση του συστήματος επιτυγχάνεται έπειτα από n πεπερασμένες επαναλήψεις οι οποίες δεν ξεπερνούν το μέγεθος του πίνακα. Επίσης, δεν θεωρείται ότι είναι μία σταθερή μέθοδος, δηλαδή δεν είναι σίγουρο ότι θα συγκλίνει μιας και τα p k διανύσματα κατεύθυνσης στην πραγματικότητα δεν είναι συζυγή. Προκειμένου, λοιπόν να έχουμε μεγαλύτερη βεβαιότητα ως προς την σύγκλιση της μεθόδου και ως προς την ικανοποίηση των συνθηκών του κάθε επαναληπτικού βήματος εφαρμόζουμε έναν προρυθμιστή πίνακα. Αρχικά είναι ιδιαίτερα σημαντικό το γεγονός ότι ο πίνακας που θα χρησιμοποιήσουμε ως προρυθμιστή του συστήματος θα πρέπει να είναι συμμετρικός και θετικά ορισμένος. Ο καλύτερος πίνακας που μπορεί να χρησιμοποιηθεί ως preconditioner είναι ο αντίστροφος του αρχικού πίνακα του συστήματος μας όμως η εύρεση του δεν είναι πάντα εύκολη. Υπάρχει πληθώρα τέτοιον πινάκων που μπορούμε να χρησιμοποιήσουμε. Αυτός που φέρνει τα καλύτερα αποτελέσματα είναι ο αντίστροφος του πίνακα αλλά ο υπολογισμός του είναι ιδιαίτερα ακριβός. Ακόμη ως τέτοιος θα μπορούσε να χρησιμοποιηθεί και ο ταυτοτικός ο οποίος όμως δεν θα επέφερε αλλαγή στο σύστημα μιας και αυτό θα παρέμενε ακριβώς ίδιο. Επόμενος πίνακας που θα εξετάσουμε και είναι ένας από αυτούς που θα χρησιμοποιήσουμε στην υλοποίηση της μεθόδου είναι ο Jacobi : Μ =diag(a) του οποίου ο υπολογισμός είναι αρκετά φθηνός. Παρόλο όμως που μπορεί επιφέρει κάποια βελτίωση συνήθως δεν συμβαίνει αυτό. Επίσης, θα μπορούσαμε να εφαρμόσουμε και ένα αποτέλεσμα από τις επαναληπτικές μεθόδους που αναφέραμε παραπάνω. Τέλος, θα μπορούσαμε να εφαρμόσουμε έναν προρυθμιστή που προκύπτει από τις μη ολοκληρωμένες παραγοντοποιήσεις(incomplete factorizations) όπως την incomplete Cholesky factorization, preconditioner τον οποίο επίσης χρησιμοποιούμε μιας και είναι ο περισσότερο αποδοτικός. Με την εφαρμογή του preconditioner ο αλγόριθμος διαμορφώνεται ως εξής: 16

20 Τέλος ο παραπάνω αλγόριθμος ισοδυναμεί με την επίλυση του συστήματος χωρις προρυθμιστή: Ε -1 Α (Ε -1 ) Τ x* = E -1 b, όπου EE T = M και x*= E T x Incomplete Cholesky Factorization Η κλασική Cholesky factorization LL T ανάγεται πλέον στην ΚΚ T όπου Κ ένας πίνακας αρκετά κοντά στον L. Ο τρόπος με τον οποίο υπολογίζεται ο Κ είναι να βρούμε την ακριβή Cholesky factorization θέτοντας ίσο με μηδέν κάθε στοιχείο αν στην αντίστοιχη θέση του πίνακα Α του συστήματος μας είναι στοιχείο ίσο με μηδέν. Ο αλγόριθμος για τον υπολογισμό της είναι ο εξής: 17

21 Κεφάλαιο 2 : Python Και Παράλληλοι Υπολογισμοί Η γλώσσα στην οποία επιλέξαμε να υλοποιήσουμε και την απλή conjugate gradient και την preconditioned conjugate gradient είναι η python. Είναι μία γλώσσα κατάλληλη για scientific computing, scripting αλλά και για αντικειμενοστραφή προγραμματισμό. Είναι ιδιαίτερα γρήγορη στους υπολογισμούς της και διαθέτει πλήθος πακέτων και βιβλιοθηκών για όλα τα παραπάνω είδη προγραμματισμού. Στην υλοποίηση μας χρησιμοποιήσαμε κυρίως built in συναρτήσεις της για τους υπολογισμούς που αφορούν το εσωτερικό γινόμενο διανυσμάτων, τον πολλαπλασιασμό πίνακα με διάνυσμα, τον υπολογισμό του Jacobi preconditioner πίνακα που χρειαστήκαμε κατά την συγγραφή κώδικα για την μέθοδο preconditioned conjugate gradient. Ακόμα, όποτε χρειάστηκε χρησιμοποιήσαμε την τις ενσωματωμένες με την γλώσσα συναρτήσεις για τν υπολογισμό του ανάστροφου ενός πίνακα ή ενός διανύσματος. Επιπροσθέτως, η Python διαθέτει πακέτα για το άνοιγμα αρχείων σε Matrix Market Format (.mtx αρχεία) ενώ έχει αρκετές βιβλιοθήκες για παράλληλους υπολογισμούς. Στο κεφάλαιο αυτό θα αναλύσουμε τα πακέτα που διαθέτει αυτή η γλώσσα προγραμματισμού για γραμμική άλγεβρα στον βαθμό που μας ενδιαφέρει καθώς θα και θα γίνει αναφορά στα διαθέσιμα πακέτα για παράλληλους υπολογισμούς. Numpy Η βιβλιοθήκη numpy είναι μία βιβλιοθήκη για προγραμματισμό προβλημάτων που σχετίζονται με γραμμική άλγεβρα. Μέσω αυτού και μέσω του Scipy πακέτου μπορούμε να επεξεργαστούμε πίνακες, να προβούμε σε πράξεις μεταξύ τους και να υπολογίσουμε τους αντιστρόφους τους ή τους ανάστροφους τους. Είτε ο χρήστης χρησιμοποιήσει το Numpy είτε το Scipy είναι σχεδόν το ίδιο διότι περιέχουν πάρα πολλές κοινές συναρτήσεις. Οι παρακάτω συναρτήσεις είναι ίδιες με μόνη διαφορά το όνομα του πακέτου και στα δύο python modules και όπως είναι φανερό εμείς χρησιμοποιήσαμε το numpy πακέτο. Δημιουργία Δυσδιάστατου Πίνακα Α = numpy.array([[a, b], [c,d]]), Α = numpy.matrix([[a, b], [c,d]]) Δημιουργία Μονοδιάστατου Πίνακα Α = numpy.array([a, b, c,d]), Α = numpy.matrix([a, b, c,d]) Εύρεση Αντίστροφου Πίνακα invert_a = numpy.linalg.inv(a) Εύρεση Αντίστροφου Πίνακα transpose_a = A.T Εσωτερικό Γινόμενο Πίνακα-Διάνυσμα/Διάνυσματων numpy.dot(a, b) 18

22 Διάνυσμα με Διαγώνια Στοιχεία Ενός Πίνακα numpy.diag(a) Εύρεση Πίνακα έχοντας σαν στοιχεία μόνο αυτά της Διαγωνίου numpy.diag (numpy.diag(a)) Δημιουργία Μηδενικού Πίνακα numpy.zeros((a, b)), όπου α,β ακέραιοι Δημιουργία Μηδενικού Διανύσματος numpy.zeros(a), όπου α ακέραιος Εύρεση Νόρμας Πίνακα numpy.linalg.norm(a), by default δίνει την δεύτερη νόρμα ενώ δίπλα από τον πίνακα μπορούμε να περάσουμε σαν όρισμα το ποιας τάξης θέλουμε να είναι, εάν είναι άπειρη τότε η συνάρτηση καλείται ως εξής: numpy.linalg.norm(a, numpy.inf) Όπως έχουμε ήδη αναφέρει, υπάρχει τo.mtx file format το οποίο υποστηρίζει την μέθοδο αποθήκευσης αραιού πίνακα COO. Τα αρχεία αυτά είναι προσβάσιμα από την Python μέσω της βιβλιοθήκης Scipy.io που περιέχει συναρτήσεις για την πρόσβαση μας στο αρχείο, την φόρτωση κατευθείαν του πίνακα, τις πληροφορίες για το μέγεθος και τον χώρο αποθήκευσης του πίνακα και την εγγραφή στο αρχείο. Επιστρέφει πληροφορίες για μέγεθος και χώρο αποθήκευσης scipy.io.mminfo(filename) Δημιουργεί πίνακα κατευθείαν από.mtx αρχείο a =scipy.io.mmread(filename) Εγγραφή στο αρχείο σε COO forma έναν αραιό πίνακα scipy.io.mmwrite(filename, a) Όλα τα παραπάνω είναι πολύ εύκολο να τα βρει κανείς στο διαδίκτυο. Το αξιοσημείωτο είναι όμως το γεγονός ότι τα πακέτα αυτά μπορεί να έχουν συνδεθεί με κάποια από τις βιβλιοθήκες lapack, blas και mkl που κάνουν τους υπολογισμούς της python ακόμα γρηγορότερους απ ότι είναι όταν δεν έχει γίνει η σύνδεση των βιβλιοθηκών αυτών με τα πακέτα επιστημονικού υπολογισμού και αριθμητικής ανάλυσης. Πρόκειται για βιβλιοθήκες οι οποίες περιέχουν αλγορίθμους οι οποίοι βελτιστοποιούν τις πράξεις. Μπορούμε να δούμε αν έχει γίνει η συγκεκριμένη διασύνδεση μέσω της εντολής numpy.show_config() όπου εάν έχει γίνει η διασύνδεση θα δούμε τις βιβλιοθήκες με τις οποίες θα έχει γίνει η διασύνδεση ενώ αν δεν έχει γίνει θα δείχνει ότι δεν είναι διαθέσιμη η βιβλιοθήκη. 19

23 Επίσης ένας άλλος τρόπος για να δούμε εάν μία πράξη χρησιμοποιεί τις βιβλιοθήκες αυτές είναι να δώσουμε σε μία python κονσόλα την εντολή numpy.dot. module η οποία εάν η εντολή εκτελείτε μέσω των βιβλιοθηκών βελτιστοποίησης της πράξης θα επιστρέψει numpy.core._dotblas ενώ στην αντίθετη περίπτωση 'numpy.core.multiarray'. Όπως είναι αναμενόμενο υπάρχουν εντολές οι οποίες ενεργοποιούν την διασύνδεση εφόσον είναι διαθέσιμες οι βιβλιοθήκες και που την απενεργοποιούν. Ωστόσο, κάτι τέτοιο δεν φαίνεται να ισχύει στην πράξη μιας και η εναλλαγή δεν φαίνεται να λαμβάνει χώρα. Παρακάτω δείχνουμε το αποτέλεσμα που επιστρέφει η εντολή numpy.show_config() lapack_opt_info: libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd'] library_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/lib/intel64'] define_macros = [('SCIPY_MKL_H', None)] include_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/include'] blas_opt_info: libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd'] library_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/lib/intel64'] define_macros = [('SCIPY_MKL_H', None)] include_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/include'] openblas_lapack_info: NOT AVAILABLE lapack_mkl_info: libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd', 'mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd'] library_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/lib/intel64'] define_macros = [('SCIPY_MKL_H', None)] include_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/include'] blas_mkl_info: libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd'] library_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/lib/intel64'] define_macros = [('SCIPY_MKL_H', None)] include_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/include'] mkl_info: libraries = ['mkl_lapack95_lp64', 'mkl_blas95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'libiomp5md', 'libifportmd'] library_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/lib/intel64'] define_macros = [('SCIPY_MKL_H', None)] include_dirs = ['C:/Program Files (x86)/intel/composer XE/mkl/include'] 20

24 Εικόνα 2.1: Στιγμιότυπο το οποίο δείχνει ότι δεν είναι διαθέσιμες οι βιβλιοθήκες βελτιστοποίησης αλγορίθμων. Βιβλιοθήκες Βελτιστοποίησης Όπως είπαμε έχουμε την δυνατότητα να χρησιμοποιήσουμε τις πράξεις που υπάρχουν ήδη υλοποιημένες στην Python με στην βελτιστοποιημένη τους υλοποίηση όταν έχει γίνει η διασύνδεση του πακέτου που χρησιμοποιούμε με τις αντίστοιχες βιβλιοθήκες βελτιστοποίησης. Οι βιβλιοθήκες αυτές είναι η LAPACK, BLAS και MKL. 21

25 Όλες οι προαναφερθείσες βιβλιοθήκες είναι βιβλιοθήκες για γραμμική άλγεβρα και περιέχουν συναρτήσεις που υλοποιούν βελτιστοποιημένα συναρτήσεις για την εύρεση εσωτερικού γινομένου, την εύρεση νόρμας πινάκων και άλλες συχνά χρησιμοποιούμενες πράξεις στις μεθόδους επίλυσης και ελαχιστοποίησης συστημάτων γραμμικής άλγεβρας οι οποίες εν τέλει βελτιώνουν τον χρόνο εκτέλεσης του κώδικα. Η βιβλιοθήκη LAPACK στηρίζεται πάνω στην βιβλιοθήκη BLAS η οποία περιέχει αυτές τις βασικές πράξεις που αναφέραμε. Η LAPACK περιέχει διαδικασίες για την επίλυση συστημάτων ταυτόχρονων γραμμικών εξισώσεων, εύρεση λύσης προβλημάτων ελαχίστων τετραγώνων για υπερπροσδιορισμένα συστήματα, εύρεση λύσης σε προβλήματα ιδιοτιμών και ιδιαζουσών τιμών. Η MKL (Math Kernel Library) της Intel ουσιαστικά δίνει καλύτερα αποτελέσματα σε σχέση με τις προηγούμενες δύο βιβλιοθήκες όταν δουλεύουμε σε υπολογιστικό σύστημα που είναι συμβατό με την αρχιτεκτονική της Intel. Οι τελευταία είναι βιβλιοθήκη στην οποία πρόκειται να προστεθούν και άλλοι αλγόριθμοι και θα υποστηρίζεται και από μελλοντικές αρχιτεκτονικές της Intel με μικρές προσαρμογές. Εικόνα 2.3: Performance Boost by using Intel MKL vs ATLAS Παράλληλη Python Είναι ευρέως γνωστό ότι τρία πράγματα στην ζωή είναι αναπόφευκτα, οι φόροι, ο θάνατος και ο παραλληλισμός. Αυτό που προσπαθούμε να επιτύχουμε με την παράλληλη υλοποίηση μια μεθόδου είναι λιγότερος χρόνος για την επεξεργασία ίδιων δεδομένων. Εφόσον κάποια διαδικασία είναι επαναλαμβανόμενη μπορεί να γίνει και παράλληλα σπάζοντας το σύνολο των δεδομένων σε επιμέρους. 22

26 Η Python διαθέτει πληθώρα πακέτων για παράλληλο προγραμματισμό, τόσο για νήματα με διαμοιραζόμενη μνήμη όσο και για ξεχωριστή μνήμη. Γενικά, υποστηρίζει τα είδη παραλληλισμού ένα πρόγραμμα πολλά δεδομένα (SPMD- Single Program Multiple Data), πολλά προγράμματα πολλαπλά δεδομένα (MPMD- Multiple Program Multiple Data), παραλληλισμό μέσω ανταλλαγής μηνυμάτων (MPI), και task framing. Επίσης, είναι δυνατό ο χρήστης να επιλέξει έναν συνδυασμό των παραπάνω τεχνικών παράλληλου προγραμματισμού. Για τα συστήματα διαμοιραζόμενης μνήμης υπάρχουν τα πακέτα multiprocessing, αυτό επιλέξαμε στην υλοποίηση μας, threading και joblib. Ενώ για παράλληλο προγραμματισμό χωρίς κοινή μνήμη χρησιμοποιείται το IPython.parallel και το mpi4py που είναι το MPI για Python. IPython To module αυτό είναι κατάλληλο για παράλληλα συστήματα χωρίς κοινή μνήμη. Ιδιαίτερο πλεονέκτημα αυτού του Python πακέτου είναι το ότι υπάρχει μπορεί ο χρήστης ταυτόχρονα να γράφει τον κώδικα και να τον αποσφαλματώνει. Αρχικά, γίνεται έναρξη κάποιων μηχανών (slaves), οι μηχανές που μπορούμε να έχουμε είναι τόσες όσοι και οι πυρήνες του υπολογιστή/συστήματος υπολογιστών μας. Στην συνέχεια ο προγραμματιστής πρέπει να υλοποιήσει μία συνάρτηση στην οποία θα υλοποιείται η λειτουργία που επιθυμούμε για μία μονάδα από αυτές στις οποίες θέλουμε να εφαρμοστεί. Έπειτα γίνεται map της συνάρτησης σε όλα τα δεδομένα, τα οποία είναι σε μορφή λίστας επιστρέφοντας τα αποτελέσματα επίσης σε μορφή λίστας. Επίσης, υπάρχει και η δυνατότητα διαμοίρασης των δεδομένων σε όλες τις μηχανές και με το πέρας τις διαδικασίας η συλλογή των αποτελεσμάτων στην αρχική διεργασία με την λειτουργίες scatter και gather αλλά δεν θα τις εξετάσουμε στην συγκεκριμένη μελέτη. Mpi4py Πρόκειται για το ευρέως γνωστό και χρησιμοποιούμενο για υλοποίηση παράλληλων διαδικασιών message parsing interface(mpi) σε Python.Αξίζει να σημειώσουμε ότι υποστηρίζει συστήματα με ξεχωριστή μνήμη, υποστηρίζεται από τις περισσότερες αρχιτεκτονικές για παράλληλα συστήματα και υλοποιεί το μοντέλο παραλληλισμού SPMD. Έχουμε τον κόσμο όλων των διεργασιών MPI.COMM_WORLD από τον οποίο μπορούμε να δούμε πόσες διεργασίες έχουμε επί συνόλου, και το προσωπικό αναγνωριστικό της κάθε διεργασίας. 23

27 Επιπλέον, υποστηρίζονται πλήρως οι λειτουργίες send, recv καθώς και οι Send, Recv για επικοινωνία σημείο προς σημείο. Οι τελευταίες χρησιμοποιούνται όταν κώδικας μας πρόκειται να περιέχει διανύσματα και είναι πιο γρήγορες από τις send και recv αλλά με την σειρά τους προσθέτουν overhead στην επικοινωνία διότι από απλά Python αντικείμενα μετατρέπονται σε arrays από bytes όταν στέλνονται και το ανάποδο όταν λαμβάνονται. Επίσης, οι λειτουργίες bcast, reduse, reduseall, scan, scatter, gather, AllGather, AllToAll για περιπτώσεις συλλογικής επικοινωνίας. Εικόνα 2.4: Λειτουργίες Scatter, gather και broadcast του MPI Εικόνα 2.5: Λειτουργίες AllGather και AlltoAll του MPI 24

28 Εικόνα 2.6: Παραδείγματα λειτουργιών του MPI Multiprocessing Είναι ιδανικό για cpu bound προβλήματα, εκμεταλλεύεται τους πολλαπλούς πυρήνες του συστήματος μας και χειρίζεται το λειτουργικό τον προγραμματισμό των εργασιών. Το βασικό σκεπτικό που πρέπει να έχουμε υπόψη όταν θέλουμε να χρησιμοποιήσουμε αυτό το πακέτο της Python είναι ότι δημιουργούμε μία συνάρτηση η οποία να κάνει αυτό που θέλουμε και περνάμε σαν λίστα το διαφορετικό όρισμα που θέλουμε να δώσουμε κάθε φορα. Αν δηλαδή θέλω να κάνω μία πράξη για 150 ακεραίους δημιουργώ την συνάρτηση που κάνει για τον έναν την επιθυμητή ενέργεια και όταν χρησιμοποιήσω το multiprocessing δίνω σαν όρισμα μία λίστα με όλους τους ακεραίους στους οποίους θέλω να κάνω την επιθυμητή ενέργεια. Παράδειγμα 2.1 Τρέξιμο μιας συνάρτησης με το multiprocessing def plus_1(x): return x+1 25

29 list_of_integers=[1,2,3,,150] pool= multiprocessing.pool(processes = n) result = pool.map(plus_1, list_of_integers) pool.terminate() pool.join() Στο παραπάνω παράδειγμα ανοίγουμε ένα σύνολο διεργασιών στις οποίες κάνουμε map στην συνάρτηση την τιμή του ορίσματος που θέλουμε κάθε φορά. Το result είναι επίσης μία λίστα που κάθε στοιχείο της αντιστοιχεί στην ανάλογη τιμή που δώσαμε σαν όρισμα κάθε φορά στην συνάρτηση και υπάρχει πλήρης αντιστοιχία διότι σε κάθε διεργασία που ανοίγουμε της ανατίθεται ένα μοναδικό ακέραιο αναγνωριστικό. Τέλος, για κάθε pool που ανοίγουμε πρέπει να το κλείνουμε και να κάνουμε join τα νήματα εφόσον έχουν τερματιστεί όλες οι διεργασίες. Το συγκεκριμένο Python module περιέχει και άλλες κλάσεις στις οποίες δεν θα επεκταθούμε γιατί δε χρησιμοποιήσαμε στην υλοποίηση μας. Σύνοψη Και τα τρία αυτά Python πακέτα είναι κατάλληλα για την υλοποίηση μας και τα τρία περιμένουμε να έχουν σημαντικό overhead άρα εν τέλει να μην έχουμε ελάττωση του συνολικού χρόνου εκτέλεσης του προγράμματος μας. Το IPython και το Multiprocessing απαιτούν μετατροπή των δεδομένων σε λίστα κάτι που δεν είναι καθόλου φθηνό υπολογιστικά ενώ στο MPI έχουμε επιβάρυνση των πράξεων λόγω της ανταλλαγής διανυσμάτων ή πινάκων μέσω μηνυμάτων. Εμείς επιλέξαμε στην συγκεκριμένη διπλωματική εργασία να το υλοποιήσουμε με το multiprocessing. 26

30 Κεφάλαιο 3 : Υλοποίηση, Πειράματα και Συμπεράσματα Υλοποίηση Όπως έχουμε ήδη αναφέρει στην υλοποίηση μας χρησιμοποιήσαμε τα πακέτα numpy, scipy και multiprocessing. Η σειριακές μέθοδοι υλοποιήθηκαν στο πλαίσιο μίας συνάρτησης η κάθε μία όπως ακριβώς περιγράφηκαν στο πρώτο κεφάλαιο με τους αλγορίθμους τους. Ως προρυθμιστή πίνακα χρησιμοποιήσαμε τον Jacobi preconditioner που δεν περιμένουμε να βελτιώσει τα αποτελέσματα κατά πολύ αλλά και τον ευρέως χρησιμοποιούμενο που προκύπτει έπειτα από την εφαρμογή την incomplete cholesky παραγοντοποίησης. Για την εξαγωγή του πίνακα για την πρώτη περίπτωση χρησιμοποιήσαμε την ήδη ενσωματωμένη στην Python συνάρτηση Μ=numpy.diag(numpy.diag(A)) ενώ για την δεύτερη περίπτωση υλοποιήσαμε μία συνάρτηση ακολουθώντας τον αλγόριθμο για τον υπολογισμό του προρυθμιστή πίνακα που παρουσιάσαμε στον πρώτο κεφάλαιο. Σε ό,τι αφορά την υλοποίηση του παράλληλου κομματιού χρησιμοποιήσαμε το module cprofile προκειμένου να διαπιστώσουμε ποια πράξη είναι αυτή που απαιτεί μεγαλύτερο χρόνο στην υλοποίηση μας και συμπεράναμε ότι η πιο συχνά εκτελούμενη πράξη είναι αυτή του εσωτερικού γινομένου και του γινόμενο πίνακα με διάνυσμα. Όμως η πράξη αυτή στην συγκεκριμένη γλώσσα προγραμματισμού που έχουμε επιλέξει είναι η ίδια πράξη οπότε με μία. Συνεπώς η βελτιστοποίηση μας ως προς την εκτέλεση της πράξης του dot του numpy πακέτου της Python. Όπως έχουμε ήδη αναφέρει η πράξη αυτή είναι ήδη πάρα πολύ γρήγορη λόγω του ότι έχει γίνει διασύνδεση της υλοποίησης της με τις βιβλιοθήκες blas και lapack οι οποίες υλοποιούν τον αλγόριθμο βελτιστοποιημένα. Από αυτό και μόνο μπορούμε να συμπεράνουμε ότι δεν υπάρχουν αρκετά περιθώρια βελτίωσης. Ωστόσο, η βελτιστοποίηση την οποία εμείς επιχειρούμε στην υλοποίηση μας σχετίζεται με το μέγεθος του πίνακα και κατά πόσο το μέγεθος του πίνακα επηρεάζει τον χρόνο εκτέλεσης τόσο του συνολικού προγράμματος όσο και της πράξης αυτής καθεαυτής. Επιχειρούμε λοιπόν στην περίπτωση που έχουμε πράξη πίνακα με διάνυσμα να ανάγουμε την πράξη σε αυτή του εσωτερικού γινομένου, δηλαδή διάνυσμα με διάνυσμα. Αντίστοιχα, καταβάλλεται προσπάθεια ώστε να αναχθεί η πράξη εσωτερικού γινομένου σε απλό γινόμενο μεταξύ αριθμών και στην συνέχεια άθροιση αυτών. Λόγω του ότι χρησιμοποιήσαμε το πακέτο multiprocessing δεν είχαμε και μεγάλα περιθώρια δοκιμών ως προς την διαμέλιση του πίνακα, δηλαδή ως προς τον χωρισμό του σε μικρότερους πίνακες, οπότε και τον σπάσαμε σε διανύσματα δηλαδή ανά γραμμές. 27

31 Έχουμε ήδη εξηγήσει πως δουλεύει το multiprocessing και είναι εύκολο κανείς να κατανοήσει πως έχουμε κατασκευάσει δύο συναρτήσεις της μορφής: def matrix_vector((max, vec)): # Συνάρτηση για παράλληλη εκτέλεση return dot(max,vec) # πολλαπλασιασμού πίνακα με διάνυσμα Προπαρασκευαστικό Στάδιο Για την υλοποίηση με το συγκεκριμένο πακέτο για εκτέλεση παράλληλων πράξεων χρειάζεται πρώτα μία μετατροπή των δεδομένων σε λίστες με τα διανύσματα ή/και τις ακέραιες τιμές που θα δίνουμε σαν όρισμα κάθε φορά που καλούμε την συνάρτηση. Αυτή είναι μία αρκετά χρονοβόρα διαδικασία και παρακάτω όπου θα παρουσιάσουμε τα αποτελέσματα αλλά και τα συμπεράσματα που απορρέουν από αυτή την μελέτη αυτό θα γίνει ιδιαίτερα εμφανές. Επίσης, το ίδιο χρονοβόρα είναι και η αντίστροφη διαδικασία, δηλαδή η μετατροπή των αποτελεσμάτων από λίστες σε διανύσματα. Τέλος, στο προπαρασκευαστικό στάδιο ανήκει και η διαδικασία έναρξης και τερματισμού του συνόλου των διεργασιών. Όλα τα παραπάνω αναλύονται εκτενώς στις παραγράφους που θα ακολουθήσουν. Πειράματα Για τα πειράματα μας δυστυχώς δεν είχαμε στην διάθεση μας ένα σύστημα με τους διαθέσιμους πόρους που θα επιθυμούσαμε προκειμένου να δούμε διαφορές σε μεγάλα γραμμικά συστήματα ανάμεσα στους χρόνους εκτέλεσης. Τα δεδομένα που χρησιμοποιήσαμε είναι διαθέσιμα στις ιστοσελίδες του και Οι πίνακες που χρησιμοποιήσαμε ήταν περίπου μεγέθους 2000 x Παρατηρήθηκε ότι η μεγαλύτερη βελτίωση χρονισμού επήλθε με την δημιουργία τεσσάρων νημάτων και προκειμένου να καταλήξουμε σε αυτό το συμπέρασμα έγιναν δοκιμές με 2, 4, 8 και 16 νήματα. Το υπολογιστικό σύστημα στο οποίο εκτελέστηκαν οι αλγόριθμοι που έχουμε περιγράψει μέχρι στιγμής έχει τα εξής χαρακτηριστικά: CPU: Intel(R) Core(TM) i5-4300m 2 cores - 4 physical threads RAM: 4,00GB System Type: 64-bit Operating System GPU: Intel HD Graphics

32 Αξίζει να επισημάνουμε σε αυτό το σημείο πως η χρονομέτρηση των πινάκων έγινε με την χρήση του πακέτου time της Python. Η τεχνική που εφαρμόσαμε είναι ότι κρατάμε τον αρχικό χρόνο δηλαδή το σημείο από το οποίο θέλουμε να αρχίσουμε την χρονομέτρηση της πράξης μας και στο τέλος τον αφαιρούμε από τον χρόνο κατά τον οποίο τερματίστηκε η εκτέλεση του προγράμματος μας ή της πράξης της οποίας θέλουμε να χρονομετρίσουμε. Τέλος, χρησιμοποιήσαμε το λογισμικό Pycharm για την ανάπτυξη του κώδικα. Πρόκειται για ένα πάρα πολύ χρήσιμο εργαλείο για κάθε προγραμματιστή Python. Διαθέτει Python κονσόλα, linux terminal, είναι συμβατό και με τα όλα τα λειτουργικά συστήματα (Windows, Linux, etc). Ακόμα, με αυτό το λογισμικό είναι δυνατή η χρήση κάποιου εργαλείου version control όπως svn ή git η άμεση αποσφαλμάτωση του κώδικα καθώς προσφέρει στον χρήστη ένα ενσωματωμένο εργαλείο για αυτήν την δουλειά που στο σύνολο του είναι πολύ εύχρηστο και ιδιαίτερα χρήσιμο. Επίσης, είναι εύκολη η εγκατάσταση νέων πακέτων της Python και η ενσωμάτωση αρχείων φακέλων και πακέτων, τα οποία εμείς δημιουργούμε στο project μας. Τέλος, προσφέρει στον προγραμματιστή την δυνατότητα refactoring του κώδικα με πολύ εύκολο τρόπο. Πίνακες που χρησιμοποιήσαμε για τα πειράματα μας Οι πίνακες που χρησιμοποιήσαμε για την διεξαγωγή των πειραμάτων είναι από δεδομένα της NASA, πρόκειται για πίνακες οι οποίοι είναι συμμετρικοί και θετικά ορισμένοι. Πιο συγκεκριμένα, ο πίνακας nasa1824 είναι διαστάσεων 1824 x 1824 και περιέχει μη μηδενικά στοιχεία ενώ ο πίνακας nasa2146 είναι διαστάσεων 2146 x 2146 και περιέχει μη μηδενικά στοιχεία. Τα δύο αυτά σύνολα δεδομένων που χρησιμοποιήθηκαν αποτελούν δεδομένα από structural προβλήματα. 29

33 Εικόνα 3.1: Μορφή πίνακα nasa1824 Εικόνα 3.2 Μορφή πίνακα nasa

34 Πίνακας αποτελεσμάτων Χρόνοι Εκτέλεσης Πράξεων και Προγραμμάτων Method Iterations Total Time (seconds) Conjugate Gradient Preconditioned Conjugate Gradient (Jacobi) Preconditioned Conjugate Gradient (Cholesky) Parallel Conjugate Gradient Preconditioned Conjugate Gradient (Jacobi) Preconditioned Conjugate Gradient (Cholesky) Multiply Time Parallel Multiplication Single Multiplication e-07 Πίνακας 3.1: nasa1824 Πίνακας αποτελεσμάτων Χρόνοι Εκτέλεσης Πράξεων και Προγραμμάτων Method Iterations Total Time (seconds) Conjugate Gradient Preconditioned Conjugate Gradient (Jacobi) Preconditioned Conjugate Gradient (Cholesky) Parallel Conjugate Gradient Preconditioned Conjugate Gradient (Jacobi) Preconditioned Conjugate Gradient (Cholesky) Multiply Time Parallel Multiplication Single Multiplication e-06 Χρόνος για έναρξη Νημάτων 0.03 Χρόνος για λήξη Νημάτων Πίνακας 3.2: nasa

35 Συμπεράσματα Τα σύνολα δεδομένων τα οποία είχαμε την δυνατότητα να τρέξουμε στον υπολογιστή μας δεν επαρκούν ώστε να έχουμε μία πληρέστερη εικόνα για το ποσοστό βελτίωσης σε ότι αφορά τον απαιτούμενο αριθμό επαναλήψεων με κάθε μέθοδο. Ωστόσο τα αποτελέσματα είναι αναμενόμενα σε ότι αφορά τον αριθμό των επαναλήψεων που απαιτείται με κάθε μία από τις σειριακές μεθόδους. Τα συμπεράσματα είναι αντίστοιχα με αυτά των σειριακών μεθόδων ως προς τον συνολικό αριθμό επαναλήψεων απορρέουν και από την εφαρμογή των παράλληλων αλγορίθμων. Όπως έχουμε αναλύσει ήδη στα κεφάλαια που προηγήθηκαν η βελτίωση που αναμένεται να παρατηρηθεί σχετίζεται σε μεγάλο βαθμό με τον προρυθμιστή πίνακα που εφαρμόζουμε στο γραμμικό μας σύστημα. Επίσης, έχουμε ήδη επισημάνει ότι έχουμε εφαρμόσει ως προρυθμιστή τον καλύτερο και τον χειρότερο πίνακα. Όταν αυτός είναι ο πίνακας με τα στοιχεία της διαγωνίου του αρχικού τότε δεν περιμένουμε να σημειωθεί μεγάλη βελτίωση ενώ όταν εφαρμόζεται ένας καλύτερος πίνακας περιμένουμε να έχουμε μείωση στο σύνολο των επαναλήψεων όπως και φαίνεται να έχουμε. Βέβαια δεν θεωρούμε ότι το ποσοστό βελτίωσης που φαίνεται να έχουμε είναι αντιπροσωπευτικό της αναμενόμενης βελτίωσης διότι είναι πολύ υψηλό. Το επόμενο μέτρο ως προς το οποίο σκοπεύουμε να σχολιάσουμε τα αποτελέσματα που λάβαμε είναι αυτό της χρονικής διάρκειας της εκτέλεσης του κώδικα ανάμεσα στην σειριακή και παράλληλη εκτέλεση των αλγορίθμων. Σε αυτή την περίπτωση δεν φαίνεται να έχουμε βελτίωση, αντίθετα έχουμε χειροτέρευση. Αυτό είναι κάτι το οποίο επίσης αναμέναμε, και συμβαίνει διότι είναι ιδιαίτερα χρονοβόρο το προπαρασκευαστικό στάδιο για την παράλληλη εκτέλεση, δηλαδή η μετατροπή των πινάκων σε λίστα από διανύσματα κάθε φορά. Ακόμα, σε ό,τι αφορά τον συνολικό χρόνο εκτέλεσης της πράξης βλέπουμε πως αυτός αυξάνεται σημαντικά αν όμως χρονομετρήσουμε την πράξη που έχουμε να εκτελέσουμε κάθε φορά στην παράλληλη υλοποίηση παρατηρούμε ότι αυτή καθεαυτή η πράξη απαιτεί κάποια μseconds. Αυτό που επιβαρύνει περεταίρω την συνολική πράξη είναι η κλήση της συνάρτησης αλλά και η επιστροφή από αυτή καθώς και η έναρξη και η λήξη, μαζί με την επιστροφή στο master νήμα. Συμπερασματικά λοιπόν, δεν θεωρούμε ότι είναι δυνατή η παράλληλη υλοποίηση αυτών των αλγορίθμων και ταυτόχρονα η βελτίωση του χρόνου εκτέλεσης με αυτό το Python module διότι είναι ακριβές οι μετατροπές από λίστες σε διανύσματα, συνεπώς και η αντίστροφη αυτής. Επίσης, οι βελτιστοποιήσεις που μπορούν να εφαρμοστούν στους αλγορίθμους συζυγών κλήσεων αφορούν πράξεις οι οποίες ήδη τρέχουν βέλτιστα λόγω της διασύνδεσης τους με τις βιβλιοθήκες blas, lapack, mkl κτλ. Σαν μελλοντική συνέχιση της συγκεκριμένης μελέτης θα μπορούσε να επιχειρηθεί πάλι η παράλληλη υλοποίηση των συγκεκριμένων 32

36 μεθόδων με κάποιο άλλο πακέτο της Python. Ωστόσο επίσης δεν αναμένονται ιδιαίτερες βελτιστοποιήσεις λόγω της διασύνδεσης των πράξεων με τις προαναφερθείσες βιβλιοθήκες και εξαιτίας του ότι πάντα θα έχουμε κάποια χρονική επιβάρυνση λόγω του προπαρασκευαστικού σταδίου της εφαρμογής παράλληλων τεχνικών υλοποίησης. Τέλος, πιο συγκεκριμένα, με το IPython πακέτο αναμένονται παρόμοια αποτελέσματα όπως με το multiprocessing λόγω του ότι έχουν παρόμοια τεχνική εφαρμογής, ενώ με το MPI έχουμε επιβάρυνση λόγω της συνεχούς μετακίνησης των δεδομένων που στην περίπτωση μας είναι διανύσματα, κάτι που καθιστά την διαδικασία ιδιαίτερα ακριβή χρονικά. 33

37 Βιβλιογραφία [1] Y. Saad Iterative Methods for Sparse Linear Systems, Second Edition ( [2]G.H.Golub-C.F Van Loan Matrix Computations, Third Edition ( %20Matrix%20Computations.pdf) [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Introduction to MPI with MPI4Py ( [13] Concurrency Kung-fu: Python Style ( 2012/_media/parallel_talk.pdf) [14] [15] 34

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Επαναληπτικές μέθοδοι για την επίλυση γραμμικών συστημάτων. Μιχάλης Δρακόπουλος Επαναληπτικές μέθοδοι για την επίλυση γραμμικών συστημάτων Μιχάλης Δρακόπουλος Σημειώσεις Αριθμητικής Γραμμικής Άλγεβρας 2012 2013 Εισαγωγή Στην αριθμητική επίλυση μαθηματικών εφαρμογών, όπως για παράδειγμα

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ Α. Ντούνης ΔΙΔΑΣΚΩΝ ΑΚΑΔ. ΥΠΟΤΡΟΦΟΣ Χ. Τσιρώνης ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ ΔΕΥΤΕΡΟ - Διανύσματα - Πράξεις με πίνακες - Διαφορικός λογισμός (1D) ΜΑΘΗΜΑΤΙΚΟ ΥΠΟΒΑΘΡΟ

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Προσομοίωση μεγάλης κλίμακας γραμμικών κυκλωμάτων σε παράλληλες πλατφόρμες Ειδικό Θέμα Ιωαννίδης Κ. Σταύρος Αριθμός Ειδικού Μητρώου:

Διαβάστε περισσότερα

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

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Γραμμικά Συστήματα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Γραμμικό Σύστημα a11x1 + a12x2 + + a1 nxn = b1 a x + a x + +

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση χωρίς περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 7-8 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα Παράδειγμα Να βρείτε τις ιδιοτιμές και τα αντίστοιχα ιδιοδιανύσματα του πίνακα A 4. Επίσης να προσδιοριστούν οι ιδιοχώροι και οι γεωμετρικές πολλαπλότητες των ιδιοτιμών.

Διαβάστε περισσότερα

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU Επιμέλεια: Ι. Λυχναρόπουλος Παράδειγμα x y Να επιλυθεί το ακόλουθο σύστημα: x+ y 6 Σε μορφή πινάκων το σύστημα γράφεται ως: x y

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

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

D = / Επιλέξτε, π.χ, το ακόλουθο απλό παράδειγμα: =[IA 1 ]. 4. Φυλλάδιο Ασκήσεων IV σύντομες λύσεις, ενδεικτικές απαντήσεις πολλαπλής επιλογής 4.. Άσκηση. Χρησιμοποιήστε τη διαδικασία Gauss-Jordan γιά να βρείτε τους αντιστρόφους των παρακάτω πινάκων, αν υπάρχουν.

Διαβάστε περισσότερα

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ιδιάζουσες τιμές πίνακα. y έχουμε αντίστοιχα τις σχέσεις : Αυτές οι παρατηρήσεις συμβάλλουν στην παραγοντοποίηση ενός πίνακα Ιδιάζουσες τιμές πίνακα Επειδή οι πίνακες που παρουσιάζονται στις εφαρμογές είναι μη τετραγωνικοί, υπάρχει ανάγκη να βρεθεί μία μέθοδος που να «μελετά» τους μη τετραγωνικούς με «μεθόδους και ποσά» που

Διαβάστε περισσότερα

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

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Συστήματα Γραμμικών Εξισώσεων Εισαγωγή Σύστημα γραμμικών εξισώσεων a x a x a x b 11

Διαβάστε περισσότερα

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss Jordan

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss Jordan Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss Jodan Παράδειγμα x y Να επιλυθεί το ακόλουθο σύστημα: x y 6 Σε μορφή πινάκων το σύστημα γράφεται ως: x y 6 με απαλοιφή Gauss. Ο επαυξημένος πίνακας του συστήματος

Διαβάστε περισσότερα

Μόρφωση του συστήματος εξισώσεων. Επίλυση και επεξεργασία των αποτελεσμάτων

Μόρφωση του συστήματος εξισώσεων. Επίλυση και επεξεργασία των αποτελεσμάτων Κεφάλαιο 4 Μόρφωση του συστήματος εξισώσεων. Επίλυση και επεξεργασία των αποτελεσμάτων Στο παρόν κεφάλαιο περιγράφεται η διαδικασία με την οποία γίνεται η μεταφορά από το τοπικό στο συνολικό μητρώο δυσκαμψίας,

Διαβάστε περισσότερα

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

Παναγιώτης Ψαρράκος Αν. Καθηγητής Ανάλυση Πινάκων Κεφάλαιο 2: Παραγοντοποίηση LU Παναγιώτης Ψαρράκος Αν Καθηγητής ΔΠΜΣ Εφαρμοσμένες Μαθηματικές Επιστήμες Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Τομέας Μαθηματικών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

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

Μέθοδοι πολυδιάστατης ελαχιστοποίησης Μέθοδοι πολυδιάστατης ελαχιστοποίησης με παραγώγους Μέθοδοι πολυδιάστατης ελαχιστοποίησης Δ. Γ. Παπαγεωργίου Τμήμα Μηχανικών Επιστήμης Υλικών Πανεπιστήμιο Ιωαννίνων dpapageo@cc.uoi.gr http://pc64.materials.uoi.gr/dpapageo

Διαβάστε περισσότερα

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

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1) ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ I (22 Σεπτεµβρίου) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ 1ο ΘΕΜΑ 1. Αφού ορίσετε ακριβώς τι σηµαίνει πίσω ευσταθής υπολογισµός, να εξηγήσετε αν ο υ- πολογισµός του εσωτερικού γινοµένου δύο διανυσµάτων

Διαβάστε περισσότερα

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

ΜΕΜ251 Αριθμητική Ανάλυση ΜΕΜ251 Αριθμητική Ανάλυση Διάλεξη 09, 9 Μαρτίου 2018 Μιχάλης Πλεξουσάκης Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Περιεχόμενα 1. Επαναληπτικές μέθοδοι 2. Θεωρία γενικών επαναληπτικών μεθόδων 3. Σύγκλιση

Διαβάστε περισσότερα

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

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ Θα ξεκινήσουµε την παρουσίαση των γραµµικών συστηµάτων µε ένα απλό παράδειγµα από τη Γεωµετρία, το οποίο ϑα µας ϐοηθήσει στην κατανόηση των συστηµάτων αυτών και των συνθηκών

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση με περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Διάλεξη 9-10 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: μέθοδοι μονοδιάστατης ελαχιστοποίησης Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 6 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

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

ΜΕΜ251 Αριθμητική Ανάλυση ΜΕΜ251 Αριθμητική Ανάλυση Διάλεξη 06, 26 Φεβρουαρίου 2018 Μιχάλης Πλεξουσάκης Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Περιεχόμενα 1. Η ανάλυση LU 2. Η ανάλυση LDM T και η ανάλυση LDL T 3. Συμμετρικοί

Διαβάστε περισσότερα

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

A Τελική Εξέταση του μαθήματος «Αριθμητική Ανάλυση» Σχολή Θετικών Επιστημών, Τμήμα Μαθηματικών, Πανεπιστήμιο Αιγαίου A Τελική Εξέταση του μαθήματος «Αριθμητική Ανάλυση» Εξεταστική περίοδος Ιουνίου 6, Διδάσκων: Κώστας Χουσιάδας Διάρκεια εξέτασης: ώρες (Σε παρένθεση δίνεται η βαθμολογική αξία κάθε υπο-ερωτήματος. Σύνολο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Εργαστήριο Θερμικών Στροβιλομηχανών Μονάδα Παράλληλης ης Υπολογιστικής Ρευστοδυναμικής & Βελτιστοποίησης ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ (7 ο Εξάμηνο Σχολής Μηχ.Μηχ. ΕΜΠ)

Διαβάστε περισσότερα

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις 1. Εισαγωγή Δίνεται η συνάρτηση μεταφοράς = = 1 + 6 + 11 + 6 = + 6 + 11 + 6 =. 2 Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις L = 0 # και L $ % &'

Διαβάστε περισσότερα

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

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Ολοκλήρωση Εισαγωγή Έστω ότι η f είναι μία φραγμένη συνάρτηση στο πεπερασμένο

Διαβάστε περισσότερα

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

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Διανυσματικοί Χώροι Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Διανυσματικός Χώρος επί του F Αλγεβρική δομή που αποτελείται

Διαβάστε περισσότερα

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

Μάθημα Επιλογής 8 ου εξαμήνου EΘNIKO ΜEΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΙΙ: Ανάλυσης, Σχεδιασμού & Ανάπτυξης Διεργασιών & Συστημάτων Διάλεξη 3: Βασικές τεχνικές επίλυσης γραμμικών συστημάτων Μάθημα Επιλογής 8 ου εξαμήνου

Διαβάστε περισσότερα

Σημειώσεις διαλέξεων: Βελτιστοποίηση πολυδιάστατων συνεχών συναρτήσεων 1 / 20

Σημειώσεις διαλέξεων: Βελτιστοποίηση πολυδιάστατων συνεχών συναρτήσεων 1 / 20 Σημειώσεις διαλέξεων: Βελτιστοποίηση πολυδιάστατων συνεχών συναρτήσεων Ισαάκ Η Λαγαρής 1 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιον Ιωαννίνων 1 Με υλικό από το υπό προετοιμασία βιβλίο των: Βόγκλη,

Διαβάστε περισσότερα

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

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων Κεφ. : Επίλυση συστημάτων αλγεβρικών εξισώσεων. Επίλυση απλών εξισώσεων. Επίλυση συστημάτων με απευθείας μεθόδους.. Μέθοδοι Gauss, Gauss-Jorda.. Παραγοντοποίηση LU (ειδικές περιπτώσεις: Cholesky, Thomas)..

Διαβάστε περισσότερα

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

Διαβάστε περισσότερα

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

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

Διαβάστε περισσότερα

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

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων Κεφ. : Επίλυση συστημάτων εξισώσεων. Επίλυση εξισώσεων. Επίλυση συστημάτων με απευθείας μεθόδους.. Μέθοδοι Gauss, Gauss-Jorda.. Παραγοντοποίηση LU (ειδικές περιπτώσεις: Cholesky, Thomas).. Νόρμες πινάκων,

Διαβάστε περισσότερα

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

Εφαρμοσμένα Μαθηματικά ΙΙ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας Εφαρμοσμένα Μαθηματικά ΙΙ Διανυσματικοί Χώροι Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Διανυσματικός Χώρος επί του F Αλγεβρική δομή που αποτελείται

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

Διαβάστε περισσότερα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Πίνακες και Γραμμικά Συστήματα: Ο Αλγόριθμος Guss Ανδριανός Ε Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Διαβάστε περισσότερα

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

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων Κεφ. : Επίλυση συστημάτων αλγεβρικών εξισώσεων. Επίλυση απλών εξισώσεων. Επίλυση συστημάτων με απευθείας μεθόδους.. Μέθοδοι Gauss, Gauss-Jorda.. Παραγοντοποίηση LU ειδικές περιπτώσεις: Cholesky, Thomas..

Διαβάστε περισσότερα

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

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Ασχολoύνται με την κατασκευή μαθηματικών μοντέλων και με τεχνικές ποσοτικής ανάλυσης και τη χρήση υπολογιστών για την ανάλυση και την επίλυση επιστημονικών

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ με το EXCEL

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ με το EXCEL ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ με το EXCEL ΠΡΟΒΛΗΜΑ ΓΡΑΜΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ( Μαθηματικών Γ Γυμνασίου έκδοση ΙΑ 99 σελ. 236 / Έχει γίνει μετατροπή των δρχ. σε euro.) Ένας κτηνοτρόφος πρόκειται να αγοράσει

Διαβάστε περισσότερα

HY213. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΑΧΙΣΤΑ ΤΕΤΡΑΓΩΝΑ AΝΑΛΥΣΗ ΙΔΙΑΖΟΥΣΩΝ ΤΙΜΩΝ

HY213. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΑΧΙΣΤΑ ΤΕΤΡΑΓΩΝΑ AΝΑΛΥΣΗ ΙΔΙΑΖΟΥΣΩΝ ΤΙΜΩΝ HY3. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΑΧΙΣΤΑ ΤΕΤΡΑΓΩΝΑ AΝΑΛΥΣΗ ΙΔΙΑΖΟΥΣΩΝ ΤΙΜΩΝ Π. ΤΣΟΜΠΑΝΟΠΟΥΛΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέθοδος ελαχίστων τετραγώνων Τα σφάλματα

Διαβάστε περισσότερα

z = c 1 x 1 + c 2 x c n x n

z = c 1 x 1 + c 2 x c n x n Τεχνολογικό Εκπαιδευτικό Ιδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός & Βελτιστοποίηση Δρ. Δημήτρης Βαρσάμης Καθηγητής Εφαρμογών Δρ. Δημήτρης Βαρσάμης Μάρτιος

Διαβάστε περισσότερα

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ Ονοματεπώνυμο:......... Α.Μ....... Ετος... ΑΙΘΟΥΣΑ:....... I. (περί τις 55μ. = ++5++. Σωστό ή Λάθος: ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - //8 ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ (αʹ Αν AB = BA όπου A, B τετραγωνικά και

Διαβάστε περισσότερα

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Ισότητα, Αλγεβρικές και Αναλυτικές Ιδιότητες Πραγματικών Ακολουθιών

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

Διαβάστε περισσότερα

Παρουσίαση συλλογών υποπρογραμμάτων για γραμμική άλγεβρα: blas lapack

Παρουσίαση συλλογών υποπρογραμμάτων για γραμμική άλγεβρα: blas lapack Παρουσίαση συλλογών υποπρογραμμάτων για γραμμική άλγεβρα: blas lapack Σταμάτης Σταματιάδης Τμήμα Επιστήμης και Τεχνολογίας Υλικών, Πανεπιστήμιο Κρήτης blas Basic Linear Algebra Subprograms Υποπρογράμματα

Διαβάστε περισσότερα

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

ΜΕΜ251 Αριθμητική Ανάλυση ΜΕΜ251 Αριθμητική Ανάλυση Διάλεξη 07, 2 Μαρτίου 2018 Μιχάλης Πλεξουσάκης Τμήμα Μαθηματικών και Εφαρμοσμένων Μαθηματικών Περιεχόμενα 1. Συμμετρικοί και θετικά ορισμένοι πίνακες. Η ανάλυση Cholesky 2. Νόρμες

Διαβάστε περισσότερα

8.1 Διαγωνοποίηση πίνακα

8.1 Διαγωνοποίηση πίνακα Κεφάλαιο 8 Κανονικές μορφές από 6 Κεφάλαιο 8 Κ Α Ν Ο Ν Ι Κ Ε Σ Μ Ο Ρ Φ Ε Σ 8. Διαγωνοποίηση πίνακα Ορισμός 8.α Ένας πίνακας M n ( ) oνομάζεται διαγωνοποιήσιμος στο αν υπάρχει αντιστρέψιμος πίνακας P M

Διαβάστε περισσότερα

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

Πεπερασμένες Διαφορές. Κεφάλαιο 1 Πεπερασμένες Διαφορές. 1.1 Προσέγγιση παραγώγων. 1.1.1 Πρώτη παράγωγος. Από τον ορισμό της παραγώγου για συναρτήσεις μιας μεταβλητής γνωρίζουμε ότι η παράγωγος μιας συνάρτησης f στο σημείο x

Διαβάστε περισσότερα

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX Θεμελιώδης αλγόριθμος επίλυσης προβλημάτων Γραμμικού Προγραμματισμού που κάνει χρήση της θεωρίας της Γραμμικής Άλγεβρας Προτάθηκε από το Dantzig (1947) και πλέον

Διαβάστε περισσότερα

ΚΕΦ.6:ΤΕΤΡΑΓΩΝΙΚΕΣ ΜΟΡΦΕΣ. ΣΥΜΜΕΤΡΙΚΟΙ ΠΙΝΑΚΕΣ

ΚΕΦ.6:ΤΕΤΡΑΓΩΝΙΚΕΣ ΜΟΡΦΕΣ. ΣΥΜΜΕΤΡΙΚΟΙ ΠΙΝΑΚΕΣ ΚΕΦ:ΤΕΤΡΑΓΩΝΙΚΕΣ ΜΟΡΦΕΣ ΣΥΜΜΕΤΡΙΚΟΙ ΠΙΝΑΚΕΣ Τετραγωνικές μορφές: Συναρτήσεις με τύπο Q ν α ι j j, j [ ] ν α α ν αν α νν ν Τ Χ ΑΧ Για παράδειγμα εάν v Q α + α + α + α α + α + α + α δηλ a a a a α + α + α

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παρουσίαση 3ης Άσκησης

Παρουσίαση 3ης Άσκησης Παρουσίαση 3ης Άσκησης Παράλληλος προγραμματισμός για αρχιτεκτονικές κατανεμημένης μνήμης με MPI Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος

Διαβάστε περισσότερα

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

3. Γραμμικά Συστήματα 3. Γραμμικά Συστήματα Ασκήσεις 3. Αποδείξτε ότι το γινόμενο δύο άνω τριγωνικών πινάκων είναι άνω τριγωνικός πίνακας. Επίσης, στην περίπτωση που ένας άνω τριγωνικός πίνακας U 2 R n;n είναι αντιστρέψιμος,

Διαβάστε περισσότερα

Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι

Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι Επιμέλεια: Ι. Λυχναρόπουλος. Δείξτε ότι ο V R εφοδιασμένος με τις ακόλουθες πράξεις (, a b) + (, d) ( a+, b+ d) και k ( ab, ) ( kakb,

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72 Αριθµητική Ανάλυση 7 Οκτωβρίου 06 Αριθµητική Ανάλυση 7 Οκτωβρίου 06 / 7 Επαναληπτικές Μέθοδοι για την επίλυση Γραµµικών Συστηµάτων ίνεται το γραµµικό σύστηµα Ax = b όπου A R n n είναι µη ιδιάζων πίνακας

Διαβάστε περισσότερα

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

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΕΙΣΑΓΩΓΗ ΣΤΗN ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ 3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ Μ. Καρλαύτης Ν. Λαγαρός Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1 Τελεστές και πίνακες 1. Τελεστές και πίνακες Γενικά Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. Ανάλογα, τελεστής είναι η απεικόνιση ενός διανύσματος σε ένα

Διαβάστε περισσότερα

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 9 1. Εισαγωγή... 13 1.1 Οι Μεγάλες Σύγχρονες Επιστημονικές Προκλήσεις... 13 1.2 Εξέλιξη της Παράλληλης Επεξεργασίας Δεδομένων... 14 1.3 Οι Έννοιες της Σωλήνωσης, του Παραλληλισμού

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ ΥΠΕΥΘΥΝΟΣ ΚΑΘΗΓΗΤΗΣ Α. Ντούνης ΔΙΔΑΣΚΩΝ ΑΚΑΔ. ΥΠΟΤΡΟΦΟΣ Χ. Τσιρώνης ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ - Επίλυση ασκήσεων - Αλγόριθμοι αναζήτησης - Επαναληπτική κάθοδος ΕΠΙΛΥΣΗ ΑΣΚΗΣΕΩΝ ΠΡΑΞΗΣ Θα επιλυθούν

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) Εισαγωγή στον Προγραµµατισµό Αριθµητική Ανάλυση (ή Επιστηµονικοί Υπολογισµοί) ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ 8 εκεµβρίου 04 Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) εκεµβρίου

Διαβάστε περισσότερα

Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους

Β Ομάδα Ασκήσεων Λογικού Προγραμματισμού Ακαδημαϊκού Έτους Page 1 of 15 ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2016-17 Οι ασκήσεις της ομάδας αυτής πρέπει

Διαβάστε περισσότερα

Linear Equations Direct Methods

Linear Equations Direct Methods Lier Equtios Direct ethods Πέμπτη, Μαΐου 5 :8 πμ 5.5. Σελίδα 5.5. Σελίδα 5.5. Σελίδα 3 5.5. Σελίδα 4 5.5. Σελίδα 5 Lier Equtios - Direct ethods Δευτέρα, 5 Μαΐου 5 5:5 μμ 5.5.5 Σελίδα 5.5.5 Σελίδα 5.5.5

Διαβάστε περισσότερα

1. ΣΤΑΤΙΚΗ ΑΡΙΣΤΟΠΟΙΗΣΗ

1. ΣΤΑΤΙΚΗ ΑΡΙΣΤΟΠΟΙΗΣΗ . ΣΤΑΤΙΚΗ ΑΡΙΣΤΟΠΟΙΗΣΗ. Μέγιστα και Ελάχιστα Συναρτήσεων Χωρίς Περιορισμούς Συναρτήσεις μιας Μεταβλητής Εστω f ( x) είναι συνάρτηση μιας μόνο μεταβλητής. Εστω επίσης ότι x είναι ένα σημείο στο πεδίο ορισμού

Διαβάστε περισσότερα

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί Χώροι Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: Διανυσματικοί Χώροι α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο

Διαβάστε περισσότερα

ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ

ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ Βασίζεται στην εφαρμογή των παρακάτω βημάτων:. Το φυσικό πεδίο αναπαριστάται με ένα σύνολο απλών γεωμετρικών σχημάτων που ονομάζονται Πεπερασμένα Στοιχεία.. Σε κάθε στοιχείο

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 Περιεχόμενα 1 Εισαγωγή 2 2 Μεγιστικός τελέστης στην μπάλα 2 2.1 Βασικό θεώρημα........................ 2 2.2 Γενική περίπτωση μπάλας.................. 6 2.2.1 Στο

Διαβάστε περισσότερα

III.10 ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ LAGRANGE

III.10 ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ LAGRANGE III.10 ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ LAGRANGE 1.Ισοτικός περιορισμός.περιορισμένη στασιμότητα 3.Πολλαπλασιαστής Lagrange 4.Συνάρτηση Lagrange 5.Ερμηνεία του πολλαπλασιαστή Lagrange 6.Περιορισμένη τετραγωνική μορφή 7.

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις

Ασκήσεις3 Διαγωνίσιμες Γραμμικές Απεικονίσεις Ασκήσεις 5 Βασικά σημεία Ιδιότητες ιδιόχωρων: Έστω,, Ισχύουν τα εξής Ασκήσεις Διαγωνίσιμες Γραμμικές Απεικονίσεις κάποιες διακεκριμένες ιδιοτιμές της γραμμικής απεικόνισης : V V, όπου o Αν v v 0, όπου

Διαβάστε περισσότερα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ ΤΜΗΜΑ ΔΙΕΘΝΟΥΣ ΕΜΠΟΡΙΟΥ ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ ΚΕΦΑΛΑΙΑ: ) ΠΙΝΑΚΕΣ ) ΟΡΙΖΟΥΣΕΣ ) ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ 4) ΠΑΡΑΓΩΓΟΙ ΜΑΡΙΑ ΡΟΥΣΟΥΛΗ ΚΕΦΑΛΑΙΟ ΠΙΝΑΚEΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ ΟΡΙΣΜΟΣ Πίνακας

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι ΘΕ ΠΛΗ ) ΕΡΓΑΣΙΑ Τα κάτωθι προβλήµατα προέρχονται από τα κεφάλαια, και του συγγράµµατος «Γραµµική Άλγεβρα». Η ηµεροµηνία παράδοσης

Διαβάστε περισσότερα

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο συμβολίζουμε με Σε αυτό το σύνολο γνωρίζουμε

Διαβάστε περισσότερα

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

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

ΘΕΩΡΙΑ ΠΙΝΑΚΩΝ. Ορισμός 1: Ένας πίνακας Α με m γραμμές και n στήλες, ΘΕΩΡΙΑ ΠΙΝΑΚΩΝ Ορισμός 1: Ένας πίνακας Α με m γραμμές και n στήλες, παριστάνεται με την εξής ορθογώνια διάταξη: α11 α12 α1n α21 α22 α2n A = αm1 αm2 αmn Ορισμός 2: Δύο πίνακες Α και Β είναι ίσοι, και γράφουμε

Διαβάστε περισσότερα

Ομογενή Συστήματα Ορισμός Ενα σύστημα λέγεται ομογενές αν όλοι οι σταθεροί όροι του (δηλαδή οι όροι του δεξιού μέλους του συστήματος) είναι μηδέν.

Ομογενή Συστήματα Ορισμός Ενα σύστημα λέγεται ομογενές αν όλοι οι σταθεροί όροι του (δηλαδή οι όροι του δεξιού μέλους του συστήματος) είναι μηδέν. Ομογενή Συστήματα Ορισμός Ενα σύστημα λέγεται ομογενές αν όλοι οι σταθεροί όροι του (δηλαδή οι όροι του δεξιού μέλους του συστήματος) είναι μηδέν. Ομογενή Συστήματα Ορισμός Ενα σύστημα λέγεται ομογενές

Διαβάστε περισσότερα

Γραμμική Άλγεβρα Ι,

Γραμμική Άλγεβρα Ι, Γραμμική Άλγεβρα Ι, 207-8 Ασκήσεις2 και Ασκήσεις3: Γραμμοϊσοδύναμοι Πίνακες και Επίλυση Γραμμικών Συστημάτων Βασικά σημεία Γραμμοϊσοδυναμία πινάκων o Στοιχειώδεις πράξεις γραμμών o Ανηγμένη κλιμακωτή μορφή

Διαβάστε περισσότερα

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (ΗΥ-119)

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (ΗΥ-119) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΙΩΑΝΝΗΣ Α. ΤΣΑΓΡΑΚΗΣ ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (ΗΥ-119) ΜΕΡΟΣ 5: ΔΙΑΝΥΣΜΑΤΙΚΟΙ ΥΠΟΧΩΡΟΙ ΓΡΑΜΜΙΚΗ ΑΝΕΞΑΡΤΗΣΙΑ ΒΑΣΕΙΣ & ΔΙΑΣΤΑΣΗ Δ.Χ. ΣΗΜΕΙΩΣΕΙΣ

Διαβάστε περισσότερα

Επιστηµονικός Υπολογισµός Ι

Επιστηµονικός Υπολογισµός Ι Επιστηµονικός Υπολογισµός Ι Ενότητα 5 : Επίλυση Γραµµικών Συστηµάτων Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 9: Γεωμετρία του Χώρου των Μεταβλητών, Υπολογισμός Αντιστρόφου Μήτρας Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες) ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, 2016-2017 ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες) Κεφ. 2: Επίλυση συστημάτων εξισώσεων (διάρκεια: 3 εβδομάδες) 2.1 Επίλυση εξισώσεων 2.2 Επίλυση

Διαβάστε περισσότερα

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

Διαβάστε περισσότερα

Το μοντέλο Perceptron

Το μοντέλο Perceptron Το μοντέλο Perceptron Αποτελείται από έναν μόνο νευρώνα McCulloch-Pitts w j x x 1, x2,..., w x T 1 1 x 2 w 2 Σ u x n f(u) Άνυσμα Εισόδου s i x j x n w n -θ w w 1, w2,..., w n T Άνυσμα Βαρών 1 Το μοντέλο

Διαβάστε περισσότερα

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

Μάθημα Επιλογής 8 ου εξαμήνου EΘNIKO ΜEΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΙΙ: Ανάλυσης, Σχεδιασμού & Ανάπτυξης Διεργασιών & Συστημάτων Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασμού Μάθημα Επιλογής 8 ου εξαμήνου Διδάσκων:

Διαβάστε περισσότερα

21 a 22 a 2n. a m1 a m2 a mn

21 a 22 a 2n. a m1 a m2 a mn Παράρτημα Α Βασική γραμμική άλγεβρα Στην ενότητα αυτή θα παρουσιαστούν με συνοπτικό τρόπο βασικές έννοιες της γραμμικής άλγεβρας. Ο στόχος της ενότητας είναι να αποτελέσει ένα άμεσο σημείο αναφοράς και

Διαβάστε περισσότερα

Παραδείγματα (2 ο σετ) Διανυσματικοί Χώροι Επιμέλεια: Ι. Λυχναρόπουλος

Παραδείγματα (2 ο σετ) Διανυσματικοί Χώροι Επιμέλεια: Ι. Λυχναρόπουλος Παραδείγματα ( ο σετ) Διανυσματικοί Χώροι Επιμέλεια: Ι. Λυχναρόπουλος Παράδειγμα Έστω ο υποχώρος W του R 5 που παράγεται από τα διανύσματα v=(,,-,,), v=(,,-,6,8), v=(,,,,6), v=(,,5,,8), v5=(,7,,,9). a)

Διαβάστε περισσότερα