ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
|
|
- Θεοφάνια Κόρακας
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΣΤΑΤΙΣΤΙΚΗΣ ΜΕΘΟΔΟΙ ΑΡΙΘΜΗΤΙΚΗΣ ΑΝΑΛΥΣΗΣ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΤΟ MATLAB Παντελής Ζ. Λάππας ΕΡΓΑΣΙΑ Που υποβλήθηκε στο Τμήμα Στατιστικής του Οικονομικού Πανεπιστημίου Αθηνών ως μέρος των απαιτήσεων για την απόκτηση Μεταπτυχιακού Διπλώματος Συμπληρωματικής Ειδίκευσης στη Στατιστική Μερικής Παρακολούθησης (Part-time) Αθήνα Σεπτέμβριος 2013
2 2
3 Αφιερώνεται στην Αργυρώ Δέλλα 3
4 4
5 ΕΥΧΑΡΙΣΤΙΕΣ Θα ήθελα να εκφράσω τις ευχαριστίες μου στον επιβλέποντα της διπλωματικής μου εργασίας, Καθηγητή κ. Αθανάσιο Γιαννακόπουλο, για τη συνεργασία που είχαμε στο πλαίσιο του μεταπτυχιακού προγράμματος, καθώς επίσης και για τα σχόλια, τις παρατηρήσεις και τις πολύτιμες συμβουλές του. Αθήνα, Σεπτέμβριος 2013 Παντελής Ζ. Λάππας I
6 II
7 ΒΙΟΓΡΑΦΙΚΟ ΣΗΜΕΙΩΜΑ Ο Παντελής Ζ. Λάππας είναι Μηχανικός Πληροφορικής και μεταπτυχιακός φοιτητής του τμήματος Στατιστικής στο Οικονομικό Πανεπιστήμιο Αθηνών. Είναι απόφοιτος του τμήματος Πληροφορικής του Τεχνολογικού Εκπαιδευτικού Ιδρύματος Αθηνών (2007) και του τμήματος Πληροφορικής του Οικονομικού Πανεπιστημίου Αθηνών από όπου έλαβε μεταπτυχιακό δίπλωμα ειδίκευσης στα Πληροφοριακά Συστήματα (2009). Επίσης, φοίτησε στο Ετήσιο Πρόγραμμα Παιδαγωγικής Κατάρτισης (ΕΠΠΑΙΚ) της Ανώτατης Σχολής Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης (ΑΣΠΑΙΤΕ), όπου του χορηγήθηκε Πιστοποιητικό Παιδαγωγικής και Διδακτικής Επάρκειας (2010). Έχει εργαστεί στην Εθνική Τράπεζα της Ελλάδος, στη Διεύθυνση Διαχείρισης Κινδύνου, ενώ παράλληλα με τις σπουδές του συμμετείχε σε projects στο Οικονομικό Πανεπιστήμιο Αθηνών (Τμήμα Πληροφορικής, Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας). Έχει λάβει υποτροφία επίδοσης από το Ίδρυμα Κρατικών Υποτροφιών (ΙΚΥ), ενώ η διπλωματική του εργασία με τίτλο «Οργάνωση Συνεδρίου και Υλοποίηση Εφαρμογής Υποστήριξης με Χρήση Εργαλείου CMS Τεχνολογίας» επελέγη μεταξύ των 10 καλύτερων για το Χειμερινό Εξάμηνο ( ) και βρίσκεται στη βάση της γκρίζας βιβλιογραφίας της Βιβλιοθήκης του ΤΕΙ Αθήνας. Στο πλαίσιο των μεταπτυχιακών του σπουδών έχουν συγγραφεί οι διπλωματικές εργασίες «Δείκτες Επιτυχίας και Διαχείρισης Κινδύνου στη Διοίκηση Έργων» (Τμήμα Πληροφορικής, ΟΠΑ) και «Μεθοδολογία και Αξιολόγηση Έρευνας» (Γενικό Τμήμα Παιδαγωγικών Μαθημάτων, ΑΣΠΑΙΤΕ). Τα ερευνητικά και επαγγελματικά ενδιαφέροντά του εστιάζονται στους ακόλουθους κλάδους: Στοχαστική μοντελοποίηση, Βελτιστοποίηση, Αριθμητική Ανάλυση, Διαχείριση Κινδύνου, Διαχείριση Εφοδιαστικής Αλυσίδας και Πληροφοριακά Συστήματα. III
8 IV
9 ABSTRACT Pantelis Lappas NUMERICAL METHODS AND OPTIMIZATION A MATLAB APPROACH September 2013 The subject of the present thesis is the exploration, description and implementation of the main numerical methods relative to system of linear equations, interpolation and curve fitting, nonlinear equations, matrices and eigenvalues, numerical differentiation and integration as well as differential equations. Most of the above methods are exted and combined with other numerical methods in the context of the optimization problem, where nonlinear optimization is studied in the case of both unconstrained and constrained optimization. Optimization practice is mostly through digital computation. The astonishing power and speed of personal computation today allows all designers to embed optimization ideas in practice. The use of optimization in professional practice requires three pre-requisites. Firstly, the design must be defined mathematically in a form so that the search for the solution can take place. Secondly, the knowledge of the optimization technique is necessary so that if required, techniques can be modified to yield a solution. Thirdly, knowledge of computing programming will make the intervention in the second item easier. Numerical analysis is very closed to computing programming and as a result, there is a special reference to computational errors, algorithms and programming. In the context of the present thesis, MATLAB is the software package by which all the numerical methods are implemented. V
10 VI
11 ΠΕΡΙΛΗΨΗ Παντελής Λάππας ΜΕΘΟΔΟΙ ΑΡΙΘΜΗΤΙΚΗΣ ΑΝΑΛΥΣΗΣ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΤΟ MATLAB Σεπτέμβριος 2013 Αντικείμενο μελέτης της παρούσας εργασίας αποτελεί η διερεύνηση, περιγραφή και υλοποίηση μεθόδων Αριθμητικής Ανάλυσης σε μια σειρά προβλημάτων όπως η επίλυση εξισώσεων (μέθοδοι με διαστήματα, μέθοδοι με αρχικές τιμές και πολυωνυμικές εξισώσεις), η επίλυση συστημάτων εξισώσεων (συστήματα γραμμικών και μη γραμμικών εξισώσεων, εύρεση ιδιοτιμών και ιδιοδιανυσμάτων), η προσέγγιση συναρτήσεων (πολυωνυμική παρεμβολή, φυσική κυβική splines και ελάχιστα τετράγωνα), η αριθμητική παραγώγιση και ολοκλήρωση και η επίλυση διαφορικών εξισώσεων (πρόβλημα αρχικών και συνοριακών τιμών). Επιπλέον, αφού επισημαίνεται η σημαντικότητα των μεθόδων, επεκτείνονται και αξιοποιούνται μαζί με άλλες μεθόδους Αριθμητικής Ανάλυσης σε προβλήματα βελτιστοποίησης. Πιο συγκεκριμένα, εξετάζεται το πρόβλημα του Μη Γραμμικού Προγραμματισμού ως γενική περίπτωση που καλύπτει το πρόβλημα του Γραμμικού Προγραμματισμού. Ειδικότερα, μελετώνται προβλήματα βελτιστοποίησης μη γραμμικής αντικειμενικής συνάρτησης χωρίς περιορισμούς και υπό περιορισμούς (Θεωρία Lagrange, Θεωρία Kuhn-Tucker). Αρχικά, αναλύονται βασικές έννοιες που είναι άρρηκτα συνδεδεμένες με την Αριθμητική Ανάλυση, όπως η Αλγοριθμική, η Ανάλυση Σφαλμάτων και ο Προγραμματισμός Η/Υ, ενώ στην συνέχεια για κάθε κατηγορία προβλημάτων αναλύονται οι βασικότερες μέθοδοι Αριθμητικής Ανάλυσης, οι οποίες υλοποιούνται χρησιμοποιώντας το λογισμικό MATLAB. VII
12 VIII
13 ΚΑΤΑΛΟΓΟΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΕΥΧΑΡΙΣΤΙΕΣ... I ΒΙΟΓΡΑΦΙΚΟ ΣΗΜΕΙΩΜΑ... III ABSTRACT... V ΠΕΡΙΛΗΨΗ... VII 1. EΙΣΑΓΩΓΗ ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΝΝΟΙΕΣ Αλγοριθμική Περιγραφή Αλγορίθμων Παράσταση Αλγορίθμων Δομές Ελέγχου Διαγράμματα Ροής Ψευδοκώδικας Θεωρία Αλγορίθμων Ανάλυση Αλγορίθμων Είδη Αλγορίθμων Προγραμματισμός Μαθηματική Ανάλυση του Προβλήματος Δημιουργία του Αλγορίθμου Σχηματική Παρουσίαση του Αλγορίθμου Μεταφορά της Διαδικασίας του Αλγορίθμου στη Γλώσσα Προγραμματισμού Εκτέλεση του Προγράμματος στον Υπολογιστή Έλεγχος των Αποτελεσμάτων Ταξινόμηση Γλωσσών Προγραμματισμού Προγραμματισμός με το MATLAB Ανάλυση Σφαλμάτων Πηγές Σφαλμάτων Διακεκριμενοποίηση του Προβλήματος Αποκοπή και Στρογγυλοποίηση Δεδομένα Εισόδου Περιέχοντα Σφάλμα Η Λειτουργία του Η/Υ Επιλογή Αλγορίθμου Εκτίμηση Σφάλματος Υπολογισμού IX
14 Εκτίμηση Σφάλματος όταν είναι γνωστή η Πραγματική Τιμή Εκτίμηση Σφάλματος όταν δεν είναι γνωστή η Πραγματική Τιμή Εξέλιξη Σφαλμάτων Πρόσθεση Λοιπές Πράξεις Συναρτήσεις Επαναληπτικές Διαδικασίες Ευστάθεια Μοντέλων Η Έννοια της Προσέγγισης ΕΠΙΛΥΣΗ ΕΞΙΣΩΣΕΩΝ Μέθοδοι με Διαστήματα Μέθοδος της Διχοτόμου ή του Bolzano Περιγραφή της Μεθόδου Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με το MATLAB Μέθοδος της Εσφαλμένης Θέσης Περιγραφή της Μεθόδου Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με το MATLAB Μέθοδοι με Αρχικές Τιμές Μέθοδος του Σταθερού Σημείου Περιγραφή της Μεθόδου Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με MATLAB Μέθοδος των Newton-Raphson Περιγραφή της Μεθόδου Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με το MATLAB Μέθοδος της Τέμνουσας Περιγραφή της Μεθόδου X
15 Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με το MATLAB Πολυωνυμικές Εξισώσεις Σχήμα Horner Εφαρμογή του Σχήματος Horner Υπολογισμός του Υπολογισμός της k Τάξεως Παραγώγου του Σχήμα Horner και Μέθοδος Newton-Raphson ΕΠΙΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Συστήματα Γραμμικών Εξισώσεων Κατάσταση Γραμμικών Συστημάτων Σφάλμα και Αριθμός Κατάστασης Ευστάθεια Συστήματος Άμεσες Μέθοδοι Επίλυσης Μέθοδος του Gauss LU Παραγοντοποίηση Choleski Παραγοντοποίηση Μέθοδος του Gauss με Οδήγηση LU Παραγοντοποίηση με Οδήγηση Μέθοδος Jordan Επαναληπτικές Μέθοδοι Μέθοδος Jacobi Μέθοδος Gauss-Seidel Συστήματα μη Γραμμικών Εξισώσεων Ιακωβιανός Πίνακας Μέθοδος Newton Περιγραφή της Μεθόδου Σύγκλιση Κριτήριο Διακοπής Προγραμματισμός με το MATLAB Ιδιοτιμές και Ιδιοδιανύσματα Μέθοδος των Δυνάμεων Προσέγγιση της Απολύτως Μεγαλύτερης Ιδιοτιμής XI
16 Προσέγγιση της Απολύτως Μικρότερης Ιδιοτιμής Προγραμματισμός με το MATLAB Αντίστροφη Μέθοδος των Δυνάμεων Προγραμματισμός με το MATLAB Μέθοδος QR Περιγραφή της Μεθόδου Προγραμματισμός με το MATLAB ΠΡΟΣΕΓΓΙΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Προσέγγιση με Πολυωνυμική Παρεμβολή Σφάλμα Πολυωνυμικής Παρεμβολής Παρεμβολή Lagrange Περιγραφή της Μεθόδου Σφάλμα Παρεμβολής Προγραμματισμός με το MATLAB Παρεμβολή Newton Περιγραφή της Μεθόδου Σφάλμα Παρεμβολής Προγραμματισμός με το MATLAB Παρεμβολή Hermite Περιγραφή της Μεθόδου Προγραμματισμός με το MATLAB Προσέγγιση με Φυσική Κυβική Spline Έννοια των Splines Φυσική Κυβική Spline Προγραμματισμός με το MATLAB Προσέγγιση με τη Μέθοδο των Ελαχίστων Τετραγώνων Προσέγγιση Διακεκριμένων Σημείων Περιγραφή της Μεθόδου Πολυωνυμική Προσέγγιση Απλή Γραμμική Παλινδρόμηση Προγραμματισμός με το MATLAB ΑΡΙΘΜΗΤΙΚΗ ΠΑΡΑΓΩΓΙΣΗ ΚΑΙ ΟΛΟΚΛΗΡΩΣΗ Αριθμητική Παραγώγιση Άμεση Προσέγγιση της Παραγώγου XII
17 Πηλίκο Ανιούσας Διαφοράς Πηλίκο Κεντρικής Διαφοράς Χρήση Πολυωνύμων Παρεμβολής Παρεμβολή με τα Πολυώνυμα Lagrange Παραγώγιση με τα Πολυώνυμα Newton Προγραμματισμός με το MATLAB Αριθμητική Ολοκλήρωση Ολοκλήρωση με Πολυωνυμική Παρεμβολή Μέθοδοι Newton-Cotes Σύνθετοι Κανόνες Ολοκλήρωσης Προγραμματισμός με το MATLAB Προσαρμοσμένη Ολοκλήρωση Προσαρμοσμένη Ολοκλήρωση του Simpson Προγραμματισμός με το MATLAB Ολοκλήρωση του Romberg Περιγραφή της Μεθόδου Προγραμματισμός με το MATLAB ΕΠΙΛΥΣΗ ΔΙΑΦΟΡΙΚΩΝ ΕΞΙΣΩΣΕΩΝ Το Πρόβλημα των Αρχικών Τιμών Βασικά Σημεία Προσοχής κατά την Αριθμητική Επίλυση Ύπαρξη Μοναδικής Λύσης Επιλογή Μεθόδου Επίλυσης και Σφάλμα Ευστάθεια της Λύσης Μονοβηματικές Μέθοδοι Μέθοδος του Euler Μέθοδοι Runge-Kutta Προγραμματισμός με το MATLAB Πολυβηματικές Μέθοδοι Μέθοδος Adams-Bashforth Μέθοδος Adams-Moulton Μέθοδοι Πρόβλεψης-Διόρθωσης Προγραμματισμός με το MATLAB Το Πρόβλημα των Συνοριακών Τιμών Γραμμική Μέθοδος της Σκόπευσης XIII
18 Μέθοδος των Πεπερασμένων Διαφορών Προγραμματισμός με το MATLAB ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Γενικά Βελτιστοποίηση Χωρίς Περιορισμούς Συναρτήσεις μιας Μεταβλητής Έρευνα Χρυσής Τομής Προγραμματισμός με το MATLAB Συναρτήσεις Πολλών Μεταβλητών Μέθοδος Μεγίστης Ανόδου (ή Καθόδου) Προγραμματισμός με το MATLAB Μέθοδος Newton Προγραμματισμός με το MATLAB Μέθοδοι Συζυγών Διευθύνσεων Μέθοδος Συζυγών Κλίσεων Μέθοδος των Fletcher-Reeves Μέθοδος των Davidon-Fletcher-Powel Προγραμματισμός με το MATLAB Βελτιστοποίηση με Περιορισμούς Θεωρία Lagrange Θεωρία Kuhn-Tucker Προγραμματισμός με το MATLAB ΒΙΒΛΙΟΓΡΑΦΙΚΕΣ ΑΝΑΦΟΡΕΣ Ελληνική Βιβλιογραφία Ξένη Βιβλιογραφία XIV
19 ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 2.1. Κατηγορίες Πολυπλοκότητας Αλγορίθμων XV
20 XVI
21 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 2.1. Ο Αλγόριθμος ΕΥΚΛΕΙΔΗΣ με Διάγραμμα Ροής Σχήμα 5.1. Γραφική Παράσταση Πολυωνύμου Lagrange Σχήμα 5.2. Γραφική Παράσταση Πολυωνύμου Newton Σχήμα 6.1. Κανόνας Τραπεζίου Σχήμα 7.1. Γραφικές Παραστάσεις των για Μεθόδους Euler, Heun και Runge-Kutta 4 ης Τάξης Σχήμα 7.2. Γραφική Παράσταση των Γραφική Μέθοδος της Σκόπευσης Σχήμα 7.3. Γραφική Παράσταση της Μέθοδος Πεπερασμένων Διαφορών Σχήμα 8.1. Παράδειγμα Εφαρμογής Επίλυση με Θεωρία Kuhn-Tucker Σχήμα 8.2. Εκτύπωση Αποτελεσμάτων XVII
22 XVIII
23 1. EΙΣΑΓΩΓΗ Η Αριθμητική Ανάλυση (Numerical Analysis) αποτελεί κλάδο των Εφαρμοσμένων Μαθηματικών (Applied Mathematics), η συστηματική ανάπτυξη του οποίου άρχισε λίγο μετά το Β Παγκόσμιο Πόλεμο. Η κύρια αιτία ανάπτυξης της Αριθμητικής Ανάλυσης ήταν το συμπλήρωμα του τεράστιου κενού, που είχε δημιουργηθεί μεταξύ των Εφαρμοσμένων Επιστημών (π.χ. Φυσική, Αστρονομία, Μετεωρολογία, Μηχανική, κλπ.) και των Θεωρητικών Μαθηματικών (Theoretical Mathematics). Οι Εφαρμοσμένες Επιστήμες βασίζονται στην παρατήρηση των φαινομένων, είτε όπως παρουσιάζονται στη φύση, είτε μετά την εξομοίωσή τους με μορφή πειραμάτων. Τα αποτελέσματα των μελετών ήταν μια σειρά μετρήσεων (αριθμητικών ποσοτήτων) και εν συνεχεία μια αντίστοιχη σειρά λογικών συμπερασμάτων, που δεν είχαν μεγάλη σχέση με τα Θεωρητικά Μαθηματικά, στα οποία οι αντίστοιχοι επιστήμονες αντιμετώπιζαν μοντέλα που συνήθως δεν είχαν καμία σχέση με φυσικά φαινόμενα. Δηλαδή, η μελέτη των θεωρητικών μαθηματικών μοντέλων δεν είχε ως κύριο σκοπό την αντιμετώπιση, ερμηνεία και επίλυση των προβλημάτων που προέκυπταν στις εφαρμογές. Αποτέλεσμα ήταν να εμφανίζονται δυο απομακρυσμένοι επιστημονικοί πόλοι, οι οποίοι συνήθως μελετούσαν διαφορετικά προβλήματα και το βασικότερο είχαν διαφορετικούς στόχους, ενώ θα έπρεπε να συνδέονται μεταξύ τους. Η Αριθμητική Ανάλυση είναι ο επιστημονικός σύνδεσμος μεταξύ των δυο παραπάνω επιστημονικών χώρων που παρέχει μαθηματικές ερμηνείες σε φυσικά προβλήματα, τα οποία είχαν τη μορφή αριθμητικών δεδομένων. Για το σκοπό αυτό, στο χώρο της Αριθμητικής Ανάλυσης αναπτύχθηκαν πάρα πολλές μέθοδοι οι οποίες λέγονται αριθμητικές μέθοδοι (numerical methods) ή αλγόριθμοι (algorithms), που περιέχουν ως πράξεις, τις τέσσερις πράξεις της Αριθμητικής, ενώ έχουν ως βασικό χαρακτηριστικό ότι το πλήθος των πράξεων που περιέχουν είναι πεπερασμένο (finite). Συνεπώς, η Αριθμητική Ανάλυση ασχολείται με τη διακριτοποίηση «συνεχών» προβλημάτων των Μαθηματικών, των οποίων τη λύση χρειάζεται - 1 -
24 να προσεγγίσουμε. Τέτοια προβλήματα είναι, παραδείγματος χάριν, η επίλυση μη γραμμικών εξισώσεων, η προσέγγιση συναρτήσεων, η ολοκλήρωση και η παραγώγιση, η επίλυση διαφορικών και ολοκληρωτικών εξισώσεων και ο προσδιορισμός των ακρότατων μιας συνάρτησης. Η Αριθμητική Ανάλυση συνδέεται με τις έννοιες της αλγοριθμικής, της χρήσης Η/Υ, της προσέγγισης (approximation) και του σφάλματος (error). Οι επιστήμονες δεν γνωρίζουν τις ακριβείς λύσεις (exact solutions) των περισσότερων εξισώσεων, ανισοτήτων, προβλημάτων βελτιστοποίησης, κ.α. που προκύπτουν στα Μαθηματικά, στις Φυσικές Επιστήμες και στην Τεχνολογία. Όταν υπάρχουν τέτοιες λύσεις, εν γένει δεν είναι γνωστές σε κλειστή, αναλυτική μορφή (closed form). Σε μερικές περιπτώσεις έχει αποδειχθεί θεωρητικά ότι οι υπάρχουσες λύσεις δεν μπορούν να υπολογισθούν με ένα πεπερασμένο πλήθος στοιχειωδών πράξεων (π.χ. πολυώνυμα 5 ου και άνω βαθμού). Ως εκ τούτου, μέσω της Αριθμητικής Ανάλυσης, σχεδόν συνώνυμη με τον όρο Υπολογιστικά Μαθηματικά (Computational Mathematics), οι επιστήμονες επιδιώκουν να βρουν προσεγγίσεις των παραπάνω λύσεων με τη βοήθεια Ηλεκτρονικών Υπολογιστών (Η/Υ). Σκοπός της Αριθμητικής Ανάλυσης είναι η επινόηση, η διερεύνηση και η προσαρμογή για τον Η/Υ προσεγγιστικών μεθόδων για την επίλυση των παραπάνω προβλημάτων. Τα διακριτά σχήματα, δηλαδή τις αριθμητικές μεθόδους που προκύπτουν, μας ενδιαφέρει να μελετήσουμε καταρχήν ως προς την ακρίβεια (accuracy) και την ευστάθειά τους (stability), και στη συνέχεια, αφού τις διατυπώσουμε με μορφή αλγορίθμου, δηλαδή ως μια πεπερασμένη, λογικά πλήρη ακολουθία καλώς ορισμένων αριθμητικών πράξεων και λογικών εκφράσεων, να τις υλοποιήσουμε κατά οικονομικό τρόπο μέσω προγραμμάτων στον Η/Υ. Κατά αυτόν τον τρόπο επιτρέπεται η ταχεία λύση των προβλημάτων, τα οποία κάτω από άλλες συνθήκες θα απαιτούσαν αρκετό χρόνο για την επίλυσή τους (π.χ. επίλυση ενός γραμμικού συστήματος 200 εξισώσεων με 200 αγνώστους). Οι λόγοι που επιβάλλουν την παρουσία της Αριθμητικής Ανάλυσης στην επιστημονική έρευνα και στις πρακτικές εφαρμογές συνδέονται με το γεγονός ότι μας παρέχει: - 2 -
25 προσεγγιστικές λύσεις σε προβλήματα, τα οποία δεν επιδέχονται λύση από τα Θεωρητικά Μαθηματικά, τη δυνατότητα χρήσης του Η/Υ, τη δυνατότητα αλλαγής της μορφής ενός προβλήματος σε άλλη, η οποία επιτρέπει την επίλυσή του και τη δυνατότητα εύρεσης της νομοτέλειας της παραγωγής δεδομένων. Συχνά, από μετρήσεις ή αποτελέσματα πειραμάτων παράγονται δεδομένα, τα οποία δεν συνδέονται μεταξύ τους με κάποια γνωστή μαθηματική έκφραση. Αποτελούν διακεκριμένα σημεία, τα οποία όμως δεν επιτρέπουν τη μελέτη της συνεχούς εξέλιξής τους. Με την Αριθμητική Ανάλυση είναι δυνατή η εύρεση κάποιας αποδεκτής μαθηματικής έκφρασης, η οποία περιγράφει ικανοποιητικά τη συνεχή παραγωγή δεδομένων επιτρέποντας εκτιμήσεις για πιθανές τιμές δεδομένων, τα οποία δεν έχουν παραχθεί. Τα προβλήματα Αριθμητικής Ανάλυσης που μελετώνται στο πλαίσιο της διπλωματικής εργασίας είναι η επίλυση γραμμικών συστημάτων, η κατασκευή παρεμβολικών συναρτήσεων και η μελέτη των αντίστοιχων προσεγγιστικών ιδιοτήτων, η προσέγγιση συναρτήσεων, ο υπολογισμός ολοκληρωμάτων, η επίλυση μη γραμμικών αλγεβρικών εξισώσεων και συστημάτων, η επίλυση διαφορικών εξισώσεων και τέλος οι μέθοδοι βελτιστοποίησης. Η υλοποίηση των παραπάνω μεθόδων θα γίνει σε MATLAB, που αποτελεί περιβάλλον αριθμητικής υπολογιστικής και προγραμματιστική γλώσσα τέταρτης γενιάς
26 - 4 -
27 2. ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΝΝΟΙΕΣ 2.1. Αλγοριθμική Η Αριθμητική Ανάλυση είναι άρρηκτα συνδεδεμένη με τη χρήση Η/Υ. Η έννοια του αλγορίθμου είναι βασική για τον προγραμματισμό και τη χρήση του Η/Υ. Αλγόριθμος είναι η ακριβής περιγραφή μιας αυστηρά καθορισμένης σειράς ενεργειών (βημάτων) για τη λύση ενός προβλήματος. Κάθε αλγόριθμος έχει κανένα, ένα ή περισσότερα δεδομένα εισόδου και τουλάχιστον ένα αποτέλεσμα εξόδου. Η έννοια του αλγορίθμου δεν είναι καινούρια. Η προέλευση της λέξης «αλγόριθμος» αποδίδεται στον Πέρση Μαθηματικό Abu Jafar Mohammed ibn Musa al-khowarizmi (825 π.χ.) με αναφορά σε βιβλίο του σχετικό με την Άλγεβρα. Το 250 π.χ. ο Έλληνας Φιλόσοφος Ερατοσθένης έδωσε αλγόριθμο για τη λύση του εξής προβλήματος: «ποιοι είναι οι πρώτοι αριθμοί μεταξύ του 1 και του ακέραιου Ν;». Άλλος, επίσης, γνωστός αλγόριθμος είναι ο αλγόριθμος του Ευκλείδη με τον οποίο αναζητείται η διαδικασία για την εύρεση του μέγιστου κοινού διαιρέτη δυο αριθμών. Η σχέση μεταξύ αλγορίθμων και δομών δεδομένων (data structures) είναι ιδιαίτερα στενή. Έχει γίνει ιστορική η εξίσωση που εισήγαγε πολύ χαρακτηριστικά ο N. Wirth, δημιουργός της γλώσσας PASCAL, στο ομότιτλο βιβλίο του: Οι μεγαλύτερες βελτιώσεις της απόδοσης ενός προγράμματος προκύπτουν από τη χρήση καλύτερων αλγορίθμων και δομών δεδομένων. Τα βασικά χαρακτηριστικά που πρέπει να έχει ένας αλγόριθμος είναι τα εξής: Πεπερασμένος: ένας αλγόριθμος πρέπει να τερματίζει μετά από πεπερασμένο αριθμό βημάτων
28 Καθορισμένος: ένας αλγόριθμος πρέπει να ορίζεται με ακρίβεια και όχι αόριστα. Να έχει είσοδο: δηλαδή τιμές ή ποσότητες ή άλλα δεδομένα να δίνονται στην αρχή πριν την εκκίνηση. Να έχει έξοδο: δηλαδή να καταλήγει σε κάποιο συμπέρασμα. Αποτελεσματικότητα: σημαίνει ότι όλα τα βήματα και οι πράξεις πρέπει να είναι τα απλούστερα δυνατά που μπορούν να γίνουν από έναν άνθρωπο που χρησιμοποιεί μόνο χαρτί και μολύβι Περιγραφή Αλγορίθμων Συνήθως, ο αλγόριθμος διατυπώνεται σε μια γλώσσα, η οποία μπορεί να περιγράφει σειρές βημάτων με τρόπο αυστηρό, μαθηματικά ξεκάθαρο, χωρίς ασάφειες και διφορούμενα. Τέτοιες γλώσσες είναι οι γλώσσες προγραμματισμού (programming languages), με την προϋπόθεση ότι η σημασιολογία τους είναι ορισμένη με αυστηρό τρόπο ή τα μαθηματικά μοντέλα ή κάποια συμβολική γλώσσα που χρησιμοποιεί αυστηρά καθορισμένους κανόνες περιγραφής, ή ακόμα και η προοπτική χρήσης της φυσικής (ομιλούμενης) γλώσσας. Εκτίθεται ως παράδειγμα ο αλγόριθμος του Ευκλείδη, ο οποίος επιτρέπει την εύρεση του μέγιστου κοινού διαιρέτη (ΜΚΔ) δυο θετικών ακεραίων x και y. Ο αλγόριθμος αυτός περιγράφεται σε ομιλούμενη γλώσσα ως εξής: «Διαίρεσε το x με το y, και έστω z το υπόλοιπο. Αν z=0, τότε ο ΜΚΔ είναι ο y. Αν z 0, τότε επανάλαβε το βήμα με τους ακέραιους y και z αντί για x και y». Σε πιο αυστηρή γλώσσα, ο αλγόριθμος μπορεί να εκφραστεί ως εξής: - 6 -
29 Αλγόριθμος ΕΥΚΛΕΙΔΗΣ Δεδομένα //x,y 0: ακέραιοι αριθμοί, z: ακέραια μεταβλητή// Αρχή z=y Όσο z 0 κάνε z=x mod y x=y y=z Τέλος-επανάληψης Τέλος Αποτελέσματα //x,μέγιστος κοινός διαιρέτης// Τέλος ΕΥΚΛΕΙΔΗΣ Παράσταση Αλγορίθμων Για την παράσταση των αλγορίθμων χρησιμοποιούνται πλήθος μεθόδων και διαγραμματικών τεχνικών, όπως η ψευδογλώσσα ή ψευδοκώδικας (pseudocode), τα διαγράμματα ροής ή λογικά διαγράμματα (flow charts), τα διαγράμματα Nassi-Shneiderman (N-S) και τα διαγράμματα HIPO (Hierarchy and Input-Process-Output). Οι διάφορες δομημένες τεχνικές παράστασης των αλγορίθμων δεν παρουσιάζουν τα ίδια πλεονεκτήματα. Πιο κατάλληλες είναι εκείνες οι οποίες είναι σύμφωνες με το πνεύμα του δομημένου προγραμματισμού (structured programming). Οι βασικότεροι στόχοι των δομημένων τεχνικών είναι οι εξής: - 7 -
30 επίτευξη υψηλής ποιότητας προγραμμάτων με προβλεπόμενη συμπεριφορά, δημιουργία προγραμμάτων που τροποποιούνται εύκολα, δημιουργία απλοποιημένων προγραμμάτων από τη φάση ανάπτυξής τους, μείωση κόστους και ελάττωση του χρονικού διαστήματος για την ανάπτυξη ενός προγράμματος. Για να επιτευχθούν οι στόχοι πρέπει να τηρηθούν οι ακόλουθες βασικές αρχές: αρχή της αφαίρεσης (principle of abstraction) αρχή της τυπικότητας (principle of formality) έννοια της διαίρεσης και υποταγής (divide and conquer concept) έννοια της ιεραρχικής ταξινόμησης (hierarchical ordering concept) Αφαίρεση είναι η αντίληψη ή η οπτική γωνία μέσα από την οποία κάτι μπορεί και αντιλαμβάνεται αποχωρισμένο από τις πραγματικές του διαστάσεις. Είναι μια απλοποίηση των γεγονότων έτσι ώστε να περιγράφεται τι έχει γίνει χωρίς να αναφέρεται το πώς έχει γίνει. Η αφαίρεση είναι το καλύτερο εργαλείο για την αντιμετώπιση της πολυπλοκότητας (complexity). Χρησιμοποιώντας την αρχή της αφαίρεσης απεικονίζεται το πρόβλημα σε οριζόντια επίπεδα. Το πιο ψηλό επίπεδο είναι και το πιο αφηρημένο, ενώ το κατώτερο δείχνει λεπτομέρειες της πραγματικότητας. Η λέξη τυπικότητα αναφέρεται στην αυστηρή προσήλωση στους τύπους καθώς και τη μεθοδική προσέγγιση. Η αρχή της τυπικότητας είναι η βάση για να αποσπασθεί ο προγραμματισμός από το πλαίσιο της εμπειρικής τέχνης και να οδηγηθεί στην επιστημονική πειθαρχία. Η αρχή της διαίρεσης έχει την έννοια της διάσπασης των προβλημάτων υποδιαιρώντας αυτά σε ένα σύνολο από μικρότερα και ανεξάρτητα μεταξύ τους, που είναι ευκολότερο να κατανοηθούν και να επιλυθούν το καθένα ξεχωριστά. Αποτελεί αποτελεσματικό εργαλείο για να αντιμετωπίζεται η πολυπλοκότητα που υπάρχει σε πολλά προβλήματα. Όταν η αρχή της διαίρεσης εφαρμόζεται σε έναν πρόβλημα (πρόγραμμα) σημαίνει τη διαίρεσή - 8 -
31 του σε ανεξάρτητα μέρη για την καλύτερη διαχείρισή τους. Το πρόγραμμα τότε καλείται αρθρωτό ή τμηματικό (modular/ modular programming). Η έννοια της ιεραρχικής τάξης είναι στενά συνδεδεμένη με αυτή της διαίρεσης και υποταγής. Το επόμενο βήμα μετά την υποδιαίρεση ενός προγράμματος σε ενότητες είναι η τακτοποίησή τους σύμφωνα με ιεραρχική δομή τύπου δένδρου για την καλύτερη κατανόηση. Η κατανόηση του προγράμματος χτίζεται από το πιο αφηρημένο επίπεδο στο πιο ειδικό συγκεντρώνοντας τις περισσότερες λεπτομέρειες στα κατώτερα επίπεδα. Βασίζεται στη λογική της μέθοδου top-down, που αποτελεί μέθοδο σχεδιασμού, κωδικοποίησης και ελέγχου προγραμμάτων σε διαδοχικά βήματα. Η μέθοδος καλείται και ιεραρχικός προγραμματισμός (hierarchical programming). Η έννοια του δομημένου προγραμματισμού αποτελεί «μεθοδολογία» τρόπου ανάπτυξης προγραμμάτων, που υπακούει σε σύνολο αυστηρών κανόνων και προδιαγραφών, οι οποίοι πρέπει να περιέχουν τις τέσσερις βασικές αρχές που αναλύθηκαν (αφαίρεση, τυπικότητα, διαίρεση και υποταγή, ιεραρχική ταξινόμηση). Οι τεχνικές του ιεραρχικού προγραμματισμού και του αρθρωτού προγραμματισμού περιέχονται σε ένα δομημένο πρόγραμμα Δομές Ελέγχου Αποδεικνύεται πως μεγάλη κατηγορία προγραμμάτων μπορεί να περιγραφεί από τρεις βασικές δομές ελέγχου (control structures): Ακολουθία από απλές εντολές διαδοχικά εκτελούμενες (sequence) Για παράδειγμα: θέσε 5 στο x θέσε 20 στο y διαίρεσε το y δια του x το οποίο σημαίνει ότι διαιρείται το 20 δια του 5-9 -
32 Σχήματα λογικών υποθέσεων (αν τότε αλλιώς - if then else ) Για παράδειγμα: Αν (συνθήκη) τότε (διαδικασία 1) αλλιώς (διαδικασία 2) Τέλος-αν το οποίο σημαίνει ότι αν ισχύει η συνθήκη, τότε εκτελείται η διαδικασία 1, ενώ αν δεν ισχύει, τότε εκτελείται η διαδικασία 2. Σχήματα επαναλήψεων ή ανακυκλώσεων ή βρόχων (while-do) Για παράδειγμα: Όσο (συνθήκη) κάνε Διαδικασία Τέλος-επανάληψης το οποίο σημαίνει ότι όσο επαναλαμβάνεται. ισχύει η συνθήκη η διαδικασία Οι δομές αυτές συνδέονται άμεσα με την έννοια του δομημένου προγραμματισμού. Οι δομημένες διαγραμματικές τεχνικές απεικονίζουν τις τρεις βασικές δομές ελέγχου και δίνουν κανόνες κατασκευής προγραμμάτων, αποτελούμενων αποκλειστικά από τις δομές αυτές Διαγράμματα Ροής Τα διαγράμματα ροής δεν εντάσσονται στις δομημένες τεχνικές και έχουν πρακτικά εγκαταλειφθεί. Ωστόσο, έχουν αρκετή ιστορία και παλαιότερα ήταν το μόνο μέσο παρουσίασης της λογικής του προγράμματος. Σήμερα, με την εφαρμογή των δομημένων τεχνικών η χρήση τους είναι εξειδικευμένη στη σχηματική παράσταση συγκεκριμένων εργασιών και όχι της συνολικής
33 λύσεως. Τα διαγράμματα ροής χρησιμοποιούν γεωμετρικά σχήματα για να καθορίσουν τα βήματα επεξεργασίας καθώς και τα διάφορα μέσα που χρησιμοποιούνται. Στο σχήμα 2.1 εκτίθεται το διάγραμμα ροής του αλγορίθμου ΕΥΚΛΕΙΔΗΣ. Σχήμα 2.1. Ο Αλγόριθμος ΕΥΚΛΕΙΔΗΣ με Διάγραμμα Ροής Ψευδοκώδικας Με τον ψευδοκώδικα τα βήματα της λύσης περιγράφονται με σύντομες και περιεκτικές προτάσεις. Οι προτάσεις έχουν τον επιπλέον περιορισμό ότι πρέπει να υπακούουν σε τυποποίηση που πλησιάζει την τυποποίηση μιας γλώσσας υψηλού επιπέδου, δηλαδή όχι μία αμιγής παράθεση κωδικοποιημένων εντολών, αλλά μία μίξη με λεκτικά σχήματα. Το αποτέλεσμα είναι η τυποποιημένη καταγραφή της λογικής που λύνει το πρόβλημα. Πρόκειται για την πιο αποτελεσματική δομημένη τεχνική παράστασης αλγορίθμων. Στον ψευδοκώδικα, εκτός από τα στοιχεία που χρησιμοποιήθηκαν στον αλγόριθμο ΕΥΚΛΕΙΔΗΣ, χρησιμοποιούνται και τα ακόλουθα:
34 Λογικές μεταβλητές και σταθερές (Boolean) οι οποίες λαμβάνουν τις τιμές «αλήθεια» (true) και «ψεύδος» (false) ή ισοδύναμα σωστό και λάθος. Τελεστές o πράξεων: +, -, *, /, o συγκριτικοί:, <, =,, >, o λογικοί: και and (σύζευξη), ή or (διάζευξη), όχι not (άρνηση) Σχήματα λογικών υποθέσεων των ακόλουθων μορφών: Αν (συνθήκη) τότε (διαδικασία) το οποίο σημαίνει ότι, αν ισχύει η συνθήκη, τότε μόνο εκτελείται η διαδικασία. Αν (συνθήκη) τότε (διαδικασία 1) Τέλος-αν αλλιώς (διαδικασία 2) το οποίο σημαίνει ότι, αν ισχύει η συνθήκη, τότε εκτελείται η διαδικασία 1 και αγνοείται η διαδικασία 2, αλλιώς αγνοείται η διαδικασία 1 και εκτελείται η διαδικασία
35 Αν (συνθήκη 1) ή (συνθήκη 2) τότε (διαδικασία 1) αλλιώς αν (συνθήκη 3) και όχι (συνθήκη 4) τότε (διαδικασία 2) αλλιώς (διαδικασία 3) Τέλος-αν (σύνθετες εμφωλευμένες λογικές υποθέσεις) το οποίο σημαίνει ότι αν ισχύει μία από τις συνθήκες 1 ή 2 τότε εκτελείται η διαδικασία 1 και αγνοούνται όλα τα άλλα. Αν δεν ισχύουν ταυτόχρονα οι συνθήκες 1,2 και 4, αλλά ισχύει η συνθήκη 3, τότε εκτελείται η διαδικασία 2 και αγνοούνται όλα τα υπόλοιπα. Αν οι δυο προηγούμενες περιπτώσεις δεν ισχύουν, τότε εκτελείται η διαδικασία 3 και αγνοούνται όλα τα υπόλοιπα. Επαναληπτικό σχήμα με έλεγχο επανάληψης στο τέλος της διαδικασίας (ένα επαναληπτικό βήμα συνεχίζεται εφόσον δεν είναι αληθής κάποια συνθήκη) Κάνε Διαδικασία Μέχρις ότου (συνθήκη) το οποίο σημαίνει ότι η διαδικασία επαναλαμβάνεται μέχρις ότου η συνθήκη γίνει αληθής (ισχύσει), οπότε σταματά η εκτέλεση της διαδικασίας και ολοκληρώνεται το βήμα με το επαναληπτικό σχήμα. Επαναληπτικό σχήμα κατά το οποίο η έξοδος γίνεται από το σώμα της διαδικασίας με προστακτική εντολή (μέσα στο επαναληπτικό βήμα υπάρχει εντολή εξόδου από αυτό εφόσον ισχύσει κάποια συνθήκη) Κάνε Αν (συνθήκη) τότε έξοδος Τέλος-επανάληψης
36 Επαναληπτικό σχήμα ορισμένων αριθμών επανάληψης (είναι γνωστός ο αριθμός επαναλήψεων του επαναληπτικού βήματος) Για μεταβλητή = τιμή-α μέχρι τιμή-ω με βήμα β κάνε διαδικασία Τέλος-επανάληψης το οποίο σημαίνει ότι η διαδικασία επαναλαμβάνεται διαδοχικά για όλες τις τιμές που μπορεί να πάρει η μεταβλητή από τιμή-α μέχρι τιμήω με βήμα β, δηλαδή για τις τιμές τιμή-α, τιμή-α+β, τιμή-α+2β, τιμήα+3β,,τιμή-ω. Αν το βήμα β είναι ίσο με 1, τότε μπορεί να παραλειφθεί. Σχήμα πολλαπλής επιλογής (select case) Επέλεξε (έκφραση) Περίπτωση 1: διαδικασία 1 Περίπτωση 2: διαδικασία 2 Περίπτωση ν: διαδικασία ν Αλλιώς διαδικασία ν+1 Τέλος-επιλογών στο σχήμα αυτό η έκφραση δίδει ως αποτέλεσμα κάποια τιμή. Η τιμή αυτή εντάσσεται σε κάποια περίπτωση και εκτελείται η αντίστοιχη διαδικασία. Ρήματα της ελληνικής γλώσσας σε προστακτική (π.χ. «Διάβασε», «Γράψε», «Θέσε», «Επαναλάμβανε», «Εκτέλεσε», κλπ.) Ουσιαστικά: σε ορισμένες περιπτώσεις όταν οι ζητούμενες ενέργειες είναι πολλές ή προφανείς, καθορίζονται με τη χρήση ουσιαστικών αντί
37 ρημάτων (π.χ. εισαγωγή δεδομένων, εμφάνιση πεδίων στην οθόνη, κ.ά.) Σχόλια: προκειμένου να διαχωρίζονται οι επεξηγηματικές φράσεις από τις λέξεις-κλειδιά του αλγορίθμου, στις πρώτες προτάσσεται το σύμβολο Διαχωριστικό εντολών: αν γραφούν περισσότερες από μια εντολές στην ίδια γραμμή, τότε χρησιμοποιείται ως διαχωριστικό αυτών ο χαρακτήρας «:» Θεωρία Αλγορίθμων Το ενδιαφέρον των μαθηματικών για την έννοια του αλγόριθμου χρονολογείται αρκετά πριν από τον πρώτο ηλεκτρονικό υπολογιστή. Στην πρώτη δεκαετία του περασμένου αιώνα κορυφαίοι μαθηματικοί και φιλόσοφοι, όπως ο D. Hilbert και o Β. Russel αναρωτιόνταν, αν μπορεί να υπάρξει αλγόριθμος που να αποκαλύπτει τη μαθηματική αλήθεια. Δηλαδή, να αποδεικνύει θεωρήματα και να διαψεύδει λανθασμένες προτάσεις. Η αρνητική απάντηση στο ερώτημα από τους A. Turing και K.Godel το 1936 έθεσε τα θεμέλια της θεωρίας των αλγορίθμων και οδήγησε στον ορισμό διαφόρων μαθηματικών μοντέλων. Υπάρχουν τρεις γενικές περιπτώσεις προβλημάτων που μπορούν ή όχι να επιλυθούν, δηλαδή να υπάρχει ή να μην υπάρχει ο κατάλληλος αλγόριθμος: Κανονικά προβλήματα: όταν υπάρχει ένας ικανός αλγόριθμος που να επιλύει το πρόβλημα. Άλυτα προβλήματα: όταν έχει αποδειχθεί ότι δεν υπάρχει ικανός αλγόριθμος για το πρόβλημα. Ανοικτά προβλήματα: όταν δεν έχει αποδειχθεί η μη ύπαρξη αλγορίθμου για τη λύση του προβλήματος, αλλά ούτε έχει βρεθεί μέχρι σήμερα κάτι σχετικό που να επιλύει το πρόβλημα
38 Σήμερα τα άλυτα προβλήματα είναι ελάχιστα, αλλά τα ανοικτά ξεπερνούν τα Ανάλυση Αλγορίθμων Στην περίπτωση των κανονικών προβλημάτων θα υπάρχει πάντα ένας τουλάχιστον αλγόριθμος για κάθε πρόβλημα. Ένας τέτοιος αλγόριθμος δεν λύνει μόνο μια συγκεκριμένη περίπτωση, αλλά όλες τις δυνατές παρόμοιες περιπτώσεις, καθώς ένα πρόβλημα είναι ένα σύνολο από παραπλήσιες ερωτήσεις με δεδομένα τα οποία διαφέρουν ποσοτικά από ερώτηση σε ερώτηση. Κάθε ερώτηση λέγεται στιγμιότυπο (instance) του προβλήματος. Συνήθως, για να επιβεβαιωθεί ότι ένας αλγόριθμος πραγματικά λύνει ένα καλώς διατυπωμένο μαθηματικό πρόβλημα, πρέπει να μπορεί να αποδειχθεί αυστηρά η ορθότητά του. Όταν επιλύεται ένα πρόβλημα με αλγοριθμικό τρόπο, το ενδιαφέρον επικεντρώνεται στο πόσο αποδοτικός είναι ο αλγόριθμος. Συνήθως, μεγάλη σημασία έχει το πόσα βήματα κάνει ο αλγόριθμος για να λύσει το πρόβλημα και πόση μνήμη χρησιμοποιεί. Οι περισσότεροι αλγόριθμοι έχουν πολυπλοκότητα χρόνου που ανήκει σε μια από τις επόμενες κατηγορίες: Πολυπλοκότητα Χαρακτηρισμός Περιγραφή Ο(1) Σταθερή Κάθε βήμα εκτελείται μια φορά ή το πολύ μερικές φορές O(logn) Λογαριθμική Αν δεν σημειώνεται αλλιώς, οι λογάριθμοι είναι δυαδικοί O(n) Γραμμική Ο(nlogn) Δεν υπάρχει επιθετικός προσδιορισμός Ο(n 2 ) Τετραγωνική Πρέπει να χρησιμοποιείται μόνο για προβλήματα μικρού μεγέθους Ο(n 3 ) Κυβική Μικρού μεγέθους προβλήματα Ο(2 n ) Εκθετική Χρησιμοποιείται σπάνια στην πράξη Πίνακας 2.1. Κατηγορίες Πολυπλοκότητας Αλγορίθμων
39 Με n συμβολίζεται το μέγεθος του προβλήματος και εξαρτάται από το πρόβλημα. Για παράδειγμα, αν ζητείται να ταξινομηθούν k αριθμοί, τότε n=k. Η συνάρτηση Ο χρησιμοποιείται τόσο ως συνάρτηση υπολογιστικού χρόνου (υπολογιστικών βημάτων), όσο και ως συνάρτηση μνήμης (χώρου). Η συνάρτηση Ο έχει τις ακόλουθες ιδιότητες: Η συνάρτηση Ο είναι πολυωνυμική, αν είναι έκφραση πολυωνύμου ως προς n, αλλιώς αποκαλείται μη-πολυωνυμική, αν περιέχει όρους όπως 2 n,e m,n!, κλπ. Ένας αλγόριθμος λέγεται ότι συγκλίνει (converges), όταν μπορεί να βρει τη λύση του αντίστοιχου προβλήματος. Τρία είναι τα βασικά ερωτήματα τα οποία θέτει η σύγκλιση του αλγορίθμου: Κριτήρια σύγκλισης: είναι πιθανό κάποιος αλγόριθμος να επιλύει το αντίστοιχο πρόβλημα κάτω από κάποιες προϋποθέσεις. Άλλοι αλγόριθμοι συγκλίνουν πάντοτε και άλλοι έχουν κριτήρια σύγκλισης (προϋποθέσεις). Σταθερότητα σύγκλισης: ορισμένες φορές, μικρές ποσοτικές διακυμάνσεις των δεδομένων εισόδου του αλγορίθμου μπορεί να προκαλέσουν μεγάλες μεταβολές στις λύσεις του προβλήματος. Αυτό παρουσιάζει ιδιαίτερη σημασία σε σχέση με τη θεώρηση του σφάλματος υπολογισμού. Άλλοι αλγόριθμοι επηρεάζονται ελάχιστα από την ύπαρξη του σφάλματος υπολογισμών και άλλοι πολύ. Ταχύτητα σύγκλισης: συνδέεται με την πολυπλοκότητα του αλγορίθμου. Οι σύγχρονοι Η/Υ διαθέτουν ισχυρή υπολογιστική ικανότητα και μεγάλες μνήμες και ως εκ τούτου η μελέτη της πολυπλοκότητας ενός αλγορίθμου (εύρεση του βέλτιστου αλγορίθμου) αφορά ουσιαστικά αλγορίθμους προβλημάτων με ιδιαίτερα μεγάλο αριθμό επαναλήψεων και δεδομένων εισόδου
40 Είδη Αλγορίθμων Ένας αλγόριθμος όταν εντοπίζει τη βέλτιστη λύση για κάθε στιγμιότυπο του προβλήματος ονομάζεται άριστος ή βέλτιστος αλγόριθμος (optimal algorithm). Αντίθετα, όταν η λύση ενός προβλήματος είναι πολύ δύσκολη και η εύρεση του άριστου αλγορίθμου ιδιαίτερα πολύπλοκη αν όχι αδύνατη, σχηματίζονται αλγόριθμοι που προσεγγίζουν την άριστη λύση του προβλήματος για κάθε στιγμιότυπο, οι οποίοι ονομάζονται προσεγγιστικοί ή ευριστικοί αλγόριθμοι (approximation or heuristic algorithm). Πολλές επιστημονικές εφαρμογές στηρίζονται σε συναρτήσεις ή σχέσεις γενικότερα που χρησιμοποιούν τις ίδιες στον ορισμό τους. Οι συναρτήσεις ή σχέσεις ονομάζονται αναδρομικές (recursive) και οι αντίστοιχοι αλγόριθμοι αναδρομικοί. Οι αναδρομικοί ορισμοί έχουν δυο συστατικά μέρη: μια αναδρομική σχέση και μια βάση (π.χ. ν! και 0!=1). Χωρίς τη βάση του αναδρομικού ορισμού θα υπήρχε ένας κυκλικός ορισμός και η αναδρομική σχέση θα ήταν εντελώς ανούσια, αφού δεν θα υπήρχε τρόπος να ολοκληρωθεί δίνοντας ως έξοδο συγκεκριμένη τιμή. Ο ορισμός του αλγόριθμου που δόθηκε συμφωνεί με τη φιλοσοφία των περισσότερων Η/Υ σήμερα, όπου έχοντας μια Κεντρική Μονάδα Επεξεργασίας (CPU) οι εντολές εκτελούνται με σειρά, η μια μετά την άλλη. Ωστόσο, η ύπαρξη προβλημάτων με πάρα πολύ μεγάλο απαιτούμενο χρόνο υπολογισμού της λύσης, δημιούργησε την ανάγκη εύρεσης αλγορίθμων, όπου ορισμένα ή μια σειρά από βήματα θα μπορούσαν να εκτελούνται παράλληλα, χωρίς η εκτέλεση του ενός βήματος να εξαρτάται από την εκτέλεση του άλλου. Αλγόριθμοι αυτής της μορφής ονομάζονται παράλληλοι (parallel algorithms) και δεν μπορούν να υλοποιηθούν χωρίς την ύπαρξη πολλαπλών CPU στο σύστημα Η/Υ (multiprocessing systems). Τέλος, ανάλογα με την περιοχή προβλημάτων όπου έχουν ισχύ οι αλγόριθμοι, παίρνουν και την ονομασία τους. Επομένως, υπάρχουν αλγόριθμοι αριθμητικοί (numerical algorithms) αν έχουν ισχύ σε προβλήματα αριθμητικής ανάλυσης, συνδυαστικοί (combine algorithms) αν έχουν ισχύ σε
41 προβλήματα συνδυαστικής και στοχαστικοί (stochastic algorithms) αν έχουν ισχύ σε προβλήματα θεωρίας ουρών Προγραμματισμός Προγραμματισμός είναι η μέθοδος με την οποία κάθε χρήστης υπολογιστών, καθοδηγεί έναν υπολογιστή στην επίλυση προβλημάτων. Ένα πρόγραμμα αποτελεί μια λίστα από οδηγίες αναγκαίες για τον υπολογιστή προκειμένου να περατώσει μία εργασία. Οι συγκεκριμένες οδηγίες είναι μία ακολουθία εντολών γραμμένες σε κάποια γλώσσα προγραμματισμού. Τα προγράμματα εισάγονται στη μνήμη του υπολογιστή και εκτελούνται ή «τρέχουν» δίνοντας αποτελέσματα τα οποία είναι, συνήθως, λύση σε κάποιο πρόβλημα. Χωρίς το κατάλληλο πρόγραμμα ο υπολογιστής είναι αδύνατο να παράγει χρήσιμο έργο. Τα βήματα του προγραμματισμού είναι τα εξής: Μαθηματική διατύπωση και ανάλυση του προβλήματος. Δημιουργία του αλγορίθμου. Σχηματική παρουσία του αλγορίθμου. Μεταφορά της διαδικασίας του αλγορίθμου στη γλώσσα προγραμματισμού. Εκτέλεση του προγράμματος στον υπολογιστή. Έλεγχος αποτελεσμάτων. Διόρθωση σφαλμάτων Μαθηματική Ανάλυση του Προβλήματος Προκειμένου να επιλυθεί οποιοδήποτε πρόβλημα, όσο σύνθετο και αν είναι, πρέπει πρώτα να ληφθούν υπόψη τα δεδομένα, στη συνέχεια να σχηματιστούν οι εξισώσεις που πρέπει να χρησιμοποιηθούν και να εφαρμοστούν όλες οι
42 αριθμητικές διαδικασίες, αποτελέσματα. ώστε να ακολουθήσουν χωρίς εμπλοκή τα Δημιουργία του Αλγορίθμου Η δημιουργία του αλγορίθμου ασχολείται με τους τρόπους προσέγγισης ενός προβλήματος για τη λύση του με Η/Υ. Κατά τη φάση αυτή δημιουργείται ο ψευδοκώδικας για το προς επίλυση πρόβλημα. Αξίζει να επισημανθεί πως η Αλγοριθμική είναι το κλειδί του καλού προγραμματισμού ανεξάρτητα από τη χρησιμοποιούμενη γλώσσα Σχηματική Παρουσίαση του Αλγορίθμου Ένας τρόπος παράστασης του αλγορίθμου, είναι η μέθοδος της σχηματικής του παρουσίασης με τη βοήθεια του λογικού διαγράμματος. Η μέθοδος παρουσιάζει, με τη χρήση διαφόρων σχημάτων, τη λογική σειρά που πρέπει να ακολουθηθεί για την επίλυση του προβλήματος Μεταφορά της Διαδικασίας του Αλγορίθμου στη Γλώσσα Προγραμματισμού Μετά την οριστική διατύπωση του αλγορίθμου, ακολουθεί το στάδιο της μεταφοράς του σε μια συγκεκριμένη γλώσσα προγραμματισμού. Για να επιτευχθεί σωστά η μεταφορά, είναι απαραίτητο να υπάρχει καλή γνώση της γλώσσας που πρόκειται να χρησιμοποιηθεί, τηρώντας αυστηρά όλους τους κανόνες που τη διέπουν. Το παραμικρό λάθος στο στάδιο αυτό, αποκλείει εντελώς την εκτέλεση του προγράμματος από τον υπολογιστή
43 Εκτέλεση του Προγράμματος στον Υπολογιστή Το πρόγραμμα στη γλώσσα προγραμματισμού που επιλέχθηκε, ονομάζεται πηγαίο ή αρχικό πρόγραμμα (source program) και δεν μπορεί να γίνει αμέσως κατανοητό από τον υπολογιστή. Ο Η/Υ αντιλαμβάνεται μόνο τη γλώσσα μηχανής (machine language), στην οποία μετατρέπεται μέσω ενός ειδικού προγράμματος, που ονομάζεται μεταφραστής ή μεταγλωττιστής (compiler). Το πηγαίο πρόγραμμα μετατρέπεται σε αντικειμενικό ή τελικό πρόγραμμα (object program), εφόσον το πηγαίο πρόγραμμα είναι απαλλαγμένο από συντακτικά λάθη. Πρέπει να σημειωθεί ότι κατά το τρέξιμο ενός προγράμματος ο υπολογιστής είναι αδύνατο να εντοπίσει λάθη που αναφέρονται στη λογική του προγράμματος. Ο υπολογιστής μπορεί να εντοπίσει μόνο συντακτικά λάθη και άρα τα λογικά λάθη επαφίενται για αναγνώριση μόνο στον προγραμματιστή. Συνεπώς, αν όλα αυτά τηρηθούν το στάδιο τελειώνει με την εκτύπωση των αποτελεσμάτων του προβλήματος Έλεγχος των Αποτελεσμάτων Λόγω του ότι τα λογικά λάθη ενός προγράμματος δεν μπορεί να τα εντοπίσει ο υπολογιστής, ο προγραμματιστής υποχρεούται, δεδομένου ότι ο υπολογιστής θα εξάγει κάποια λανθασμένα αποτελέσματα, να ελέγξει εκ νέου το πηγαίο πρόγραμμα. Το σημαντικότερο σημείο για το σωστό προγραμματισμό με τη χρήση υπολογιστή είναι η σωστή δημιουργία του λογικού διαγράμματος και κατά συνέπεια του σχετικού αλγορίθμου που αναφέρεται το συγκεκριμένο πρόβλημα Ταξινόμηση Γλωσσών Προγραμματισμού Οι εκατοντάδες γλώσσες προγραμματισμού που έχουν αναπτυχθεί μέχρι σήμερα αντιπροσωπεύουν διάφορες προγραμματιστικές ιδέες, κάθε μία εκ των
44 οποίων είναι συνήθως καλύτερα προσαρμοσμένη σε ορισμένες κατηγορίες προβλημάτων. Οι σημαντικότερες κατηγορίες γλωσσών προγραμματισμού θα μπορούσαν να ταξινομηθούν με βάση τις ιδέες πάνω στις οποίες βασίζονται και την περιοχή χρησιμοποίησής τους. Βάσει των ιδεών, οι γλώσσες προγραμματισμού διακρίνονται σε: Διαδικαστικές ή αλγοριθμικές γλώσσες προγραμματισμού (Procedural or algorithmic oriented languages): FORTRAN, COBOL, BASIC, PASCAL, C, κλπ. Αντικειμενοστρεφείς γλώσσες προγραμματισμού (Object oriented languages): Visual Basic, C++, Java Συναρτησιακές γλώσσες προγραμματισμού (Functional languages): LISP (pure LISP), HOPE, FP, κλπ. Μη διαδικαστικές γλώσσες προγραμματισμού (Non procedural languages): PROLOG Σύμφωνα με την περιοχή χρησιμοποίησής τους, οι γλώσσες προγραμματισμού κατηγοριοποιούνται σε: Γλώσσες επιστημονικής κατεύθυνσης (Science oriented languages): FORTRAN, Q-BASIC, APL, κλπ. Γλώσσες εμπορικής κατεύθυνσης (Business oriented languages): COBOL, RPG, MUMPS, κλπ. Γλώσσες προγραμματισμού συστημάτων (System programming languages): BCPL, BLISS, C Γλώσσες τεχνητής νοημοσύνης (Artificial intelligence languages): LISP, PROLOG Γλώσσες ειδικής χρήσης (τομείς προβλημάτων): o Γραφικά με υπολογιστές o Έλεγχος μηχανικών εργαλείων Ρομποτική: APT, FORTH o Σχεδίαση ολοκληρωμένων κυκλωμάτων VLSI o Χειρισμός κειμένων: SNOBOL, AWK o Συμβολικά μαθηματικά: SMP, MACSYMA o Αυτόματη δημιουργία μεταγλωττιστών: YACC
45 o Συστήματα διοίκησης βάσεων δεδομένων: DDL, DML, SQL o Εκπαίδευση μέσω υπολογιστή: TUTOR Προγραμματισμός με το MATLAB To MATLAB που έχει αναπτυχθεί από την εταιρία MathWorks Inc., αποτελεί ένα από τα πλέον σύγχρονα λογισμικά ανάπτυξης μιας πληθώρας εφαρμογών από αριθμητική ανάλυση μέχρι αεροναυπηγική. Η ονομασία του προέρχεται από τις λέξεις MAtrix LABoratory, καθώς είχε αρχικά δημιουργηθεί ως ένα λογισμικό γραμμικής άλγεβρας για υπολογισμούς με πίνακες. Με το πέρασμα των χρόνων το MATLAB εξελίχθηκε σε διαδραστικό λογισμικό το οποίο ενσωματώνει σε ένα εύχρηστο και λειτουργικό περιβάλλον μαθηματικούς υπολογισμούς, οπτικοποίηση και προγραμματισμό. Οι εργαλειοθήκες που διαθέτει το MATLAB, οι οποίες αποτελούνται από συναρτήσεις του MATLAB (.m files), καλύπτουν ένα ευρύ φάσμα επιστημονικών πεδίων (αριθμητική ανάλυση, γραμμική άλγεβρα, επίλυση διαφορικών εξισώσεων, βελτιστοποίηση, προσομοίωση, κλπ.). Οι δυνατότητες του MATLAB μπορούν να επεκταθούν καθώς δίνεται η δυνατότητα στο χρήστη, χρησιμοποιώντας τη γλώσσα προγραμματισμού του MATLAB, να δημιουργεί τα δικά του προγράμματα. Για τους παραπάνω λόγους το MATLAB έχει επιλεγεί για την ανάπτυξη των προγραμμάτων που αφορούν τις αριθμητικές μεθόδους και τις μεθόδους βελτιστοποίησης, οι οποίες αποτελούν αντικείμενο μελέτης της παρούσας εργασίας Ανάλυση Σφαλμάτων Η εφαρμογή αριθμητικών μεθόδων για τη λύση προβλημάτων είναι συνυφασμένη με την έννοια του σφάλματος. Στην πραγματικότητα οι παρεχόμενες λύσεις από την εφαρμογή αυτών των μεθόδων πλησιάζουν
46 περισσότερο ή λιγότερο καλά τις πραγματικές λύσεις των προβλημάτων. Η απόκλιση της παρεχόμενης αριθμητικής λύσης από την πραγματική καλείται σφάλμα Πηγές Σφαλμάτων Τα παραγόμενα σφάλματα κατά την εφαρμογή των αριθμητικών μεθόδων επίλυσης των προβλημάτων έχουν τη ρίζα τους σε μια σειρά από παράγοντες, οι βασικότεροι εκ των οποίων εκτίθενται στη συνέχεια Διακεκριμενοποίηση του Προβλήματος Με τον όρο διακεκριμενοποίηση (discretisation) του προβλήματος νοείται η μεταβολή του προβλήματος κατά τέτοιο τρόπο, ώστε να επιλύεται με την εφαρμογή μόνο των τεσσάρων κλασσικών αριθμητικών πράξεων (πρόσθεση, αφαίρεση, πολλαπλασιασμός, διαίρεση). Ορισμένα προβλήματα είναι από τη φύση τους διακεκριμένα (βασίζονται στις τέσσερις πράξεις), όπως π.χ.: Άλλα όμως προβλήματα είναι από τη φύση τους συνεχή (continuous), όπως π.χ. ο υπολογισμός των ακόλουθων παραστάσεων: Η Αριθμητική Ανάλυση προσφέρει μεθόδους μετατροπής του συνεχούς προβλήματος σε διακεκριμένο. Η μετατροπή είναι προσεγγιστική, με αποτέλεσμα να δημιουργείται κάποιο σφάλμα μικρό (αμελητέο) ή μεγάλο (απαράδεκτο)
47 Αποκοπή και Στρογγυλοποίηση Συχνά σε κάποιο διακεκριμένο πρόβλημα, είτε περιέχονται δεδομένα με άπειρα δεκαδικά ψηφία (π.χ. οι αριθμοί π ή e), είτε παράγονται ως αποτελέσματα πράξεων αριθμοί με άπειρα δεκαδικά ψηφία (π.χ. 20/3= ). Το τελικό αποτέλεσμα της αριθμητικής λύσης του προβλήματος αποτελεί προσέγγιση της πραγματικής λύσης, δεδομένου ότι οι αριθμοί με τα άπειρα δεκαδικά ψηφία θα πρέπει να προσεγγιστούν από συγκεκριμένες αριθμητικές τιμές (π.χ. π=3.14). Συνεπώς, εμφανίζεται κάποιο σφάλμα υπολογισμού. Στην περίπτωση αποκοπής αριθμού δεκαδικών ψηφίων (π.χ. αντί του αριθμού γράφεται ) εμφανίζεται το σφάλμα αποκοπής (truncation error). Πρόκειται για σφάλμα το οποίο εμφανίζεται συνήθως από την προσέγγιση της πραγματικής τιμής μίας συγκλίνουσας απειροσειράς από μερικό άθροισμα. Όταν η συνάρτηση f(x) αναπτύσσεται σε σειρά MacLaurin: στην οποία λαμβάνονται, κατά τον υπολογισμό, υπόψη οι Ν πρώτοι όροι του αθροίσματος, παρουσιάζει σφάλμα αποκοπής (κατά Lagrange): Όταν όμως η συνάρτηση f(x) αναπτύσσεται σε σειρά Taylor: στην οποία λαμβάνονται, κατά τον υπολογισμό, υπόψη οι Ν πρώτοι όροι του αθροίσματος, τότε παρουσιάζει σφάλμα αποκοπής (κατά Lagrange):
48 Αν υποτεθεί ότι ένας αριθμός αποτελείται από μ δεκαδικά ψηφία και παριστάνεται με κ δεκαδικά ψηφία (κ<μ), τότε στην περίπτωση της αποκοπής μ-κ ψηφίων, το μέγιστο σφάλμα το οποίο δημιουργείται είναι: Στην περίπτωση στρογγυλοποίησης αριθμού (π.χ. αντί του γράφεται 2.345) εμφανίζεται το σφάλμα στρογγυλοποίησης (roundoff error). Πρόκειται για σφάλμα το οποίο παράγεται συνήθως από τη λειτουργία του Η/Υ. Αν θεωρηθεί ότι ένας αριθμός αποτελείται από μ δεκαδικά ψηφία και παριστάνεται με κ δεκαδικά ψηφία (κ<μ), τότε στην περίπτωση της στρογγυλοποίησης του (μ-κ)-οστού δεκαδικού ψηφίου το μέγιστο σφάλμα το οποίο δημιουργείται είναι: Δεδομένα Εισόδου Περιέχοντα Σφάλμα Ορισμένες φορές τα δεδομένα εισόδου, σε κάποιον αριθμητικό αλγόριθμο, αποτελούν αποτελέσματα μετρήσεων, εκτιμήσεων, τα οποία περιέχουν πιθανό σφάλμα. Για παράδειγμα, το ίδιο μέγεθος μετρούμενο από διαφορετικά άτομα μπορεί να δώσει διαφορετικές τιμές (υποκειμενικό σφάλμα). Το σφάλμα των δεδομένων εισόδου προκαλεί με τη σειρά του σφάλμα στην τελική λύση Η Λειτουργία του Η/Υ Οι αριθμητικές μέθοδοι επίλυσης των προβλημάτων εφαρμόζονται με τη βοήθεια του Η/Υ. Συνεπώς, στα προαναφερόμενα σφάλματα υπολογισμού θα πρέπει να προστεθούν και εκείνα τα οποία προέρχονται από τον τρόπο λειτουργίας του Η/Υ (αριθμητική του Η/Υ)
49 Οι αριθμοί καταχωρούνται και επεξεργάζονται από τον Η/Υ εκφραζόμενοι στο δυαδικό σύστημα αρίθμησης. Το μέγιστο μέγεθος ενός αριθμού τον οποίο μπορεί να επεξεργαστεί ο Η/Υ εξαρτάται από το μήκος των καταχωρητών (registers) του Η/Υ, το οποίο ανάλογα με την αρχιτεκτονική του μπορεί να είναι 8, 16, 32, 64 bits. Ο τρόπος αντιμετώπισης των αριθμών από τον Η/Υ εξαρτάται από τη μορφή τους (ακέραιοι (integers), πραγματικοί (real) αριθμοί). Για κάθε Η/Υ υπάρχει μια μέγιστη (I max ) και μια ελάχιστη τιμή (I min ) αποδοχής για τους ακέραιους αριθμούς. Το ερώτημα το οποίο τίθεται είναι το ακόλουθο: «τι θα συμβεί αν ζητηθεί η καταχώρηση ενός ακέραιου αριθμού μεγαλύτερου από το I max ή μικρότερου από το I min ;». Η απάντηση εξαρτάται από τη γλώσσα προγραμματισμού με τη βοήθεια της οποίας γίνεται η επίλυση του προβλήματος. Για την αναπαράσταση πραγματικών αριθμών χρησιμοποιείται μορφή που περιέχει δυνάμεις. Για παράδειγμα, οι αριθμοί -52 και μπορούν να γραφούν αντίστοιχα και Γενικότερα, κάθε αριθμός μπορεί να γραφεί με τη μορφή: Μ 10 Ε, όπου το M καλείται μαντίσα (mantissa) και το Ε εκθέτης της βάσης του συστήματος αρίθμησης. Η παράσταση αυτή καλείται εκθετική ή επιστημονική μορφή. Για την αποθήκευση ενός πραγματικού αριθμού στον υπολογιστή αρκεί να αφιερωθούν μερικά bits για τη μαντίσα και μερικά για τον εκθέτη. Σε μια συνήθη παράσταση αποδίδονται 4 bytes, εκ των οποίων τα 3 για τη μαντίσα και το ένα για τον εκθέτη, από τον οποίο εξαρτάται ητάξη μεγέθους του αριθμού. Το ερώτημα το οποίο τίθεται είναι: «τι θα συμβεί αν ανατεθεί στη μαντίσα αριθμός με περισσότερα ψηφία από όσα διαθέτει;». Σε αυτή την περίπτωση γίνεται στρογγυλοποίηση με αποτέλεσμα τη δημιουργία σφάλματος στη μαντίσα. Ωστόσο, υπάρχει και ο εκθέτης, ο οποίος επιδρά με τη σειρά του στο σφάλμα που δημιουργήθηκε αυξάνοντας ή μειώνοντας το μέγεθός του. Στη γενική περίπτωση, το απόλυτο σφάλμα της στρογγυλοποίησης το οποίο παράγεται από τη μαντίσα είναι:
Πίνακας Περιεχομένων
Πίνακας Περιεχομένων Πρόλογος... 13 Πρώτο Μέρος: Γενικές Έννοιες Κεφάλαιο 1 ο : Αλγοριθμική... 19 1.1 Περιγραφή Αλγορίθμου... 19 1.2. Παράσταση Αλγορίθμων... 21 1.2.1 Διαγράμματα Ροής... 22 1.2.2 Ψευδογλώσσα
1.1. Με τι ασχολείται η Αριθμητική Ανάλυση
Κεφάλαιο 1 Εισαγωγικά 1.1. Με τι ασχολείται η Αριθμητική Ανάλυση Πολλοί επιστημονικοί κλάδοι, στην προσπάθειά τους να επιλύσουν πρακτικά προβλήματα κάνουν χρήση μεθόδων Αριθμητικής Ανάλυσης. Οι μέθοδοι
Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.
i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical
ΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής
Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός
Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α. Πρόλογος...15 ΚΕΦΑΛΑΙΟ 1. Σφάλματα
Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Πρόλογος...15 ΚΕΦΑΛΑΙΟ 1 Σφάλματα 1.1 Εισαγωγή...17 1.2 Αρχικά Σφάλματα (σφάλματα μετρήσεων)...18 1.2.1 Απλές μετρήσεις...18 1.2.2 Σύνθετες μετρήσεις...19 1.2.3 Σημαντικά ψηφία και
ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες)
ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, 2016-2017 ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες) Κεφ. 2: Επίλυση συστημάτων εξισώσεων (διάρκεια: 3 εβδομάδες) 2.1 Επίλυση εξισώσεων 2.2 Επίλυση
Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το
Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.
Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος
Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του
Πίνακας Περιεχομένων
Πίνακας Περιεχομένων Πρόλογος... 11 Κεφάλαιο 1o: Εισαγωγικά... 15 1.1 Με τι ασχολείται η Αριθμητική Ανάλυση... 15 1.2 Πηγές Σφαλμάτων... 17 1.2.1 Εισόδου... 17 1.2.2 Αριθμητικής Υπολογιστών... 18 1.2.3
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 9 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Περιεχόμενα 2 Η λειτουργία του υπολογιστή Κατηγορίες Εντολών Μορφή Εντολών
2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός
ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ
Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19
Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
Μαλούτα Θεανώ Σελίδα 1
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος
Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια
Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια Είσοδος:
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης
ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]
ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ] Συγγραφείς ΝΤΑΟΥΤΙΔΗΣ ΠΡΟΔΡΟΜΟΣ Πανεπιστήμιο Minnesota, USA ΜΑΣΤΡΟΓΕΩΡΓΟΠΟΥΛΟΣ ΣΠΥΡΟΣ Αριστοτέλειο
Α. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
Εισαγωγή στον προγραμματισμό
Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός
<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1
ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ
Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;
Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:
Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον
Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος
Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )
Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,
5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ
5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.
ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β Καβακλή Χειμερινό Εξάμηνο 2001 Στόχοι του Μαθήματος! Ανάπτυξη αναλυτικής
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Προγραµµατισµός Η/Υ. Μέρος2
Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής
ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης
ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή
Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο
Εισαγωγή - Βασικές έννοιες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Αλγόριθμος Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου
Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες
Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας
Αριθμητική Ανάλυση & Εφαρμογές
Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου
Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης
Πρόβλημα 29 / σελίδα 28
Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους
ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ
ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν
Αρχές Προγραμματισμού Υπολογιστών
Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,
Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βασικές Έννοιες Προγραμματισμού. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βασικές Έννοιες Προγραμματισμού Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Αριθμητικά συστήματα Υπάρχουν 10 τύποι ανθρώπων: Αυτοί
Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.
Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου
Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος Θέμα 1 Δίνονται τα παρακάτω τμήματα αλγορίθμου Α. βαλίτσα Αληθής εισιτήριο Αληθής ταξίδι βαλίτσα και εισιτήριο Τι τιμή θα έχει η λογική μεταβλητή
Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...
Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54
Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης
Κ.Π. Γιαλούρης Στόχοι του μαθήματος Απόκτηση αναλυτικής και αλγοριθμικής σκέψης Απόκτηση δεξιοτήτων επίλυσης προβλημάτων Γνώση προγραμματισμού σε Python 2 Στόχοι του σημερινού μαθήματος Κατανόηση της έννοιας
Algorithms + Data Structures = Programs
Η Αριθμητική Ανάλυση είναι άρρηκτα δεμένη με τη χρήση του Η/Υ και η έννοια του Αλγόριθμου είναι βασική για τον προγραμματισμό των Η/Υ. Αλγόριθμος (Algorithm) είναι η ακριβής περιγραφή μιας αυστηρά καθορισμένης
Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.
οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους
ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL
8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to
Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.
Κεφάλαιο 2 - Πρόβλημα 2.1.1. Η έννοια του προβλήματος Πρόβλημα είναι μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής. 2.1.2. Κατηγορίες προβλημάτων
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή
Εισαγωγή. 1.1 Αλγόριθμοι
Κεφάλαιο 1 ο Εισαγωγή 1.1 Αλγόριθμοι Η λέξη "αλγόριθμος" προέρχεται από μια μελέτη του Πέρση μαθηματικού Abu Ja'far Mohammed ibn al Khowarizmi με τίτλο "Κανόνες σύνθεσης και αναγωγές", ο οποίος έζησε περί
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.
AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία
Προγραμματισμός και Εφαρμογές Υπολογιστών
Προγραμματισμός και Εφαρμογές Υπολογιστών Ενότητα 1: Αλγόριθμοι και Επίλυση Προβλημάτων Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Κ.Π. Γιαλούρης Μαθησιακοί Στόχοι Ενότητας Απόκτηση αναλυτικής και
Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;
5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας
ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ
ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που
Μαρία Χ.Γουσίδου-Κουτίτα Επίκουρη Καθηγήτρια Τμήματος Μαθηματικών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ
Μαρία Χ.Γουσίδου-Κουτίτα Επίκουρη Καθηγήτρια Τμήματος Μαθηματικών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΘΕΣΣΑΛΟΝΙΚΗ 2004 Κάθε γνήσιο αντίτυπο υπογράφεται από τη συγγραφέα ΑΡΙΘΜΗΤΙΚΗ
Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1
Ενδεικτική Οργάνωση Ενοτήτων Στ Τάξη Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1 15 Αρ3.1 Απαγγέλουν, διαβάζουν, γράφουν και αναγνωρίζουν ποσότητες αριθμών Επανάληψη μέχρι το 1 000
Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)
Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο. Επικοινωνία:
Επικοινωνία: spzygouris@gmail.com Να δοθεί ο ορισμός του Αλγορίθμου. Αλγόριθμος, σύμφωνα με το βιβλίο, είναι μια πεπερασμένη σειρά ενεργειών (όχι άπειρες), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη
Επιµέλεια Θοδωρής Πιερράτος
Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί
1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;
1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι
κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών
κεφάλαιο 1 Βασικές Έννοιες Επιστήμη 9 1Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ Στόχοι Στόχος του κεφαλαίου είναι οι μαθητές: να γνωρίσουν βασικές έννοιες και τομείς της Επιστήμης. Λέξεις κλειδιά Επιστήμη
Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων
Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό. Η έννοια του προβλήματος
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό Η έννοια του προβλήματος Τι είναι πρόβλημα; ΠΡΟΒΛΗΜΑΤΑ ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ Πρόβλημα είναι κάθε κατάσταση που μας απασχολεί και χρήζει αντιμετώπισης,
Ενδεικτικές Ερωτήσεις Θεωρίας
Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας ΚΕΦΑΛΑΙΟ 7 7.1 7.9 Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν
10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.
1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΥΠΗΡΕΣΙΩΝ 2005 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ 1ο Α. 1. Να αναφέρετε ονοµαστικά τα κριτήρια που πρέπει απαραίτητα
ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ
1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ
Αριθμητική Ανάλυση και Εφαρμογές
Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα
Εισαγωγή στις Αρχές της επιστήμης των ΗΥ
Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.
Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,
Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών
Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών 7. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης) 7. Μέθοδος Euler 7.3
ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.
Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις
Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού
ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος
ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος Κεφάλαιο 1 1. Πρόβλημα είναι μια μαθηματική κατάσταση που πρέπει να αντιμετωπίσουμε 2. Αν υποβάλλουμε τα δεδομένα σε επεξεργασία παίρνουμε πληροφορίες 3. Ο υπολογιστής
Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος
Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των
Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»
Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης
Ψευδοκώδικας. November 7, 2011
Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε
Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός
Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει
Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...
Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Δομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών
Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης). Μέθοδος Euler 3. Μέθοδοι
Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου
Εισαγωγή στις Αρχές της επιστήμης των Η/Υ Β Λυκείου Επιστήμη των υπολογιστών μελετά Θεωρητικά θεμέλια Φύση πληροφοριών Φύση αλγορίθμων Φύση υπολογισμών Και τις τεχνολογικές εφαρμογές τους Από τις σκοπιές
4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.
ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Διδάσκουσα Δρ Β. Καβακλή Χειμερινό Εξάμηνο 2001 1 Ανάλυση προβλήματος Η σωστή αντιμετώπιση