ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ MATLAB

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

Download "ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ MATLAB"

Transcript

1 ΓΕΩΡΓΙΟΣ ΘΕΟ ΩΡΟΥ Καθηγητής ΑΠΘ ΝΙΚΗ ΘΕΟ ΩΡΟΥ Πληροφορικός ΠΡΑΚΤΙΚΟΣ Ο ΗΓΟΣ ΣΤΟ MATLAB ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Θεσσαλονίκη 2007

2 2 Πρακτικός Οδηγός στο MATLAB Κάθε γνήσιο αντίτυπο φέρει την υπογραφή των συγγραφέων Copyright 2007, Γ. Θεοδώρου, Ν. Θεοδώρου

3 3 Πρακτικός Οδηγός στο MATLAB Πρόλογος Η ανάπτυξη των τεχνολογιών της πληροφορικής έχει επιφέρει δραµατικές αλλαγές στην εκπαίδευση, και ο τρόπος διδασκαλίας των µαθηµάτων έχει επηρεασθεί σηµαντικά απ αυτές. Ο παραδοσιακός π.χ. τρόπος διδασκαλίας της φυσικής, στον οποίο αντιµετωπίζονται προβλήµατα που µπορούν να επιλυθούν µε αυστηρά µαθηµατικό τρόπο, έχει συµπληρωθεί έτσι ώστε να αντιµετωπίζονται και προβλήµατα των οποίων η λύση µπορεί να προσεγγιστεί µόνο αριθµητικά µε τη χρήση ηλεκτρονικών υπολογιστών. Επίσης, µε τα υπάρχοντα προγράµµατα υπάρχει η δυνατότητα γραφικής αναπαράστασης των αποτελεσµάτων, παρέχοντας έτσι µια εποπτική εικόνα που βοηθά στη σύνδεση της λύσης µε τη φυσική πραγµατικότητα. Κατά συνέπεια, η εξοικείωση του σύγχρονου εκπαιδευτικού µε τεχνολογίες χρήσης της πληροφορικής στην εκπαιδευτική διαδικασία αποτελεί απαίτηση µιας ήδη διαµορφωµένης πραγµατικότητας. Βασικό συστατικό των απαιτούµενων δεξιοτήτων πληροφορικής, είναι η γνώση σύγχρονων γλωσσών προγραµµατισµού. Σε γενικές γραµµές, η σύγχρονη προσέγγιση στο θέµα αυτό είναι να επιλέγονται γλώσσες που να είναι φιλικές στο χρήστη, και έτσι να γίνονται ελκυστικές στο σύνολο σχεδόν των φοιτητών του κλάδου, και όχι µόνο σε µια µικρή µειονότητα απ αυτούς που τυχαίνει να έχουν ιδιαίτερο ενδιαφέρον σε υπολογιστές. Οι γλώσσες προγραµµατισµού που ικανοποιούν το παραπάνω κριτήριο, µπορούν σε γενικές γραµµές να χωριστούν σε δύο κατηγορίες, σ αυτές που κατά βάση είναι γλώσσες αριθµητικού προγραµµατισµού, και σε αυτές που είναι αλγεβρικού. Ο στόχος των δύο αυτών γλωσσών είναι διαφορετικός, γεγονός

4 4 Πρακτικός Οδηγός στο MATLAB που καθιστά αναγκαία την εκµάθηση τουλάχιστον µιας εξ αυτών. Στόχος των γλωσσών αλγεβρικού προγραµµατισµού είναι κυρίως οι αναλυτικές πράξεις, ενώ των γλωσσών του αριθµητικού οι αριθµητικές. Από τις πιο διαδεδοµένες γλώσσες αριθµητικού κατά βάση προγραµµατισµού είναι το πρόγραµµα MATLAB, ενώ κυρίως αλγεβρικού η Mathematica. Στο παρόν βιβλίο γίνεται µια εισαγωγή στα βασικά στοιχεία του προγράµµατος MATLAB. Στο πρώτο κεφάλαιο του βιβλίου παρουσιάζονται τα εισαγωγικά βήµατα για τη λειτουργία του MATLAB. Επίσης παρουσιάζονται οι τρόποι εκτέλεσης των βασικών αριθµητικών πράξεων, ο τρόπος χρήσεως των εσωτερικών συναρτήσεων του προγράµµατος, και ο τρόπος δηµιουργίας και χρήσης των Μ-αρχείων εντολών, που είναι ένας από τους βασικούς τρόπους σύνταξης προγραµµάτων στο MATLAB. Στο δεύτερο κεφάλαιο εισάγεται η έννοια της λίστας, που είναι ένα από τα βασικότερα εργαλεία του προγράµµατος. Παρουσιάζεται ο τρόπος σύνταξης και διαχείρισης µιας λίστας, καθώς και µερικές εντολές για τη δηµιουργία ειδικών λιστών. Τέλος παρουσιάζονται οι πράξεις µε λίστες. Στο τρίτο κεφάλαιο γίνεται µια εισαγωγή στις συµβολοσειρές, και στο τρόπο διαχείρισης τους. Στο τέταρτο και πέµπτο κεφάλαιο παρουσιάζονται τα βασικά σηµεία των µεθόδων προγραµµατισµού µε το MATLAB, που αφορούν τη σύνταξη διαδικαστικών εντολών, όσο και τη σύνταξη και χρήση εξωτερικών συναρτήσεων. Στο έκτο κεφάλαιο γίνεται µια εισαγωγή στις δισδιάστατες γραφικές παραστάσεις δεδοµένων και συναρτήσεων, και παρουσιάζονται οι βασικές εντολές διαµόρφωσης τους. Στο έβδοµο κεφάλαιο παρουσιάζονται βασικά µέρη του προγράµ- µατος και του τρόπου διαχείρισης τους. Παρουσιάζονται, επίσης, τρόποι εισαγωγής και εξαγωγής δεδοµένων, και τέλος παρουσιάζονται εντολές ελέγχου της λειτουργίας και της απόδοσης του προγράµµατος. Στο όγδοο κεφάλαιο γίνεται µια εισαγωγή στις τρισδιάστατες γραφικές παραστάσεις, και τις βασικές εντολές διαµόρφωσης τους. Στο ένατο κεφάλαιο γίνεται µια εισαγωγή στην εκτέλεση πράξεων της γραµµικής άλγεβρας µε το MATLAB, δηλαδή πράξεων µε ανύσµατα και

5 Πρόλογος 5 µήτρες, λύση γραµµικών συστηµάτων, και υπολογισµό ιδοτιµών και ιδιοσυναρτήσεων τετραγωνικών πινάκων. Τέλος, στο δέκατο κεφάλαιο παρουσιάζονται εφαρµογές του MATLAB στη µαθηµατική ανάλυση συναρτήσεων µιας µεταβλητής, δηλαδή στην εκτέλεση πράξεων µε πολυώνυµα, τον υπολογισµό ριζών τους και τη χρήση τους σε διαδικασίες προσαρµογής καθώς και τον υπολογισµό ριζών και ακρότατων συναρτήσεων οποιασδήποτε µορφής. Παρουσιάζονται επίσης εφαρµογές που αφορούν τον υπολογισµό ολοκληρωµάτων, την παρεµβολή δεδοµένων, και τον υπολογισµό του διακριτού µετασχηµατισµού Fourier. Θεσσαλονίκη, Ιούλιος 2007 Γεώργιος Θεοδώρου Νίκη Θεοδώρου

6 6 Πρακτικός Οδηγός στο MATLAB

7 7 Περιεχόµενα Πρακτικός Οδηγός στο MATLAB... 3 Πρόλογος... 3 Περιεχόµενα... 7 ΚΕΦΑΛΑΙΟ Εισαγωγικές Έννοιες Εισαγωγή Βασικές πράξεις Αριθµητικές πράξεις Πράξεις σύγκρισης- Λογικές εντολές Εντολή απόκρυψης Μαθηµατικές σταθερές και παράµετροι Εισαγωγή νέων παραµέτρων - Εντολή ανάθεσης Εσωτερικές συναρτήσεις Γενικές παρατηρήσεις ιαγραφή παραµέτρων Σύνθετες εντολές Μ - Αρχεία Εντολών Εντολή echo Κυψελική δοµή αρχείου Προσέγγιση αριθµητικών τιµών Εντολές διαχείρισης ΚΕΦΑΛΑΙΟ Λίστες Ορισµός λίστας... 36

8 8 Πρακτικός Οδηγός στο MATLAB Τροποποίηση στοιχείων λίστας Χαρακτηριστικά λίστας Ειδικές εντολές δηµιουργίας λίστας Εντολή a_initial:a_step:a_final Εντολή linspace(a1, a2, a3) Εντολές zeros(n, m) και zeros(n) Εντολές ones(n, m) και ones(n) Εντολή eye(n) Εντολή diag(a) Εντολή magic(n) Εντολές rand(n, m) και rand(n) Εντολές randn(n, m) και randn(n) ιαχείριση λίστας Πολλαπλή αναφορά σε στοιχεία λίστας Αναγωγή λίστας σε µονοδιάστατη λίστα-στήλη Αναφορά σε στοιχεία λίστας µε λογική εντολή Πολλαπλή τροποποίηση στοιχείων λίστας Συνενώνοντας λίστες Πράξεις µε λίστες Επίδραση συνάρτησης σε λίστα Ειδικές συναρτήσεις...59 ΚΕΦΑΛΑΙΟ Συµβολοσειρές ηµιουργία συµβολοσειράς ιαχείριση συµβολοσειράς...65 ΚΕΦΑΛΑΙΟ Προγραµµατισµός Εντολή ελέγχου ροής: if Επαναληπτικές διαδικασίες - Βρόχοι Εντολή For Εντολή While Συµπληρωµατικές εντολές ελέγχου...78

9 Περιεχόµενα Εντολή continue Εντολή break Λογικοί τελεστές Λογικός τελεστής «και» Λογικός τελεστής «ή» Λογικός τελεστής «οχι» ΚΕΦΑΛΑΙΟ Συναρτήσεις Μ Συναρτήσεις Παράµετροι εισόδου και εξόδου Τερµατισµός συνάρτησης Οδηγός συνάρτησης Οδηγός εσωτερικής συνάρτησης Οδηγός Μ-συνάρτησης Οδηγός ανώνυµης έκφρασης Ανώνυµος oδηγός Εφαρµογές Αριθµητικός υπολογισµός ολοκληρώµατος Στατιστική περιγραφή δεδοµένων Εσωτερικές συναρτήσεις για στατιστικά µεγέθη ΚΕΦΑΛΑΙΟ Γραφικά στο Επίπεδο Γραφική παράσταση δεδοµένων - Εντολή plot ιαµόρφωση γραφικής παράστασης Εντολή scatter Εντολή stem Πολλαπλές καµπύλες Εντολή hold on Πολλαπλές εικόνες Γραφική παράσταση συνάρτησης Εντολή ezplot Αποτύπωση πειραµατικών σφαλµάτων Ιστογράµµατα

10 10 Πρακτικός Οδηγός στο MATLAB 6.7 Ηµιλογαριθµικές και λογαριθµικές κλίµακες Πολικά διαγράµµατα Πολικό διάγραµµα δεδοµένων εντολή polar Πολικό διάγραµµα συνάρτησης εντολή ezpolar Παραµετρικές καµπύλες - Πεπλεγµένες συναρτήσεις Γραφική παράσταση παραµετρικής καµπύλης Γραφική παράσταση πεπλεγµένης συνάρτησης ΚΕΦΑΛΑΙΟ ιαχείριση του MATLAB Βασικά µέρη του προγράµµατος Παράθυρο διαχείρισης (Command Window) Βασικός χώρος λειτουργίας (Workspace) Ενεργός διεύθυνση αποθήκευσης (Current directory) Αρχείο καταχώρησης εντολών (Command History) ιαµόρφωση της εµφάνισης των αποτελεσµάτων ιαχείριση χώρου λειτουργίας (workspace) Αποθήκευση παραµέτρων σε αρχεία ASCII Εντολές input και pause Ηµερολόγιο κίνησης Εντολές ελέγχου του προγράµµατος ΚΕΦΑΛΑΙΟ Γραφικά στο Χώρο Γραφικές παραστάσεις καµπυλών Πολλαπλές καµπύλες Γραφικές παραστάσεις επιφανειών Γραφικές παραστάσεις µε την εντολή mesh Εντολή meshc Γραφικές παραστάσεις µε την εντολή surf Εντολή surfc Εντολή surfl Γραφήµατα µε ισοϋψείς Γράφηµα µε ισοϋψείς στο επίπεδο...160

11 Περιεχόµενα Τρισδιάστατο γράφηµα µε ισοϋψείς Γραφική αναπαράσταση λίστας Χρωµατική αναπαράσταση Αναπαράσταση στις τρεις διαστάσεις Γραφική αναπαράσταση διανυσµατικών πεδίων Γραφική παράσταση συνάρτησης Εντολή ezplot Εντολή ezmesh Εντολή ezsurf Εντολή ezcontour ΚΕΦΑΛΑΙΟ Γραµµική Άλγεβρα - Μήτρες Πράξεις µε ανύσµατα στο καρτεσιανό σύστηµα Πράξεις µε µήτρες Λύση γραµµικών συστηµάτων Ιδιοτιµές και Ιδιοανύσµατα µητρών ΚΕΦΑΛΑΙΟ Ανάλυση µε το MATLAB Πολυώνυµα Συµβολισµός πολυωνύµων Άθροισµα πολυωνύµων Γινόµενο πολυωνύµων Ρίζες πολυωνύµου Υπολογισµός τιµών πολυωνύµου Παράγωγοι και ολοκληρώµατα πολυωνύµων Προσαρµογή δεδοµένων µε πολυώνυµο Εντοπισµός ρίζας συνάρτησης Τοπικά ακρότατα συναρτήσεων Τοπικό ελάχιστο Τοπικό µέγιστο Αριθµητική ολοκλήρωση Υπολογισµός ολοκληρώµατος από δεδοµένα

12 12 Πρακτικός Οδηγός στο MATLAB Υπολογισµός ολοκληρώµατος συνάρτησης Παρεµβολή σε µία διάσταση (Interpolation) Τµηµατικά πολυώνυµα παρεµβολής Υπολογισµός παραγώγων και ολοκληρωµάτων ιακριτός µετασχηµατισµός Fourier ιεκπεραίωση του µετασχηµατισµού Εφαρµογή Αριθµητικές λύσεις διαφορικών εξισώσεων Βιβλιογραφία Ευρετήριο Ευρετήριο...219

13 13 ΚΕΦΑΛΑΙΟ 1 Εισαγωγικές Έννοιες 1.1 Εισαγωγή Μετά από την αλµατώδη ανάπτυξη των ηλεκτρονικών υπολογιστών, και την ευρεία χρήση τους σε όλα σχεδόν τα πεδία, καθίσταται πλέον επιτακτική η γνώση βασικών γλωσσών προγραµµατισµού. Η επιλογή τους είναι µια διαδικασία για την οποία υπάρχουν πολλές και αντικρουόµενες απόψεις, και η απάντηση στο ερώτηµα αυτό εξαρτάται σε µεγάλο βαθµό και από το επιστηµονικό πεδίο στο οποίο αυτές θα χρησιµοποιηθούν. Σε γενικές γραµµές, η σύγχρονη προσέγγιση στο θέµα είναι να επιλέγονται γλώσσες που να είναι φιλικές στο χρήστη, και έτσι να γίνονται ελκυστικές στο σύνολο σχεδόν των φοιτητών του κλάδου, και όχι µόνο σε µια µικρή µειονότητα απ αυτούς που τυχαίνει να έχουν ιδιαίτερο ενδιαφέρον για τους υπολογιστές. Οι γλώσσες προγραµµατισµού που ικανοποιούν το παραπάνω κριτήριο µπορούν να χωριστούν γενικά σε δύο κατηγορίες, σ αυτές που στη βάση τους είναι γλώσσες αριθµητικού προγραµµατισµού, και σ αυτές που είναι αλγεβρικού. Ο στόχος των δύο αυτών κατηγοριών είναι διαφορετικός, πράγµα που καθιστά αναγκαία την εκµάθηση τουλάχιστον µιας γλώσσας από την κάθε µια κατηγορία. Κύριος στόχος των γλωσσών αλγεβρικού προγραµ- µατισµού είναι οι αναλυτικές πράξεις, ενώ του αριθµητικού οι αριθµητικές. Από τις πιο διαδεδοµένες γλώσσες αριθµητικού προγραµµατισµού είναι το πρόγραµµα MATLAB, ενώ αλγεβρικού η Mathematica. Τέλος πρέπει να αναφερθεί ότι στα προγράµµατα MATLAB και Mathematica υπάρχει µια πολύ µεγάλη ποικιλία εσωτερικών συναρτήσεων

14 14 Εισαγωγικές Έννοιες που προσφέρονται για άµεση χρήση προς εκτέλεση συγκεκριµένων υπολογισµών. Πρέπει όµως να τονισθεί, ότι τα προγράµµατα αυτά δεν είναι απλώς συλλογές έτοιµων συναρτήσεων, αλλά πλήρεις γλώσσες προγραµµατισµού, στις οποίες υπάρχει η δυνατότητα ανάπτυξης νέων συναρτήσεων και προγραµµάτων, που δεν έχουν εκ των προτέρων προβλεφθεί, για την εκτέλεση υπολογισµών της επιλογής του χρήστη. Σκοπός του παρόντος βιβλίου είναι να ενηµερώσει τον αναγνώστη για τις δυνατότητες και τη χρησιµότητα του MATLAB, και να τον βοηθήσει στην εκµάθηση των βασικών του σηµείων. Η έκδοση που θα παρουσιαστεί είναι αυτή που εγκαθίσταται στο λειτουργικό σύστηµα των WINDOWS. Οι εκδόσεις του MATLAB που εγκαθίστανται πάνω σε άλλα λειτουργικά συστήµατα λειτουργούν σε γενικές γραµµές µε παρόµοιο τρόπο. Εκκίνηση του MATLAB. Η εκκίνηση του MATLAB γίνεται µε διπλό πάτηµα του αριστερού πλήκτρου του «ποντικιού» πάνω στο αντίστοιχο εικονίδιο. Παράθυρο διαχείρισης (Command Window) του MATLAB. Με την εκκίνηση του προγράµµατος, εµφανίζεται το παράθυρο διαχείρισης (Command Window) του MATLAB. Μέσα στο παράθυρο αυτό, γράφονται οι εντολές, δίνεται η εντολή εκτέλεσης τους, και εµφανίζονται τα αποτελέσµατα των πράξεων, δηλαδή γίνονται όλες οι αλληλεπιδράσεις του χρήστη µε το πρόγραµµα. Βασικός χώρος λειτουργίας (Workspace) του MATLAB. Ο χώρος διεκπεραίωσης των πράξεων είναι ο βασικός χώρος λειτουργίας του προγράµµατος (Workspace). Ο χώρος αυτός βρίσκεται στη µνήµη του υπολογιστή, και µέσα σ αυτόν εκτελούνται οι πράξεις και ταυτόχρονα διατηρούνται όλα τα αποτελέσµατα τους, µε σκοπό να µπορούν να χρησιµοποιηθούν σε επόµενες πράξεις. Έξοδος από το πρόγραµµα: Η έξοδος από το πρόγραµµα γίνεται είτε µε την επιλογή, µε το αριστερό πλήκτρο του «ποντικιού», της εντολής File του µενού και κατόπιν της εντολής Exit της πινακίδας που θα εµφανιστεί, είτε µε ταυτόχρονο πάτηµα των πλήκτρων Ctrl Q του πληκτρολογίου.

15 1.2 Βασικές πράξεις Βασικές πράξεις Οι βασικές πράξεις στο MATLAB, και τα σύµβολα (τελεστές) που χρησιµοποιούνται για την εκτέλεση τους, είναι οι γνωστές πράξεις από τα µαθηµατικά, που δηλώνονται παρακάτω: Αριθµητικοί τελεστές Πράξη Σχεσιακοί τελεστές Πράξη + συν == ίσον σύγκρισης - πλην < µικρότερο * επί <= µικρότερο ή ίσο / ή \ διά > µεγαλύτερο ^ δύναµη >= µεγαλύτερο ή ίσο = ίσον ανάθεσης ~= όχι ίσο Με τους αριθµητικούς τελεστές εκτελούνται οι γνωστές από την αριθµητική πράξεις, ενώ µε τους σχεσιακούς τελεστές γίνεται σύγκριση µεταξύ δύο ποσοτήτων. (Προσοχή, ο σχεσιακός τελεστής της ισότητας δηλώνεται µε διπλό ίσον, ==). Η σηµασία των τελεστών αυτών και ο τρόπος χρήσης τους µε αντίστοιχα παραδείγµατα εφαρµογής τους, αναλύεται στις επόµενες παραγράφους Αριθµητικές πράξεις Με την έναρξη του προγράµµατος, όπως και µετά τη διεκπεραίωση κάθε µιας εντολής, εµφανίζεται στην οθόνη το διπλό σύµβολο >>, που δηλώνει ότι το πρόγραµµα είναι έτοιµο να δεχθεί για εκτέλεση την επόµενη εντολή. Αφού γράψουµε την εντολή, χρησιµοποιώντας πάντοτε αριθµητικούς τελεστές που δηλώνουν τις πράξεις µεταξύ των αριθµών, από αυτούς που αναφέραµε στη παράγραφο 1.2, εκτελούµε την πράξη µε το πάτηµα του πλήκτρου Enter, π.χ. >> 2+7 Enter

16 16 Εισαγωγικές Έννοιες Μετά την εκτέλεση της εντολής, εµφανίζεται στην οθόνη το παρακάτω µήνυµα 9 που δηλώνει την απάντηση (answer) του προγράµµατος στην εντολή που δόθηκε. Παραδείγµατα >> >> 3* >> 24/ >> 2^ >> 231/ >> (2+3.7/6.5)/(3^3.6+1/3) Στο MATLAB µπορούµε να εκτελέσουµε τη διαίρεση και µε το σύµβολο \, γράφοντας δηλαδή πρώτα το διαιρέτη και µετά το διαιρετέο, όπως φαίνεται στο επόµενο παράδειγµα,

17 1.2 Βασικές πράξεις 17 >> (3^3.6+1/3)\(2+3.7/6.5) Για αριθµητικές πράξεις, το αποτέλεσµα της διαίρεσης είναι το ίδιο είτε γίνει µε τη χρήση του συµβόλου /, είτε του \, δε συµβαίνει όµως το ίδιο και στις πράξεις µε µήτρες, όπως θα δούµε στο κεφάλαιο 9. Προτεραιότητα πράξεων Το MATLAB εκτελεί τις αριθµητικές πράξεις µε τη χρήση δεκαδικών αριθµών, και δίνει το αποτέλεσµα επίσης σε µορφή δεκαδικού αριθµού. Για τη διατύπωση της εντολής, µπορούµε να χρησιµοποιούµε παρενθέσεις οι οποίες οµαδοποιούν τις πράξεις, όπως ακριβώς γίνεται και στα µαθηµατικά. Όταν δεν υπάρχουν παρενθέσεις, οι πράξεις που περιέχοντα σε µια εντολή εκτελούνται µε προτεραιότητα, από αριστερά στα δεξιά, και µε πρώτη προτεραιότητα την εκτέλεση των δυνάµεων, µετά και σε ίση προτεραιότητα τους πολλαπλασιασµούς και διαιρέσεις, και τέλος τα αθροίσµατα και τις διαφορές. Μιγαδικοί αριθµοί Με το MATLAB µπορούµε επίσης να εκτελέσουµε πράξεις µε µιγαδικούς αριθµούς. Για το σύµβολο της µιγαδικής µονάδας, 1, χρησιµοποιείται είτε το γράµµα του Αγγλικού αλφαβήτου i, είτε το j, π.χ. >> ( *i)/( i) i >> ( *j)/( j) i >> (2+5*i)^5/(3+11*i)^ i

18 18 Εισαγωγικές Έννοιες Σχόλια: (1) Σηµειώστε ότι το σύµβολο της υποδιαστολής είναι, σύµφωνα µε το διεθνή συµβολισµό τον οποίο ακολουθεί το MATLAB στην εκτέλεση των πράξεων, η τελεία και όχι το κόµµα. (2) Όταν µια εντολή έχει συνταχθεί λάθος, τότε το πρόγραµµα απαντά µε διαγνωστικό µήνυµα που σκοπό έχει να µας βοηθήσει στη διόρθωση της, π.χ. >> (2+3.7/6.5)/(3^3.6+1/3??? (2+3.7/6.5)/(3^3.6+1/3 Error: Expression or statement is incorrect--possibly unbalanced (, {, or [. (3) Οι εντολές που εκτελούνται δηλώνονται στο αρχείο καταχώρησης εντολών (Command History) του προγράµµατος, και έτσι έχουµε την ευχέρεια να επαναφέρουµε για εκτέλεση µια εντολή που προγενέστερα έχει εκτελεστεί, µε τη χρήση των πλήκτρων και. Μετά από την επαναφορά µιας εντολής µέσα στο παράθυρο διαχείρισης, έχουµε τη δυνατότητα πρώτα να την τροποποιήσουµε και µετά να την εκτελέσουµε. (4) Οι δεκαδικοί αριθµοί καταχωρούνται στη µνήµη του MATLAB 7 µε το πρόσηµο τους, δεκαέξι κύρια ψηφία, και τη δύναµη του εκθέτη, και εκτελούνται µε ακρίβεια δεκαέξι ψηφίων Πράξεις σύγκρισης- Λογικές εντολές Οι πράξεις σύγκρισης εκτελούνται µε τη χρήση σχεσιακών τελεστών. Στην περίπτωση αυτή γίνεται σύγκριση µεταξύ δύο αριθµητικών ποσοτήτων, και το αποτέλεσµα της πράξης είναι είτε το ένα (όταν η σχέση είναι αληθής), είτε το µηδέν (όταν η σχέση δεν είναι αληθής). Οι εντολές που δηµιουργούνται µε αυτό τον τρόπο καλούνται και λογικές εντολές. Παραδείγµατα λογικών εντολών είναι οι παρακάτω:

19 1.2 Βασικές πράξεις 19 >> 7>3 1 >> 7<=4 0 >> 2^3==8 1 >> 3^2~= Εντολή απόκρυψης Όταν δοθεί προς εκτέλεση µια εντολή που τελειώνει µε το σύµβολο του Αγγλικού αλφαβήτου ;, που είναι ο τελεστής απόκρυψης του αποτελέσµατος, τότε η εντολή εκτελείται και αποθηκεύεται στη µνήµη του συστήµατος, αλλά το αποτέλεσµα δεν εµφανίζεται στην οθόνη, π.χ. >> (2.6+1/3.3)*(37+i*82.6)/(23/47+7.3*i/73.9); Η επιλογή αυτή είναι πολύ χρήσιµη σε περιπτώσεις που το αποτέλεσµα είναι εκτεταµένο και δε θέλουµε να εµφανιστεί στην οθόνη, όπως π.χ. στην περίπτωση ενός πίνακα µεγάλων διαστάσεων. Σχόλιο: Στα επόµενα παραδείγµατα, παραλείπεται, χάριν συντοµίας, το σύµβολο προτροπής, >>, που εµφανίζεται στην αρχή κάθε εντολής.

20 20 Εισαγωγικές Έννοιες 1.3 Μαθηµατικές σταθερές και παράµετροι Στο MATLAB υπάρχει ένας περιορισµένος αριθµός µαθηµατικών σταθερών, καταχωρηµένων ήδη στο πρόγραµµα, και µε προκαθορισµένη την αριθµητική τους τιµή. Θα αναφέρουµε τις πιο χρήσιµες απ αυτές: (1) Η µαθηµατική σταθερά π, π Η ποσότητα αυτή έχει καταχωρηθεί στη παράµετρο pi, και εισάγεται στις αντίστοιχες πράξεις µε τη χρήση της παραµέτρου αυτής. ηλαδή, πράξεις στις οποίες περιέχεται η σταθερή pi εκτελούνται µε την απόδοση σ αυτήν της αριθµητικής της τιµής, π.χ. pi^ pi*2.5^ (2) Μια δεύτερη µαθηµατική σταθερά είναι η ποσότητα, η οποία είναι καταχωρηµένη στην παράµετρο inf. 1/inf 0 1/0 Warning: Divide by zero. Inf (3) Τέλος αναφέρουµε την παράµετρο NaN (Not a Number), που χρησιµοποιείται για να δηλώσει ότι το αποτελέσµατα µιας πράξης δεν είναι αριθµός, όπως π.χ. το αποτέλεσµα σε πράξεις της µορφής 0/0, /, 0/0 Warning: Divide by zero.

21 1.3 Μαθηµατικές σταθερές και παράµετροι 21 NaN inf/inf NaN Εκτός από τις παραπάνω µαθηµατικές σταθερές, έχουν εισαχθεί στο MATLAB και µερικές παράµετροι που σχετίζονται µε τον τρόπο δόµησης του. Οι ποσότητες αυτές µπορούν να χρησιµοποιηθούν, όπως και οι µαθηµατικές σταθερές, µε τη δήλωση του ονόµατος τους. Οι πιο χρήσιµες απ αυτές είναι, (1) Η παράµετρος realmax που δηλώνει το µεγαλύτερο θετικό αριθµό που µπορεί να χρησιµοποιηθεί στο MATLAB για πράξεις, realmax e+308 Ο συµβολισµός e+308 δηλώνει τον εκθέτη (exponent) µε βάση το δέκα, 308 δηλαδή e για την παραπάνω περίπτωση. (2) Η παράµετρος realmin που δηλώνει το µικρότερο θετικό αριθµό που µπορεί να χρησιµοποιηθεί στο MATLAB για πράξεις, realmin e Εισαγωγή νέων παραµέτρων - Εντολή ανάθεσης Στο MATLAB, όπως και στα περισσότερα προγράµµατα, µπορεί ο χρήστης να ορίσει τις παραµέτρους της αρεσκείας του. Η εισαγωγή τους γίνεται µε τον καθορισµό του ονόµατος τους, και την απόδοση σ αυτό συγκεκριµένης ποσότητας, που γίνεται µε την εντολή της ανάθεσης, χρησι- µοποιώντας το σύµβολο της ισότητας, =, name = value

22 22 Εισαγωγικές Έννοιες Το όνοµα, name, µιας παραµέτρου µπορεί να περιέχει ένα ή περισσότερα γράµµατα ή αριθµούς, αλλά το πρώτο στοιχείο πρέπει απαραίτητα να είναι γράµµα. Επίσης, µέσα στο όνοµα δεν επιτρέπεται να περιλαµβάνονται κενά. Τέλος η ποσότητα value, µπορεί να είναι είτε αριθµός είτε συµβολοσειρά (δηλαδή κείµενο). Στην περίπτωση της συµβολοσειράς, το κείµενο τοποθετείται µέσα σε εισαγωγικά του Αγγλικού αλφαβήτου. Περισσότερες πληροφορίες για συµβολοσειρές δίνονται στο κεφάλαιο 3. Οι πρόσθετες παράµετροι, που εισάγονται µε τον παραπάνω τρόπο, ισχύουν µόνο για την τρέχουσα εκτέλεση του προγράµµατος, και χάνονται µε τον τερµατισµό της. Σε επόµενη εκτέλεση, θα πρέπει να οριστούν ξανά, σε αντίθεση µε τις µόνιµες παραµέτρους που είδαµε στην προηγούµενη παράγραφο. Παραδείγµατα αριθµητικών παραµέτρων x=2.1, y=7/3 x = y = z=x*y z = x*y*sin(z) Στο παραπάνω παράδειγµα ορίσθηκαν οι παράµετροι x και y, κατόπιν ορίσθηκε η παράµετρος z, και τέλος αξιοποιήθηκαν όλες για την εκτέλεση ενός υπολογισµού.

23 1.4 Εσωτερικές συναρτήσεις Εσωτερικές συναρτήσεις Εκτός από τις αριθµητικές σταθερές, στο MATLAB υπάρχει µια πολύ µεγάλη συλλογή εσωτερικών συναρτήσεων, που µπορούν να χρησιµοποιηθούν για εκτέλεση πράξεων. Στο MATLAB, ο γενικός τρόπος εκτέλεσης µιας συνάρτησης είναι η κλήση της, µε τη δήλωση του ονόµατος της, και την τοποθέτηση του ορίσµατος της µέσα σε παρένθεση, π.χ. function(argument) που συνεπάγεται τον υπολογισµό της συνάρτησης function, µε το όρισµα της ίσο µε το argument. Από τις εσωτερικές συναρτήσεις του MATLAB, οι πιο χρήσιµες είναι οι παρακάτω: sqrt(x) Τετραγωνική ρίζα, x log(x) exp(x) cos(x), sin(x), tan(x) cosd(x), sind(x), tand(x) acos(x), asin(x), atan(x) acosd(x), asind(x), atand(x) cosh(x), sinh(x), tanh(x) αcosh(x), asinh(x), atanh(x) real(z), imag(z) angle(z) abs(z) conj(z) Λογαριθµική συνάρτηση (Νεπέριος λογάριθµος του x) Εκθετική συνάρτηση, x e Τριγωνοµετρικές συναρτήσεις (όρισµα σε ακτίνια) Τριγωνοµετρικές συναρτήσεις (όρισµα σε µοίρες) Αντίστροφες τριγωνοµετρικές συναρτήσεις (σε ακτίνα) Αντίστροφες τριγωνοµετρικές συναρτήσεις (σε µοίρες) Υπερβολικές συναρτήσεις Αντίστροφες υπερβολικές συναρτήσεις Πραγµατικό και φανταστικό µέρος ενός µιγαδικού αριθµού, z Γωνία φάσεως µιγαδικού αριθµού Απόλυτη τιµή (µέτρο) ενός αριθµού Συζυγής µιγαδικού αριθµού

24 24 Εισαγωγικές Έννοιες max([x, y, ]) min([x, y, ]) mod(x, y) rand, randn eps(x) Το µεγαλύτερο στοιχείο της λίστας [x, y, ] Το µικρότερο στοιχείο της λίστας [x, y, ] Υπολογίζει το υπόλοιπο της ακέραιας διαίρεσης του x δια του y. ηµιουργία τυχαίων αριθµών. Αποδίδει την ακρίβεια µε την οποία αποθηκεύεται ο αριθµός x. Παραδείγµατα Μερικές εφαρµογές των παραπάνω συναρτήσεων δίνονται παρακάτω sqrt(2) sin(3.1) acos(0.71) tan(pi/4) exp(1) mod(23,5) 3

25 1.4 Εσωτερικές συναρτήσεις 25 Συνάρτηση rand Η συνάρτηση rand µπορεί να κληθεί και χωρίς όρισµα, και χρησιµοποιείται για τη δηµιουργία τυχαίων πραγµατικών αριθµών οµοιόµορφα κατανε- µηµένων στο διάστηµα [0, 1], µε τρόπο παρόµοιο όπως και στο γνωστό σε όλους µας ζάρι. Κάθε φορά που καλείται παράγει και διαφορετικό αριθµό, όπως και το ζάρι δίνει διαφορετικό αποτέλεσµα κάθε φορά που ρίχνεται, π.χ. rand rand rand Συνάρτηση randn Η συνάρτηση randn µπορεί να κληθεί και χωρίς όρισµα, και χρησιµοποιείται για τη δηµιουργία τυχαίων πραγµατικών αριθµών που ακολουθούν τη κανονική κατανοµή Ν(0, 1), δηλαδή µε µέση τιµή της κατανοµής ίση µε το µηδέν και διασπορά τη µονάδα. Κάθε φορά που καλείται παράγει και διαφορετικό αριθµό, όπως π.χ. randn randn randn

26 26 Εισαγωγικές Έννοιες Συνάρτηση eps(x) Η παράµετρος eps(x) προσδιορίζει την ακρίβεια µε την οποία αποθηκεύεται ο αριθµός x στη µνήµη του υπολογιστή, όπως π.χ. eps(1) e-016 eps(realmax) e+292 eps(realmin) e-324 eps(0) e Γενικές παρατηρήσεις Α) Όρισµα τριγωνοµετρικών συναρτήσεων Σηµειώστε ότι στο MATLAB ορίζονται τριγωνοµετρικές συναρτήσεις µε όρισµα τόσο σε ακτίνια όσο και σε µοίρες. Τα ονόµατα των τριγωνοµετρικών συναρτήσεων είναι διαφορετικά για τις δύο αυτές περιπτώσεις. Στο όνοµα της συνάρτησης προστίθεται το γράµµα d (degree), όταν το όρισµα της είναι σε µοίρες. sin(pi/7) cos(2*pi/7) tand(45)

27 1.5 ιαγραφή παραµέτρων sind(135) Β) Μικρά και κεφαλαία γράµµατα Τέλος, το MATLAB, από την έκδοση 7, ξεχωρίζει τα µικρά από τα κεφαλαία γράµµατα, γεγονός που συνεπάγεται ότι όταν µικρά γράµµατα µιας εντολής γίνουν κεφαλαία (και αντίστροφα), τότε η εντολή αυτή δεν είναι αναγνωρίσιµη από το MATLAB και δεν εκτελείται, π.χ. η εντολή Log(12.5) είναι διαφορετική από την log(12.5), και δεν υπάρχει ως εσωτερική συνάρτηση, Log(2.2)??? Undefined function or method 'Log' for input arguments of type 'double'. log(2.2) ιαγραφή παραµέτρων Όλες οι παράµετροι που εισάγονται στο πρόγραµµα καταχωρούνται στο χώρο λειτουργίας του προγράµµατος (workspace), και µπορούν να χρησιµοποιηθούν στους επόµενους υπολογισµούς µε τρόπο αντίστοιχο µε αυτόν που χρησιµοποιούνται και οι συναρτήσεις. Έχουµε επίσης τη δυνατότητα να διαγράψουµε από τη µνήµη του υπολογιστή τόσο µεταβλητές όσο και συναρτήσεις µε τη χρήση της κατάλληλης εντολής. Οι εντολές που υπάρχουν για το σκοπό αυτό είναι οι ακόλουθες, clear clear variable clear global ιαγράφει όλες τις µεταβλητές από το workspace Έχει το ίδιο αποτέλεσµα µε την προηγούµενη εντολή ιαγράφει όλες τις global µεταβλητές

28 28 Εισαγωγικές Έννοιες clear function clear all ιαγράφει όλες τις µορφοποιηµένες συναρτήσεις ιαγράφει όλες τις µεταβλητές και όλες τις µορφοποιηµένες συναρτήσεις Για τη διαγραφή του περιεχοµένου των υπόλοιπων παραθύρων, χρησιµοποιούνται οι επιλογές που εµφανίζονται µε το πάτηµα του δεξιού πλήκτρου του «ποντικιού» στο αντίστοιχο παράθυρο. 1.6 Σύνθετες εντολές Μέχρι τώρα αντιµετωπίσαµε απλές εντολές, µε καθεµιά απ αυτές να γράφεται σε µια µόνο γραµµή. Έχουµε όµως τη δυνατότητα να συντάξουµε εντολές που δεν µπορούν να αποδοθούν µε µία µόνο γραµµή, ή να δώσουµε ταυτόχρονα για εκτέλεση περισσότερες από µια εντολές. Στην πρώτη περίπτωση συνεχίζουµε την εντολή στην επόµενη γραµµή, ενώ στη δεύτερη συντάσσουµε µια σύνθετη εντολή. 1) Συνέχιση µιας εντολής Όταν µια εντολή δεν µπορεί να αποδοθεί µε µια µόνο γραµµή, τότε µπορούµε να τη συνεχίσουµε στην επόµενη γραµµή, τοποθετώντας τρεις τελείες στο σηµείο που γίνεται η διακοπή της εντολής, π.χ. (2+sqrt(11+3/7))... /(3+sin(21/85)) (2+sqrt(11+3/7))/(3+sin(21/85)) ) Σύνθετη εντολή Στη σύνθετη εντολή δίνουµε για εκτέλεση περισσότερες από µια εντολές, που συντάσσονται σε µια µόνο γραµµή. Οι επιµέρους εντολές διαχωρίζονται µεταξύ τους µε ένα από τα Αγγλικά σύµβολα,, ή ;. Στη

29 1.7 Μ - Αρχεία Εντολών 29 δεύτερη περίπτωση τo αποτέλεσµα της πράξης δεν εµφανίζεται στην οθόνη, διότι το σύµβολο ; είναι και τελεστής απόκρυψης, π.χ. 2/3,4^2,1/ /3;4^2;1/6; 1.7 Μ - Αρχεία Εντολών Για την εκτέλεση των υπολογισµών που παρουσιάστηκαν στις προηγούµενες παραγράφους, έγινε η σύνταξη και η εκτέλεση της αντίστοιχης εντολής µέσα από το παράθυρο διαχείρισης του MATLAB. Σε µια τέτοια διαδικασία όµως, επανέναρξη του MATLAB θα απαιτούσε την ανασύνταξη των εντολών για την εκτέλεση των πράξεων, πράγµα που είναι µια χρονοβόρα διαδικασία. Εµφανίζεται, επίσης, σε µερικές περιπτώσεις η αναγκαιότητα επανάληψης της εκτέλεσης µιας οµάδας εντολών, µετά από ενδεχόµενη τροποποίηση των αριθµητικών τιµών µερικών παραµέτρων. Για να διευκολυνθούν οι παραπάνω διαδικασίες, θα πρέπει να γίνεται αποθήκευση των εντολών αυτών σ ένα αρχείο, το οποίο θα καλείται από το παράθυρο διαχείρισης για να εκτελεστούν οι ζητούµενοι υπολογισµοί. Τα αρχεία αυτά καλούνται αρχεία εντολών (script files), και επειδή πρέπει υποχρεωτικά να τους αποδοθεί ένα όνοµα που να έχει την κατάληξη.m, καλούνται επίσης και Μ-αρχεία εντολών. Η βασικότερη ιδιότητα των Μ-αρχείων εντολών είναι ότι η κλήση τους ισοδυναµεί µε εκτέλεση των εντολών που περιέχουν µέσα από το παράθυρο διαχείρισης (χωρίς υποχρεωτικά να γίνεται και η εκτύπωση τους σ αυτό). Η συνέπεια µιας τέτοιας λειτουργίας είναι ότι οι εντολές των Μ- αρχείων εκτελούνται µέσα στο βασικό χώρο λειτουργίας του MATLAB,

30 30 Εισαγωγικές Έννοιες όπως και οι εντολές που δίνονται από το παράθυρο διαχείρισης. Εποµένως, µπορούν να αξιοποιούν όλα τα αποτελέσµατα που βρίσκονται ήδη αποθηκευµένα µέσα στο χώρο αυτό, και αντιστρόφως, τα αποτελέσµατα που παράγουν µε την εκτέλεση τους αποθηκεύονται στο βασικό χώρο λειτουργίας του προγράµµατος, και έτσι µπορούν να αξιοποιηθούν από µετέπειτα υπολογισµούς µε εντολές µέσα από το παράθυρο διαχείρισης του MATLAB. Για τη σύνταξη ενός Μ-αρχείου πρέπει να χρησιµοποιηθεί ένας κειµενογράφος ASCII (editor), όπως π.χ. ο κειµενογράφος του MATLAB, η εκκίνηση του οποίου γίνεται από τη διεύθυνση File New M-file. Μέσα στο παράθυρο που εµφανίζεται, συντάσσονται οι εντολές, όπως ακριβώς θα συντάσσονταν και µέσα στο παράθυρο διαχείρισης του MATLAB. Τα αρχεία αυτά αποθηκεύονται µέσα στην ενεργό διεύθυνση αποθήκευσης του MATLAB, ώστε να υπάρχει η δυνατότητα άµεσης εκτέλεσης τους, µε την κλήση του ονόµατος τους. Παράδειγµα Το παρακάτω παράδειγµα δίνει ένα Μ-αρχείο εντολών, το οποίο είναι αποθηκευµένο µε το όνοµα example1.m, για τον υπολογισµό του µήκους της διαδροµής που διανύει ένα κινητό µε σταθερή ταχύτητα, σε δοσµένο χρόνο. Το αρχείο αυτό είναι αποθηκευµένο στη διεύθυνση λειτουργίας του προγράµµατος, velocity=50; travelingtime=60; distance=velocity*travelingtime; distance Η κλήση του αρχείου µε τη χρήση του ονόµατος του, συνεπάγεται την εκτέλεση των εντολών που είναι αποθηκευµένες σ αυτό, όπως φαίνεται παρακάτω, >> example1 distance=

31 1.7 Μ - Αρχεία Εντολών Εντολή echo Όπως αναφέραµε παραπάνω, η κλήση ενός Μ-αρχείου εντολών δεν σηµαίνει υποχρεωτικά και την εκτύπωση των εντολών του στο παράθυρο διαχείρισης. Η κλήση της βοηθητικής εντολής echo on, πριν από την κλήση του Μ-αρχείου, επιβάλει και την εκτύπωση των εντολών µέσα στο παράθυρο διαχείρισης, όπως γίνεται π.χ. στο παρακάτω παράδειγµα, >> echo on >> example1 velocity=50; travelingtime=60; distance=velocity*travelingtime; disp('distance= '),disp(distance) distance= 3000 >> echo off Στο τέλος της διαδικασίας δίνουµε την εντολή echo off, για να επιστρέψει το σύστηµα στην προηγούµενη του κατάσταση Κυψελωτή δοµή αρχείου Ένα Μ-αρχείο εντολών µπορεί να χωριστεί σε κυψέλες (cells) µε τη χρήση του διπλού συµβόλου %%, το οποίο τοποθετείται στην αρχή και το τέλος µιας οµάδας εντολών που θέλουµε να δηλώσουµε ότι αποτελούν µια κυψέλη. Η χρησιµότητα µιας κυψέλης έγκειται στο γεγονός ότι µπορεί να εκτελεστεί ξεχωριστά, µέσα από το κειµενογράφο (editor) του MATLAB, χρησιµοποιώντας το αντίστοιχο εικονίδιο της µπάρας. Με το τρόπο αυτό µπορούµε να εκτελέσουµε ένα µόνο κοµµάτι του προγράµµατος, και να ελέγξουµε σταδιακά το πρόγραµµα. Μια περίπτωση διαχωρισµού σε δύο κυψέλες του προγράµµατος που αναφέρεται στο παράδειγµα της παραγράφου 1.7, δίνεται παρακάτω,

32 32 Εισαγωγικές Έννοιες %% echo on velocity=50; travelingtime=60; %% distance=velocity*travelingtime; disp('distance= '),disp(distance) echo off %% 1.8 Προσέγγιση αριθµητικών τιµών Αρκετές φορές, τα δεκαδικά αποτελέσµατα που προκύπτουν από τους υπολογισµούς χρειάζεται να προσεγγιστούν από ένα γειτονικό ακέραιο αριθµό, ή να προσεγγιστούν µε ένα δεκαδικό αριθµό µε λιγότερα ψηφία. Για τις διαδικασίες αυτές υπάρχουν εσωτερικές εντολές, εκ των οποίων οι πιο χρήσιµες δίνονται παρακάτω. Εφαρµογή των εντολών γίνεται µε τη χρήση της παραµέτρου 2, a=sqrt(2) a = [1] ceil(a), υπολογίζει για την παράµετρο a τον πλησιέστερο προς τα πάνω ακέραιο αριθµό. ceil(a) 2 [2] floor(a), υπολογίζει για την παράµετρο a τον πλησιέστερο προς τα κάτω ακέραιο αριθµό.

33 1.9 Εντολές διαχείρισης 33 floor(a) 1 [3] fix(a), υπολογίζει για την παράµετρο a τον πλησιέστερο ακέραιο προς την κατεύθυνση του µηδενός. fix(a) 1 [4] round(a), υπολογίζει τον πλησιέστερο στον α ακέραιο αριθµό. round(a) 1 [5] chop(a, n), προσεγγίζει τον δεκαδικό αριθµό a µε ένα δεκαδικό µε n ψηφία. chop(a,3) Εντολές διαχείρισης Βοήθεια: Μέσα από το παράθυρο διαχείρισης µπορούµε να ζητήσουµε βοήθεια για τον τρόπο εκτέλεσης µιας συνάρτησης ή µιας εντολής, δίνοντας την εντολή help name όπου name το όνοµα της συνάρτησης ή της εντολής για την οποία ζητάµε βοήθεια, π.χ. help log

34 34 Εισαγωγικές Έννοιες LOG Natural logarithm. LOG(X) is the natural logarithm of the elements of X. Complex results are produced if X is not positive. Το MATLAB διαθέτει επίσης εκτεταµένο ηλεκτρονικό βοήθηµα που περιγράφει τη χρήση του. Το βοήθηµα εµφανίζεται σε ξεχωριστό παράθυρο, πατώντας το πλήκτρο F1. Στο παράθυρο αυτό υπάρχει τόσο αλφαβητικό ευρετήριο όσο και πίνακας περιεχοµένων, απ όπου µπορούν να αναζητηθούν πληροφορίες για µια συνάρτηση ή εντολή. Εισαγωγή σχολίων: Σ ένα αρχείο εντολών µπορούµε να εισάγουµε σχόλια, που θα υπενθυµίζουν στο χρήστη τη σκοπιµότητα και δοµή του προγράµµατος. Οι εντολές αυτές δεν είναι εκτελέσιµες από το πρόγραµµα. Ένας τρόπος για να γίνει αυτό είναι µε την εισαγωγή του συµβόλου % στο σηµείο απ όπου αρχίζει το σχόλιο (στην αρχή ή στο µέσο µιας γραµµής) και την επανάληψη του στην αρχή κάθε επόµενης γραµµής που περιέχει σχόλια, όπως γίνεται στο επόµενο παράδειγµα, % This is an M-file, with the name example1.m, % for the calculation of the traveled distance. % velocity=50; travelingtime=60; distance=velocity*travelingtime; disp('distance= '),disp(distance) Όταν όµως ένα σχόλιο εκτείνεται σε περισσότερες από µία γραµµές, µπορούµε µεν να το εισάγουµε µε τον τρόπο που ορίσαµε παραπάνω, όµως η διαδικασία να τοποθετούµε το σύµβολο % στην αρχή κάθε µιας γραµµής δεν είναι η πιο εύχρηστη. Ένας δεύτερος τρόπος εισαγωγής γίνεται µε την τοποθέτηση του διπλού συµβόλου %{ στην πρώτη γραµµή του σχολίου, ως µοναδικό περιεχόµενο της γραµµής αυτής, και του %} στην τελευταία γραµµή, πάλι ως µοναδικό περιεχόµενο της γραµµής αυτής, όπως π.χ. γίνεται στο επόµενο παράδειγµα,

35 1.9 Εντολές διαχείρισης 35 %{ This is an M-file, with the name example1.m, for the calculation of the traveled distance. %} velocity=50; travelingtime=60; distance=velocity*travelingtime; disp('distance= '),disp(distance) ιακοπή εκτέλεσης: Μπορούµε να διακόψουµε την εκτέλεση µιας εντολής πατώντας ταυτόχρονα Ctrlt C. Εκτύπωση αποτελεσµάτων: Μπορούµε να εκτυπώσουµε στην οθόνη την τιµή µιας παραµέτρου x, χρησιµοποιώντας την εντολή disp(x) Παράδειγµα a = disp(a) ιαγραφή οθόνης: Μπορούµε να διαγράψουµε το περιεχόµενο του παράθυρου διαχείρισης µε την εντολή clc

36 36 ΚΕΦΑΛΑΙΟ 2 ΚΕΦΑΛΑΙΟ 2 Λίστες Η λίστα (πίνακας) είναι ένα από τα βασικά εργαλεία του MATLAB, και µπορεί να χρησιµοποιηθεί για την αποθήκευση δεδοµένων υπό µορφή λογιστικού πίνακα, την αναπαράσταση αλγεβρικών µητρών, και την εκτέλεση µαθηµατικών πράξεων. Οι πράξεις που µπορούν να γίνουν µε τη χρήση µιας λίστας είναι είτε απλές αριθµητικές πράξεις, είτε πράξεις της γραµµικής άλγεβρας. Στην πρώτη περίπτωση η λίστα χρησιµοποιείται µε τρόπο παρόµοιο µε αυτόν ενός λογιστικού φύλλου µε κελιά (spreadsheet), όπως αυτά που χρησιµοποιούν τα περισσότερα προγράµµατα διαχείρισης δεδοµένων (π.χ. το Excel), ενώ στη δεύτερη ως αλγεβρική µήτρα. Στο παρόν κεφάλαιο θα κάνουµε αφενός µια εισαγωγή στις λίστες, και αφετέρου θα παρουσιάσουµε τη χρήση τους για την εκτέλεση απλών αριθµητικών πράξεων, όπως στα λογιστικά φύλλα, αφήνοντας για το κεφάλαιο 9 τη χρήση τους ως µητρών για εκτέλεση πράξεων της γραµµικής άλγεβρας. 2.1 Ορισµός λίστας Μια λίστα (πίνακας) αποτελείται από ένα σύνολο στοιχείων που είναι τοποθετηµένα µε µια καθορισµένη σειρά, και κάθε στοιχείο της χαρακτηρίζεται από έναν ή περισσότερους δείκτες που δηλώνουν τη θέση του στη λίστα. Ειδικά, µια µονοδιάστατη λίστα αποτελείται από στοιχεία που

37 2.1 Ορισµός λίστας 37 είναι τοποθετηµένα σε µια γραµµή, και χαρακτηρίζονται από ένα δείκτη που δηλώνει τη θέση του στοιχείου στη γραµµή αυτή. Μια δισδιάστατη λίστα αποτελείται από ένα σύνολο στοιχείων που είναι τοποθετηµένα σε γραµµές και στήλες, και κάθε στοιχείο χαρακτηρίζεται από δύο δείκτες που δηλώνουν τη γραµµή και τη στήλη στην οποία ανήκει. Η διαδικασία αυτή µπορεί εύκολα να γενικευτεί για λίστες περισσοτέρων διαστάσεων. Για να ορίσουµε µια λίστα στο MATLAB χρησιµοποιούµε τετραγωνικές αγκύλες, [ ], µέσα στις οποίες τοποθετούµε τα στοιχεία της. Τα στοιχεία µιας γραµµής χωρίζονται µε κόµµατα ή κενά. ιαφορετικές γραµµές της λίστας χωρίζονται µε το σύµβολο ;, ή εισάγονται σε διαφορετικές γραµµές, όπως π.χ. οι ακόλουθες ποσότητες a1=[2, 7, 71, 8, 9] a1 = a2=[3 8; 4 5] a2 = a2=[ ] a2 = µε ονόµατα a1 και a2, και αντιπροσωπεύουν σε µια µονοδιάστατη και µια δισδιάστατη λίστα αντίστοιχα Τροποποίηση στοιχείων λίστας Όπως αναφέραµε, τα στοιχεία µιας λίστας χαρακτηρίζονται µε δείκτες, που δηλώνουν τη θέση του στοιχείου, π.χ. τη γραµµή και τη στήλη στην οποία ανήκει για µια δισδιάστατη λίστα. Στο MATLAB οι δείκτες της λίστας τοποθετούνται µέσα σε παρενθέσεις, π.χ. το a(i, j) δηλώνει το στοιχείο (i, j)

38 38 Λίστες της δισδιάστατης λίστας a. Για µονοδιάστατες λίστες έχουµε ένα µόνο δείκτη, π.χ. a1(i). Μπορούµε να τυπώσουµε στην οθόνη ένα στοιχείο µιας λίστας καλώντας το µε τους δείκτες του, π.χ. το στοιχείο (i, j) µιας δισδιάστατης λίστας a καλείται την εντολή a(i, j). Μπορούµε επίσης να τροποποιήσουµε την τιµή ενός στοιχείου, καλώντας το και αποδίδοντας του νέα τιµή, µε την εντολή της ανάθεσης, a(i, j,...) = νέα τιµή Παραδείγµατα Χρησιµοποιώντας τις λίστες a1, a2 που ορίσαµε παραπάνω έχουµε τα παρακάτω αποτελέσµατα, a1(3)=11 a1 = a2(2, 1)=13 a2 = Χαρακτηριστικά λίστας Μια λίστα χαρακτηρίζεται από τον αριθµό των γραµµών και στηλών της. Μια λίστα µε m γραµµές και n στήλες, δηλώνεται στα µαθηµατικά ως µία m n λίστα (πίνακας). Ειδικά, µια m 1 λίστα αντιπροσωπεύει µια λίσταστήλη µε m γραµµές, ενώ µια 1 n λίστα, µια λίστα-γραµµή µε n στήλες. Οι εντολές που προσδιορίζουν τα χαρακτηριστικά µιας λίστας δίνονται παρακάτω. [1] Size: Η εντολή αυτή προσδιορίζει τις διαστάσεις µιας λίστας, δηλαδή προσδιορίζει τις τιµές των στοιχείων m και n που περιγράφουν τη λίστα. Π.χ. για τις λίστες a1, a2, που ορίστηκαν παραπάνω έχουµε, size(a1)

39 2.2 Ειδικές εντολές δηµιουργίας λίστας size(a2) 2 2 [2] Length: Ως µήκος µιας λίστας ορίζεται η µεγαλύτερη τιµή από τις διαστάσεις της, δηλαδή η µεγαλύτερη τιµή από τα στοιχεία m και n, οπότε για τις λίστες a1 και a2, που ορίστηκαν παραπάνω έχουµε, length(a1) 5 length(a2) 2 [3] Numel: Προσδιορίζει το συνολικό αριθµό των στοιχείων µιας λίστας, οπότε για τις λίστες a1 και a2, που ορίστηκαν παραπάνω έχουµε, numel(a1) 5 numel(a2) Ειδικές εντολές δηµιουργίας λίστας Στην προηγούµενη παράγραφο παρουσιάσαµε έναν τρόπο δηµιουργίας µιας λίστας, ορίζοντας τα στοιχεία της ένα προς ένα. Η διαδικασία όµως αυτή είναι χρονοβόρα για µεγάλες λίστες. Στην παρούσα παράγραφο θα παρουσιάσουµε µερικές ειδικές εντολές για να δηµιουργήσουµε ειδικές λίστες,

40 40 Λίστες αφήνοντας για το κεφάλαιο του προγραµµατισµού τη διαδικασία ορισµού λίστας της οποίας τα στοιχεία δίνονται µε συγκεκριµένες εκφράσεις Εντολή a_initial:a_step:a_final Μια βασική εντολή δηµιουργίας µιας µονοδιάστατης λίστας, από αριθµούς που µεταβάλλονται µε σταθερό βήµα, είναι η ακόλουθη a = a_initial:a_step:a_final η οποία παράγει τη µονοδιάστατη λίστα, µε όλους τους αριθµούς που ξεκινούν από το a_initial, αυξάνονται µε βήµα ίσο µε το a_step, και δεν είναι µεγαλύτεροι του a_final. Όταν το βήµα είναι ίσο µε τη µονάδα, τότε µπορεί να παραληφθεί. Παραδείγµατα d1=1:2:10 d1 = d11=1:9 d11 = Η ίδια εντολή µπορεί να χρησιµοποιηθεί και στη δηµιουργία µιας δισδιάστατης λίστας, της οποίας κάθε γραµµή δηµιουργείται ως µονοδιάστατη λίστα µε τη χρήση της παραπάνω εντολής, π.χ. d2=[1:1:5; 2:2:10; 1:.5:3] d2 = Εντολή linspace(a1, a2, a3) Η εντολή a = linspace(a1, a2, a3)

41 2.2 Ειδικές εντολές δηµιουργίας λίστας 41 παράγει µια µονοδιάστατη λίστα που το πλήθος των στοιχείων της είναι ίσο µε a3, και τα οποία είναι ισοκατανεµηµένα µεταξύ a1 και a2, π.χ. linspace(1,4,5) Εντολές zeros(n, m) και zeros(n) Η εντολή zeros(m, n) δηµιουργεί µια λίστα διαστάσεων m n µε όλα της τα στοιχεία ίσα µε το µηδέν. Η τετραγωνική λίστα zeros(n, n) δηµιουργείται και µε την εντολή zeros(n). Παραδείγµατα zeros(2,3) zeros(3) Εντολές ones(n, m) και ones(n) Η εντολή ones(m, n) δηµιουργεί µια λίστα διαστάσεων m n µε όλα της τα στοιχεία ίσα µε τη µονάδα. Η τετραγωνική λίστα ones(n, n) δηµιουργείται και µε την εντολή ones(n).

42 42 Λίστες Παραδείγµατα ones(2,3) ones(3) Εντολή eye(n) Η εντολή eye(n) δηµιουργεί τη µοναδιαία λίστα διαστάσεων n n, π.χ. eye(3) Εντολή diag(a) Η εντολή diag(a) όπου a µια µονοδιάστατη λίστα µε n στοιχεία, δηµιουργεί µια τετραγωνική διαγώνιο λίστα διαστάσεων n n, µε µόνα δηλαδή µη µηδενικά στοιχεία αυτά της διαγωνίου, τα οποία δίνονται από τα στοιχεία της λίστας a. Εάν όµως η εντολή diag δοθεί µε όρισµα µια τετραγωνική λίστα, τότε αποδίδει ως λίστα-στήλη τη διαγώνιο της λίστας αυτής, π.χ.

43 2.2 Ειδικές εντολές δηµιουργίας λίστας 43 c=diag([1,2,3,4]) diag(c) Εντολή magic(n) Η εντολή magic(n) δηµιουργεί την τετραγωνική λίστα διαστάσεων n n, η οποία έχει την ιδιότητα ότι το άθροισµα των στοιχείων µιας οποιασδήποτε σειράς, ή στήλης, ή των διαγωνίων της, είναι το ίδιο. Παράδειγµα magic(4) Εντολές rand(n, m) και rand(n) Όταν η συνάρτηση rand, κληθεί µε όρισµα δύο ακεραίους αριθµούς, µε την εντολή rand(m, n)

44 44 Λίστες τότε δηµιουργεί µια λίστα διαστάσεων m n, µε τα στοιχεία της τυχαίους αριθµούς που είναι κατανεµηµένοι οµοιόµορφα στο διάστηµα [0, 1]. Η τετραγωνική λίστα rand(n, n) δηµιουργείται και µε την εντολή rand(n). Παραδείγµατα rand(2,3) rand(3) Εντολές randn(n, m) και randn(n) Όταν η συνάρτηση randn, κληθεί µε όρισµα δύο ακεραίους αριθµούς, µε την εντολή randn(m, n) τότε δηµιουργεί µια λίστα διαστάσεων m n και µε στοιχεία τυχαίους αριθµούς που ακολουθούν την κανονική κατανοµή Ν(0, 1). Η τετραγωνική λίστα randn(n, n) δηµιουργείται και µε την εντολή randn(n). Παραδείγµατα randn(2,3) randn(3)

45 2.3 ιαχείριση λίστας ιαχείριση λίστας Παρουσιάσαµε στην παράγραφο 2.1 µια εντολή που χρησιµοποιείται για να γίνει αναφορά σε ένα στοιχείο µιας λίστας, µε τη χρήση του ονόµατος της και του δείκτη (δείκτες), που καθορίζει (καθορίζουν) τη θέση του στοιχείου στη λίστα, ως όρισµα. Με τον παραπάνω όµως τρόπο, χρειάζεται µια ξεχωριστή εντολή για κάθε στοιχείο της λίστας στο οποίο θέλουµε να αναφερθούµε. Στην παρούσα παράγραφο η διαδικασία αυτή θα γενικευτεί ώστε µε µια εντολή να γίνεται αναφορά σε περισσότερα του ενός στοιχεία της λίστας Πολλαπλή αναφορά σε στοιχεία λίστας Στην περίπτωση που χρειάζεται να γίνει αναφορά σε περισσότερα του ενός στοιχεία µιας µονοδιάστατης λίστας, τότε στη θέση του ενός δείκτη τοποθετείται µονοδιάστατη λίστα µε τους δείκτες που καθορίζουν τις θέσεις των ζητούµενων στοιχείων, π.χ. a1=12:20; a1([1,3,7]) Σε πολυδιάστατη λίστα, κάθε δείκτης αναφοράς µπορεί να αντικατασταθεί µε µια µονοδιάστατη λίστα. Για τον προσδιορισµό των στοιχείων, γίνεται συνδυασµός όλων των αναφεροµένων τιµών ενός δείκτη (που καθορίζονται από τα στοιχεία της µονοδιάστατης λίστας) µε αυτές όλων των άλλων, αποδίδοντας τα στοιχεία που έτσι προκύπτουν υπό µορφή λίστας, π.χ. a=magic(5)

46 46 Λίστες a = a([1,2,4], 2) a([1, 3], [2, 4]) Επίσης, υπάρχει η δυνατότητα να τοποθετηθεί η εντολή δηµιουργίας του ανύσµατος µέσα στο όρισµα του a, όπως π.χ. στις παρακάτω εντολές a(1:3,2) a(2,2:end) 32 7 όπου οι εντολές 1:3 και 2:end, που δηµιουργούν το άνυσµα, τοποθετούνται ως όρισµα του a. Με µια εντολή της µορφής i:end δηµιουργείται µία λίστα µε το δείκτη να µεταβάλλεται από το i µέχρι τη µεγαλύτερη επιτρεπτή του τιµή για τη λίστα αυτή. Τέλος αναφέρουµε, ότι στην περίπτωση όπου στη θέση ενός δείκτη τοποθετείται µόνο το σύµβολο :, χωρίς δηλαδή να δηλώνεται το εύρος της

47 2.3 ιαχείριση λίστας 47 µεταβολής του αντίστοιχου δείκτη, τότε χρησιµοποιείται το µέγιστο δυνατό εύρος του συγκεκριµένου δείκτη για τη λίστα αυτή, π.χ. a(2, :) Αναγωγή λίστας σε µονοδιάστατη λίστα-στήλη Όταν µια τυχούσα λίστα κληθεί µε ένα µόνο δείκτη, και ο δείκτης αυτός είναι το σύµβολο :, τότε αποδίδεται µια µονοδιάστατη λίστα-στήλη που περιέχει όλες τις στήλες της αρχικής λίστας, τη µια κάτω από την άλλη, a2 =[ ] a2(:) Επίσης όταν µια τυχούσα λίστα κληθεί µε ένα µόνο δείκτη, µε συγκεκριµένη αριθµητική τιµή, τότε αποδίδεται το αντίστοιχο στοιχείο της ανηγµένης µονοδιάστατης λίστας που δηµιουργείται µε την τοποθέτηση όλων των στηλών της αρχικής λίστας, τη µια κάτω της άλλης, π.χ. a2(3) 3 a2(end) 2

48 48 Λίστες Αναφορά σε στοιχεία λίστας µε λογική εντολή Μια από τις δυνατότητες που έχει το MATLAB είναι να κάνει αναφορά σε στοιχεία λίστας µε τη χρήση µιας λογικής εντολής, η οποία τοποθετείται ως όρισµα της λίστας, οπότε αποδίδεται µια λίστα µε στοιχεία τα στοιχεία της αρχικής που ικανοποιούν τη λογική αυτή εντολή. Στη µονοδιάστατη λίστα, αποδίδεται µια µονοδιάστατη λίστα-γραµµή µε τα στοιχεία που ικανοποιούν τη λογική εντολή, ενώ στη δισδιάστατη, µια µονοδιάστατη λίστα-στήλη µε τα αντίστοιχα στοιχεία. Παραδείγµατα Παρακάτω παραθέτουµε τη χρήση µιας λογικής εντολής σε µονοδιάστατη και δισδιάστατη λίστα, b=1:10; b(b>5) a=magic(4); a(a>8) Πολλαπλή τροποποίηση στοιχείων λίστας Όπως αναφέρθηκε στην παράγραφο 2.1, έχουµε τη δυνατότητα τροποποίησης στοιχείων µιας λίστας. Η διαδικασία για την τροποποίηση ενός στοιχείου είναι η κλήση του στοιχείου αυτού, και η απόδοση της νέας του τιµής. Η γενίκευση της παραπάνω διαδικασίας για την τροποποίηση περισσοτέρων στοιχείων µε µία εντολή, είναι η κλήση των στοιχείων αυτών

49 2.3 ιαχείριση λίστας 49 µε µια εντολή, και η απόδοση των νέων τους τιµών µε τη µορφή µιας λίστας. Η λίστα που αποδίδει τις νέες τιµές πρέπει απαραίτητα να έχει την ίδια δοµή µε αυτή που δηµιουργείται µε την κλήση των στοιχείων αυτών. Ο πιο απλός τρόπος για τον προσδιορισµό της δοµής της λίστας αυτής, και την αποφυγή λαθών, είναι να γίνεται πρώτα κλήση των στοιχείων που είναι προς αναθεώρηση, να προσδιορίζεται η δοµή της λίστας που δηµιουργείται, και µετά να αποδίδονται οι νέες τιµές µε αυτή τη δοµή. Παράδειγµα Έστω η λίστα a=magic(4) a = Στοιχεία προς τροποποίηση a(2:3,1:2) Λίστα µε τις νέες τιµές των στοιχείων a1=[11 7; 8 5] a1 = Τροποποίηση των στοιχείων a(2:3,1:2)=a1 a =

50 50 Λίστες Απάλειψη γραµµής ή στήλης λίστας Μπορούµε επίσης να απαλείψουµε µια γραµµή ή στήλη µιας λίστας, µε το να αντικαταστήσουµε τη γραµµή αυτή ή στήλη µε την κενή λίστα, που δηλώνεται µε το σύµβολο []. Παράδειγµα Με τις παρακάτω εντολές γίνεται απαλοιφή τις τρίτης γραµµής της λίστας a που δηµιουργήθηκε παραπάνω a(3,:)=[] a = και κατόπιν απαλοιφή της δεύτερης της στήλης a(:,2)=[] a = Συνενώνοντας λίστες H δηµιουργία µιας σύνθετης λίστας S, συνενώνοντας άλλες λίστες, A, B, C, D,, γίνεται στο MATLAB µε απλό τρόπο, όπως και η δηµιουργία µιας νέας λίστας, µε την παράθεση των A, B, ως στοιχείων της σύνθετης λίστας. Η µόνη προϋπόθεση γι αυτή τη διαδικασία είναι να ικανοποιούνται οι απαραίτητες συνθήκες ισότητας του αριθµού γραµµών ή στηλών, ανάλογα

51 2.4 Συνενώνοντας λίστες 51 µε την περίπτωση, για τις επιµέρους λίστες. Ειδικότερα αναφέρουµε τις παρακάτω περιπτώσεις: 1) Σύνθετη λίστα µε συνένωση γραµµών Η εντολή για τη δηµιουργία σύνθετης λίστας µε τη συνένωση των γραµµών δύο ή περισσοτέρων λιστών είναι S =[A, B, ] Η απαραίτητη προϋπόθεση είναι οι λίστες Α, Β,... να έχουν τον ίδιο αριθµό γραµµών, π.χ. A1=[1 3;8 4]; A2=[3 7 2;9 4 6]; S=[A1 A2] S = ) Σύνθετη λίστα µε συνένωση στηλών Η εντολή για τη δηµιουργία σύνθετης λίστας µε τη συνένωση των στηλών για δύο ή περισσότερες λίστες είναι S =[A; B; ] Η απαραίτητη προϋπόθεση είναι οι λίστες Α, Β,... να έχουν τον ίδιο αριθµό στηλών, π.χ. B1=[1 7 9; 5 8 4]; B2=[3 8 6; 6 9 4; 4 9 6]; S=[B1; B2] S =

52 52 Λίστες ) Γενική περίπτωση Η γενική εντολή για να συνενωθούν λίστες είναι η παρακάτω, S =[A1 Α2...; B1 Β2...; ] Η απαραίτητη προϋπόθεση για τη συνένωση αυτή είναι οι επιµέρους λίστες που βρίσκονται στη ίδια γραµµή της σύνθετης λίστας να έχουν τον ίδιο αριθµό γραµµών, το δε άθροισµα των στηλών για τις επιµέρους λίστες που βρίσκονται στη ίδια γραµµή της σύνθετης λίστας να είναι το ίδιο για όλες τις γραµµές της, π.χ. C1=[1 4; 7 8]; C2=[3 8 7; 8 7 3]; C3=[7 9 6; 9 5 7; 8 5 4]; C4=[8 6; 6 1; 7 5]; S=[C1 C2; C3 C4] S = Πράξεις µε λίστες Στην παρούσα παράγραφο θα αναφερθούµε στην περίπτωση απλών αριθµητικών πράξεων µε λίστες, που εκτελούνται όπως και στα λογιστικά φύλλα. Οι τελεστές που χρησιµοποιούνται στο MATLAB για την εκτέλεση των πράξεων αυτών παρουσιάζονται παρακάτω. Επίσης στα επόµενα παραδείγµατα χρησιµοποιούνται για εφαρµογές οι παρακάτω δύο 3x3 λίστες A και B,

53 2.5 Πράξεις µε λίστες 53 A=[7,7,6; 1,9,4; 5,4,1]; B=[11,6,5; 7,5,9; 8,6,2]; 1. Πρόσθεση ή αφαίρεση αριθµού σε λίστα. Πρόσθεση (αφαίρεση) ενός αριθµού σε µία λίστα συνεπάγεται πρόσθεση (αφαίρεση) του αριθµού αυτού σε όλα τα στοιχεία της λίστας. Οι τελεστές του MATLAB που εκτελούν τις πράξεις αυτές είναι οι ίδιοι τελεστές της πρόσθεσης και αφαίρεσης της αριθµητικής + και -, και οι εντολές επίδρασης τους σε λίστες είναι οι ακόλουθες, A+c και A-c [1] Χρησιµοποιώντας τη λίστα Α που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, A A Από την αριθµητική γνωρίζουµε ότι η πρόσθεση αριθµών είναι µια πράξη που ικανοποιεί την αντιµεταθετική ιδιότητα, όπως επιβεβαιώνεται και από το παρακάτω παράδειγµα, A+2==2+A

54 54 Λίστες Πολλαπλασιασµός ή διαίρεση λίστας µε αριθµό. Ο πολλαπλασιασµός (διαίρεση) µιας λίστας µε έναν αριθµό συνεπάγεται πολλαπλασιασµό (διαίρεση) όλων των στοιχείων της λίστας µε τον αριθµό αυτό. Οι τελεστές του MATLAB που εκτελούν τις πράξεις αυτές είναι οι τελεστές του πολλαπλασιασµού και της διαίρεσης της αριθµητικής *, / και \, και οι εντολές είναι οι ακόλουθες, c*a, A/c και c\a [2] Χρησιµοποιώντας τη λίστα Α που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, 3*A A/ Όπως αναφέρθηκε στην παράγραφο 1.2, στο MATLAB µπορούµε να εκτελέσουµε τη διαίρεση και µε το σύµβολο \, γράφοντας δηλαδή πρώτα το διαιρέτη και µετά το διαιρετέο, όπως φαίνεται στο επόµενο παράδειγµα, 3\A

55 2.5 Πράξεις µε λίστες 55 Στη διαίρεση λίστας µε αριθµό, οι ποσότητες A/c και c\a είναι µεταξύ τους ίσες, όπως επιβεβαιώνεται και µε το παραπάνω παράδειγµα. 3. Αθροίσµατα και διαφορές µε λίστες. Μπορούµε να αθροίσουµε (αφαιρέσουµε) δύο λίστες µόνο όταν αυτές έχουν τις ίδιες διαστάσεις. Το άθροισµα (διαφορά) αντιπροσωπεύει µια λίστα της οποίας τα στοιχεία είναι ίσα µε το άθροισµα (διαφορά) των αντίστοιχων στοιχείων των δύο λιστών. Οι τελεστές του MATLAB που εκτελούν τις πράξεις αυτές είναι οι τελεστές του αθροίσµατος και της διαφοράς της αριθµητικής + και -, και για δύο λίστες Α και Β, που ικανοποιούν τις παραπάνω συνθήκες, οι εντολές για το άθροισµα και τη διαφορά είναι οι ακόλουθες A+B, και Α-Β [3] Χρησιµοποιώντας τις δύο λίστες Α και Β, που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, A+B A-B Από την αριθµητική γνωρίζουµε ότι η πρόσθεση αριθµών είναι µια πράξη που ικανοποιεί την αντιµεταθετική ιδιότητα, όπως επιβεβαιώνεται και από το παρακάτω παράδειγµα, A+B==B+A 1 1 1

56 56 Λίστες Πολλαπλασιασµός (διαίρεση) µε λίστες. Μπορούµε να πολλαπλασιάσουµε (διαιρέσουµε) δύο λίστες µόνο όταν αυτές έχουν τις ίδιες διαστάσεις. Το γινόµενο (λόγος) τους ορίζεται ως η λίστα που προκύπτει από τον πολλαπλασιασµό (διαίρεση) των αντίστοιχων στοιχείων των δύο λιστών. Για δύο λίστες Α και Β, που ικανοποιούν τις παραπάνω συνθήκες, η εντολή για τον πολλαπλασιασµό και τη διαίρεση τους είναι αντίστοιχα A.*B και Α./Β Β.\Α Σχόλιο: Σε µια πράξη πολλαπλασιασµού (διαίρεσης) µε λίστες, ο τελεστής που εκτελεί την πράξη είναι διπλός, αποτελούµενος από το σύµβολο της τελείας,., ακολουθούµενο από το σύµβολο της αντίστοιχης αριθµητικής πράξης. Τέλος πρέπει να τονίσουµε, ότι οι πράξεις αυτές είναι τελείως διαφορετικές από τις πράξεις µε µήτρες, που θα ορίσουµε στην παράγραφο 9.2. [4] Χρησιµοποιώντας τις δύο λίστες Α και Β, που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, A.*B B.*A A./B

57 2.5 Πράξεις µε λίστες B.\A Επειδή οι πράξεις µε λίστες εκτελούνται στοιχείο προς στοιχείο, έπεται ότι οι ποσότητες A.*Β και Β.*A είναι ίσες µεταξύ τους, όπως και οι ποσότητες A./Β και Β.\A. 5. ύναµη λίστας. Σύµφωνα µε τον κανόνα που διέπει τον πολλαπλασιασµό, η λίστα A.^n αντιπροσωπεύει µια λίστα της οποίας τα στοιχεία είναι ίσα µε τη n-οστή δύναµη των στοιχείων της A. Ο εκθέτης n µπορεί να είναι και αρνητικός αριθµός. [5] Χρησιµοποιώντας τις δύο λίστες Α και Β, που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, A.^ A.^(-1)

58 58 Λίστες 1./A==A.^(-1) Ανάστροφη λίστα. Ανάστροφη µιας λίστας Α ορίζεται η λίστα που έχει ανεστραµµένες τις σειρές µε τις στήλες της, και υπολογίζεται µε την εντολή A. Ο τελεστής για τον υπολογισµό της ανάστροφης είναι διπλός, αποτελούµενος από την τελεία και την απόστροφο. Σηµειώστε όµως ότι υπάρχει και η εντολή Α, που ορίζεται στην παράγραφο 9.2, και διαφέρει από την παραπάνω στο ότι εκτός από αναστροφή στις γραµµές και στήλες, αντικαθιστά και το κάθε στοιχείο µε το µιγαδικό συζυγές του. Για πραγµατικές λίστες οι δύο εντολές προφανώς δίνουν το ίδιο αποτέλεσµα. [6] Χρησιµοποιώντας τις δύο λίστες Α και Β, που ορίσαµε παραπάνω, έχουµε τα εξής αποτελέσµατα, A.' B.' Επίδραση συνάρτησης σε λίστα Όταν µια εσωτερική συνάρτηση του MATLAB υπολογιστεί µε όρισµα µια λίστα, τότε η συνάρτηση αυτή επιδρά ξεχωριστά πάνω σε κάθε στοιχείο

59 2.6 Ειδικές συναρτήσεις 59 της λίστας αυτής. Η ιδιότητα αυτή των συναρτήσεων είναι πολύ σηµαντική, και µπορεί να αξιοποιηθεί για την εκτέλεση πολλαπλών υπολογισµών, για πολλές τιµές του ορίσµατος µιας συνάρτησης. Αντί δηλαδή να δίνεται διαφορετική εντολή εκτέλεσης της συνάρτησης για τις διάφορες τιµές του ορίσµατος της, δηµιουργείται µια λίστα µε τις τιµές αυτές, που χρησιµοποιείται ως όρισµα στην εκτέλεση της συνάρτησης. Παραδείγµατα [1] Να υπολογιστεί το ηµίτονο των γωνιών από µηδέν µέχρι π ακτίνια, µε βήµα π/4. sin([0:pi/4:pi]) [2] ηµιουργείστε µια 3 4 λίστα, µε την εντολή 10*rand(3, 4), και υπολογίστε το λογάριθµο των στοιχείων της, a=10*rand(3,4) a = log(a) Ειδικές συναρτήσεις Παρακάτω θα παρουσιάσουµε µερικές ειδικές συναρτήσεις, και τη δράση τους πάνω σε λίστες. Στα επόµενα παραδείγµατα χρησιµοποιούνται για εφαρµογές οι παρακάτω λίστες,

60 60 Λίστες a=11:20; A=[7,7,6; 1,9,4; 5,4,1]; 1. Συνάρτηση find. Η εντολή find δέχεται ως όρισµα µια λογική εντολή που περιέχει µια λίστα, της µορφής find(λογική_εντολή) και αποδίδει τους δείκτες των στοιχείων της λίστας που ικανοποιούν την εντολή αυτή. Για µονοδιάστατη λίστα, η εντολή αποδίδει µονοδιάστατη επίσης λίστα. Για δισδιάστατη, όταν η εντολή αποδοθεί σε µια παράµετρο τότε δίνει τους δείκτες των στοιχείων της ανηγµένης µονοδιάστατης λίστας, που προκύπτει µε τη συνένωση των στηλών της, που ικανοποιούν τη σχέση. Όταν όµως αποδοθεί σε λίστα µε δύο παραµέτρους, τότε αποδίδει τους δύο δείκτες (i, j) των στοιχείων της τετραγωνικής λίστας που ικανοποιούν τη σχέση. Οι δείκτες (i, j) αποδίδονται σε ξεχωριστές στήλες, των οποίων συνδυάζονται τα στοιχεία που βρίσκονται στις αντίστοιχες θέσεις. Παραδείγµατα Για τη µονοδιάστατη λίστα a που ορίσαµε παραπάνω, ζητούµε π.χ. τους δείκτες των µεγαλύτερων του 16 στοιχείων, find(a>16) Ενώ για δισδιάστατη λίστα Α, τα µεγαλύτερα του 6 στοιχεία της έχουν δείκτες, find(a>6) 1 4 5

61 2.6 Ειδικές συναρτήσεις 61 [i j]=find(a>6) i = j = Συνάρτηση min. Υπολογίζει το ελάχιστο στοιχείο µιας µονοδιάστατης λίστας, µε την εντολή min(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή min(a) υπολογίζει το ελάχιστο στοιχείο κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. min(a) min(a(:)) 1 3. Συνάρτηση max. Υπολογίζει το µέγιστο στοιχείο µιας µονοδιάστατης λίστας µε την εντολή max(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή max(a) υπολογίζει το µέγιστο στοιχείο κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. max(a)

62 62 Λίστες max(a(:)) 9 4. Συνάρτηση sum. Υπολογίζει το άθροισµα των στοιχείων µιας µονοδιάστατης λίστας µε την εντολή sum(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή sum(a) υπολογίζει το άθροισµα των στοιχείων κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. sum(a) sum(a(:)) Συνάρτηση prod. Υπολογίζει το γινόµενο των στοιχείων µιας µονοδιάστατης λίστας µε την εντολή prod(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή prod(a) υπολογίζει το γινόµενο των στοιχείων κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. prod(a) prod(a(:))

63 2.6 Ειδικές συναρτήσεις Συνάρτηση sort. Ταξινοµεί τα στοιχεία µιας µονοδιάστατης λίστας µε αύξουσα σειρά, µε την εντολή sort(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή sort(a) ταξινοµεί τα στοιχεία κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. Με την ίδια εντολή µπορούν να ταξινοµηθούν τα στοιχεία είτε µε αύξουσα είτε µε φθίνουσα σειρά, αρκεί να προσδιοριστεί και η διεύθυνση ταξινό- µησης, sort(a, mode ) η οποία προσδιορίζεται µε τη συµβολοσειρά mode, που δέχεται τις ακόλουθες επιλογές, 'ascend' για αύξουσα ταξινόµηση (προκαθορισµένη επιλογή) 'descend' για φθίνουσα ταξινόµηση. Παραδείγµατα sort(a,'ascend') sort(a,'descend')

64 64 ΚΕΦΑΛΑΙΟ 3 ΚΕΦΑΛΑΙΟ 3 Συµβολοσειρές Εκτός από αριθµούς, το MATLAB έχει επίσης τη δυνατότητα να διαχειρίζεται και κείµενο. Ένα κοµµάτι κείµενο αντιµετωπίζεται στο MATLAB ως µια σειρά από χαρακτήρες (σύµβολα), και ονοµάζεται συµβολοσειρά. Τους τρόπους διαχείρισης µιας συµβολοσειράς θα παρουσιάσουµε στο παρόν κεφάλαιο. 3.1 ηµιουργία συµβολοσειράς Μπορούµε να δηµιουργήσουµε µια συµβολοσειρά στο MATLAB, δηλώνοντας το κείµενο που περιλαµβάνει, και τοποθετώντας το µέσα σε απλά εισαγωγικά του Αγγλικού πληκτρολογίου. Η συµβολοσειρά µπορεί να αποδοθεί µε µια παράµετρο, π.χ. οι εντολές s1='introduction to strings' s1 = Introduction to strings s2='paragraph one' s2 = Paragraph one

65 3.2 ιαχείριση συµβολοσειράς 65 δηµιουργούν δύο συµβολοσειρές, που αποθηκεύονται στις παραµέτρους s1 και s2 αντίστοιχα. 3.2 ιαχείριση συµβολοσειράς Για το MATLAB, η συµβολοσειρά είναι ένα είδος λίστας, και τα σύµβολα µιας συµβολοσειράς αποθηκεύονται στην παράµετρο µε τρόπο αντίστοιχο εκείνου των στοιχείων µιας µονοδιάστατης λίστας. ιαχειριζόµαστε δε µια συµβολοσειρά µε τρόπο παρόµοιο µε αυτόν της λίστας, αποδίδοντας δείκτες στα διάφορα στοιχεία της, όµοια µε τη λίστα. Μερικές εντολές διαχείρισης µιας συµβολοσειράς δίνονται παρακάτω, και εφαρµόζονται στις συµβολοσειρές που ορίστηκαν στη παράγραφο Υπολογισµός του µήκους µιας συµβολοσειράς, µε την εντολή length, π.χ. length(s1) Επιλογή τµήµατος µιας συµβολοσειράς, µε επιλογή των αντίστοιχων θέσεων της λίστας, π.χ. s1(1) C s1(1:9) Character s1(11:16) string

66 66 Συµβολοσειρές 3. Τροποποίηση τµήµατος µιας συµβολοσειράς, όπως γίνεται και στη λίστα, µε επιλογή των αντίστοιχων θέσεων, όπως π.χ. η παρακάτω διόρθωση µιας συµβολοσειράς a='numperr' a = numperr a(7)=[] a = numper a(4)='b' a = number 4. Αντικατάσταση των χαρακτήρων µιας συµβολοσειράς µε τους αντίστοιχους κωδικούς αριθµούς ASCII, που γίνεται αυτόµατα όταν εκτελέσουµε µια αριθµητική πράξη µε τη συµβολοσειρά, π.χ. s2=s1*1 s2 = Columns 1 through Column Επαναφορά από την αναπαράσταση µε κωδικούς αριθµούς ASCII, σε κανονική αναπαράσταση, που γίνεται µε την εντολή char, π.χ. char(s2) Character string

67 3.2 ιαχείριση συµβολοσειράς Μετατροπή συµβολοσειράς µε δοµή γραµµής, σε δοµή στήλης, και αντίστροφα, µε την εντολή της ανάστροφης,, π.χ. s1(11:16)' s t r i n g 7. Συνένωση συµβολοσειρών, όπως γίνεται και στις λίστες, π.χ. η συνένωση των συµβολοσειρών u και w γίνεται µε την εντολή [u,w], s3=['part', ' ', 'one'] s3 = part one

68 68 ΚΕΦΑΛΑΙΟ 4 ΚΕΦΑΛΑΙΟ 4 Προγραµµατισµός Μέχρι τώρα χρησιµοποιήσαµε µεµονωµένες εντολές για την εκτέλεση πράξεων. Στο MATLAB όµως υπάρχει η δυνατότητα σύνταξης εκτεταµένων προγραµµάτων. Ο προγραµµατισµός αυτός γίνεται µε τρόπο παρόµοιο µε εκείνον των παραδοσιακών γλωσσών, όπως π.χ. FORTRAN, PASCAL, C κ.ο.κ. Στο παρόν κεφάλαιο θα γίνει µια εισαγωγή στον προγραµµατισµό αυτό. Οι βασικές εντολές του προγραµµατισµού χωρίζονται σε δύο κατηγορίες, τις εντολές ελέγχου ροής και τις εντολές για επαναληπτικές διαδικασίες. Στην πρώτη κατηγορία ανήκει η εντολή if, ενώ στη δεύτερη οι εντολές for και which. Οι εντολές αυτές παρουσιάζονται στις επόµενες παραγράφους. 4.1 Εντολή ελέγχου ροής: if Στα παραδείγµατα που παρουσιάσαµε σε προηγούµενα κεφάλαια, οι εντολές εκτελούνται διαδοχικά, η µια µετά την άλλη, χωρίς εξαίρεση. Σε πολλές όµως περιπτώσεις, είναι επιθυµητό το πρόγραµµα να επιλέγει µόνο του, µε βάση κάποιον αλγόριθµο, από ένα σύνολο εντολών αυτές που θα εκτελέσει. Η επιλογή αυτή γίνεται µε τη χρήση της εντολής ελέγχου if. Η τυπική δοµή µιας διαδικασίας if είναι η παρακάτω

69 4.1 Εντολή ελέγχου ροής: if 69 if εντολη_ελέγχου σύνολο εντολών _1 else σύνολο εντολών_2 end Το πρόγραµµα επιλέγει, ανάλογα µε το αποτέλεσµα της εντολής ελέγχου, πιο από τα δύο σύνολα εντολών θα εκτελέσει. Όταν η απάντηση στην εντολή ελέγχου είναι θετική, τότε εκτελεί το σύνολο εντολών_1, και παραλείπει το σύνολο εντολών_2, διαφορετικά εκτελεί το αντίστροφο. Όταν το σύνολο εντολών προς εκτέλεση στη δεύτερη οµάδα είναι κενό, τότε η δοµή της εντολής if γίνεται if εντολη_ελέγχου σύνολο εντολών_1 end Παραδείγµατα [1] Μπορούµε π.χ. να ορίσουµε την τιµή της παραµέτρου a ανάλογα µε την τιµή που έχει η παράµετρος b, όπως γίνεται στο παρακάτω παράδειγµα, όπου το a παίρνει την τιµή 33 όταν b>3, και την τιµή 21 διαφορετικά, if b>3 a=33; else a=21; end [2] Στο παρακάτω παράδειγµα, µε τη χρήση της εντολής if, ορίζουµε τις τιµές δύο µεταβλητών, ανάλογα µε την τιµή της παραµέτρου x, if x > 6 a = 2; b = 3; else

70 70 Προγραµµατισµός a = 5; b = 6; end disp(a), disp(b) Η παραπάνω δοµή µπορεί να γενικευτεί ώστε να επιλέγει το πρόγραµµα µεταξύ περισσοτέρων από δύο οµάδων εντολών αυτή που θα εκτελέσει. Η γενικευµένη αυτή δοµή της εντολής if δίνεται παρακάτω if εντολη_ελέγχου_1 σύνολο εντολών_1 elseif εντολη_ελέγχου _2 σύνολο εντολών_2 elseif εντολη_ελέγχου_ν-1 σύνολο εντολών_ν-1 else σύνολο εντολών_ν end Το πρόγραµµα εκτελεί τους διαδοχικούς ελέγχους και επιλέγει να εκτελέσει την οµάδα εντολών που αντιστοιχεί σε θετικό αποτέλεσµα της εντολής ελέγχου. Παράδειγµα [4] Στο παρακάτω παράδειγµα, η τιµή της παραµέτρου x είναι ίση µε y, όταν y<0, µε µηδέν όταν 0 y 1, και µε y-1 όταν y>1. Οι εντολές που το υλοποιούν είναι οι παρακάτω, if y<0 x=-y; elseif y<=1 x=0; else

71 4.2 Επαναληπτικές διαδικασίες - Βρόχοι 71 end x=y-1; 4.2 Επαναληπτικές διαδικασίες - Βρόχοι Οι επαναληπτικές διαδικασίες χρησιµοποιούνται στις περιπτώσεις που απαιτείται η επαναληπτική εκτέλεση µιας ή περισσοτέρων εντολών. Στις διαδικασίες αυτές δηµιουργείται µία κυκλική διαδικασία, που αποκαλείται βρόχος, η οποία εκτελείται επαναληπτικά µέχρι να παραβιαστεί ένα κριτήριο επανάληψης. Στον προγραµµατισµό µε το MATLAB οι βασικές εντολές δηµιουργίας ενός βρόχου είναι οι for και while Εντολή For Η δοµή της εντολής αυτής είναι η ακόλουθη: for δείκτης=λίστα σύνολο εντολών προς εκτέλεση end όπου η εκτέλεση των πράξεων επαναλαµβάνεται, µε το δείκτη να παίρνει όλες τις τιµές που καθορίζουν τα στοιχεία της λίστας. Στη θέση της λίστας µπορεί επίσης να τοποθετηθεί µια εντολή που να δηµιουργεί τη λίστα αυτή, όπως π.χ. 1:10. Συνήθως η λίστα είναι µονοδιάστατη. σε περίπτωση δισδιάστατης, ο δείκτης ακολουθεί τις στήλες της λίστας, τη µία µετά την άλλη. Παράδειγµα 1 Να κατασκευαστεί µια λίστα που να περιέχει τα τετράγωνα των ακεραίων αριθµών Ο υπολογισµός αυτός διεκπεραιώνεται µε το παρακάτω πρόγραµµα, x=[]; for i=1:10 x=[x,i^2]; end

72 72 Προγραµµατισµός Η δοµή του αλγορίθµου είναι η ακόλουθη: αρχικά δηµιουργείται µια κενή λίστα και αποδίδεται στην παράµετρο x. Μετά δηµιουργείται ένας βρόχος, σε κάθε κύκλο του οποίου προστίθεται στην υπάρχουσα λίστα ο επόµενος αριθµός, ίσος µε i^2. Παράδειγµα 2 Να υπολογιστεί το άθροισµα των πρώτων εκατό ακεραίων αριθµών n=100; s=0.; for i=1:n s=s+i; end Η δοµή του αλγορίθµου είναι η ακόλουθη: Χρησιµοποιείται η παράµετρος s στην οποία θα αποδοθεί η τιµή του αθροίσµατος. Αρχικά αποδίδεται στην παράµετρο αυτή η τιµή µηδέν, και δηµιουργείται µετά ένας βρόχος, σε κάθε κύκλο του οποίου προστίθεται στην υπάρχουσα τιµή ο επόµενος αριθµός, ίσος µε i. Παράδειγµα 3 Να βρεθεί ο µεγαλύτερος αριθµός, απ αυτούς που είναι αποθηκευµένοι σε µια µονοδιάστατη λίστα, προσδιορίζοντας ταυτόχρονα και τη θέση του στη λίστα αυτή. Για την εφαρµογή του παραδείγµατος, δηµιουργούµε µια µονοδιάστατη λίστα εκατό αριθµών, αξιοποιώντας την εντολή 10*rand(1,100). Το πρόγραµµα για τον υπολογισµό του µεγαλύτερου αριθµού, µαζί µε τη θέση του είναι το ακόλουθο n=100; a=10*rand(1,n); amax=a(1);imax=1; for i=2:n if a(i)>amax amax=a(i);

73 4.2 Επαναληπτικές διαδικασίες - Βρόχοι 73 end end imax=i; Η δοµή του αλγορίθµου είναι η ακόλουθη: στην αρχή κάνουµε την υπόθεση ότι ο πρώτος αριθµός της λίστας είναι και ο ζητούµενος. Στη συνέχεια αρχίζουµε να συγκρίνουµε τον αριθµό αυτό µε τους αριθµούς που έπονται. Εάν συναντήσουµε κάποιον µεγαλύτερο απ αυτόν, τότε επιλέγουµε αυτόν σαν το µεγαλύτερο, δηλώνοντας ταυτόχρονα και τη θέση του. Συνεχίζουµε τη διαδικασία αυτή µε τους αριθµούς που έπονται, και µε το πέρας της διαδικασίας έχουµε εντοπίσει το µέγιστο αριθµό, µαζί µε τη θέση του. Παράδειγµα 4 Σ ένα «εικονικό πείραµα» θεωρούµε ότι το αποτελέσµατα µιας «µέτρησης» της µεταβλητής y προσοµοιάζεται από το αποτέλεσµα εκτέλεσης της εντολής: x=2.0+rand Εκτελούµε µια σειρά 100 τέτοιων «µετρήσεων», και κατόπιν υπολογίζουµε τη µέση τιµή και την τυπική τους απόκλιση (standard deviation). Η µέση τιµή εκφράζει την τιµή γύρω από την οποία είναι διασπαρµένα τα δεδοµένα, ενώ η τυπική απόκλιση δίνει το εύρος της περιοχής µέσα στην οποία βρίσκονται τα περισσότερα απ αυτά. Η µέση τιµή των δεδοµένων δίνεται από τη σχέση 1 n i= 1 n x = x, και η αµερόληπτη τιµή της τυπικής απόκλισης από τη σχέση 2 1 n 2 s = s = ( x ) i 1 i x, = n 1 όπου n είναι ο αριθµός των δεδοµένων του προβλήµατος. Ο υπολογισµός τους γίνεται µε το πρόγραµµα που ακολουθεί: i n=100; x=2+rand(1,n); % evaluation of the mean value

74 74 Προγραµµατισµός xsum=0.; for i=1:n xsum=xsum+x(i); end xmean=xsum/n % %evaluation of the stantard deviation x2sum=0.; for i=1:n x2sum=x2sum+(x(i)-xmean)^2; end sdx=sqrt(x2sum/(n-1)) Φωλιασµένες εντολές for Εκτός από τη δοµή ενός απλού βρόχου for, έχουµε επίσης τη δυνατότητα δηµιουργίας φωλιασµένων βρόχων, όπου για κάθε δείκτη του εξωτερικού βρόχου επαναλαµβάνεται ολόκληρος ο εσωτερικός βρόχος. Παράδειγµα 5 Να κατασκευαστεί µια λίστα διαστάσεων 3 4, τα στοιχεία της οποίας να δίνονται από τη σχέση aij ( ) = ( i+ j)/2. Ο υπολογισµός αυτός διεκπεραιώνεται µε το παρακάτω πρόγραµµα, for i=1:3 for j=1:4 c(i,j)=(i+j)/2.; end end Παράδειγµα 6 Να υπολογιστεί το άθροισµα όλων των στοιχείων της τετραγωνικής λίστας που κατασκευάζεται µε την εντολή magic(10). Ο υπολογισµός αυτός διεκπεραιώνεται µε το παρακάτω πρόγραµµα, όπου αθροίζονται πρώτα τα στοιχεία µιας γραµµής (εσωτερικός βρόχος), και µετά όλες οι γραµµές,

75 4.2 Επαναληπτικές διαδικασίες - Βρόχοι 75 n=10; a=magic(n); asum=0.; for n1=1:n for n2=1:n asum=asum+a(n1,n2); end end Εντολή While Μερικές φορές δεν είναι γνωστός, εκ των προτέρων, ο αριθµός των κύκλων εκτέλεσης ενός βρόχου, ο οποίος ενδέχεται να διαµορφώνεται κατά τη διάρκεια των κύκλων, όπως ενδέχεται και η τιµή του δείκτη για τον επόµενο κύκλο να υπολογίζεται µέσα στον ίδιο το βρόχο, ως µια συνάρτηση των ενδιάµεσων αποτελεσµάτων. Για ν αντιµετωπιστούν οι περιπτώσεις αυτές υπάρχει η εντολή while, η οποία έχει την ακόλουθη δοµή, αρχική_τιµή_δείκτη while εντολη_ελέγχου_δείκτη εντολές προς εκτέλεση προσδιορισµός_νέας_τιµής_δείκτη end Όπως και στο βρόχο for, έτσι και στο βρόχο while, γίνεται επαναληπτική εκτέλεση των πράξεων, µέχρι να παραβιαστεί ο έλεγχος. Ο έλεγχος γίνεται µε τη χρήση του δείκτη, του οποίου η αρχική τιµή καθορίζεται πριν από την έναρξη του βρόχου, και η τιµή για τον επόµενο κύκλο υπολογίζεται µέσα στον τρέχοντα κύκλο. Για να µπορέσει όµως να τερµατιστεί ο βρόχος, θα πρέπει η τιµή του δείκτη να µεταβάλλεται, µε την επανάληψη των πράξεων, κατά τρόπο ώστε να παραβιαστεί κάποτε η εντολή ελέγχου.

76 76 Προγραµµατισµός Παράδειγµα 1 Χρησιµοποιώντας την εντολή while, να ευρεθεί ο µεγαλύτερος αριθµός από αυτούς που είναι αποθηκευµένοι σε µια µονοδιάστατη λίστα, και να προσδιοριστεί ταυτόχρονα και η θέση του στη λίστα αυτή. Όπως και µε το αντίστοιχο παράδειγµα για την εντολή for, δηµιουργούµε µια µονοδιάστατη λίστα εκατό αριθµών, αξιοποιώντας την εντολή 10*rand(1,100) Το πρόγραµµα για τον υπολογισµό του µεγαλύτερου απ αυτούς, µαζί µε τη θέση του, είναι το ακόλουθο n=100; a=10*rand(1,n); amax=a(1);imax=1; ni=1; while ni<n+0.5 if a(ni)>amax amax=a(ni); imax=ni; end ni=ni+1; end disp('maximum number= '),disp(amax) disp('position= '),disp(imax) Στον παραπάνω βρόχο γίνεται η σύγκριση ni < n + 0.5, διότι για πραγµατικούς αριθµούς, µια εντολή σύγκρισης της µορφής ni n ενδέχεται να χάσει την τιµή ni = n, λόγω αριθµητικών σφαλµάτων στρογγυλοποίησης. Η σχέση ni == n είναι ασφαλής µόνο για ακεραίους αριθµούς. Παράδειγµα 2 Σ ένα «εικονικό πείραµα», το αποτελέσµατα µιας «µέτρησης» της µεταβλητής y προσοµοιάζεται από το αποτέλεσµα εκτέλεσης της εντολής: y= *rand

77 4.2 Επαναληπτικές διαδικασίες - Βρόχοι 77 Χρησιµοποιώντας την εντολή while, να προσδιοριστεί η µέση τιµή και η τυπική απόκλιση (standard deviation) µιας σειράς τέτοιων «µετρήσεων». Ο υπολογισµός τους γίνεται µε το πρόγραµµα που ακολουθεί: n=10000; y=2+0.2*rand(1,n); % evaluation of the mean value ysum=0.; i1=1; while i1<n+0.5 ysum=ysum+y(i1); i1=i1+1; end ymean=ysum/n %evaluation of the stantard deviation y2sum=0.; i2=1; while i2<n+0.5 y2sum=y2sum+(y(i2)-ymean)^2; i2=i2+1; end sdy=sqrt(y2sum/(n-1)) Φωλιασµένες εντολές Εκτός από µια απλή δοµή βρόχου, έχουµε επίσης τη δυνατότητα δηµιουργίας φωλιασµένων βρόχων, όπου για κάθε δείκτη του εξωτερικού βρόχου επαναλαµβάνεται ολόκληρος ο εσωτερικός. Παράδειγµα 3 Να υπολογιστεί το άθροισµα όλων των στοιχείων της τετραγωνικής λίστας που κατασκευάζεται µε την εντολή migic(10). Ο υπολογισµός αυτός διεκπεραιώνεται µε το παρακάτω πρόγραµµα, n=10; a=magic(n);

78 78 Προγραµµατισµός asum=0.; n1=1; while n1<n+0.5 n2=1; while n2<n+0.5 asum=asum+a(n1,n2); n2=n2+1; end n1=n1+1; end disp('list element summation= '),disp(asum) Το παραπάνω παράδειγµα µπορεί επίσης να εκτελεστεί µε ένα βρόχο for και ένα βρόχο while, n=10; a=magic(n); asum=0.; for n1=1:n n2=1; while n2<n+0.5 asum=asum+a(n1,n2); n2=n2+1; end end disp('list element summation= '),disp(asum) 4.3 Συµπληρωµατικές εντολές ελέγχου Στις επαναληπτικές διαδικασίες, που παρουσιάσαµε στη παράγραφο 4.2, µε τις εντολές for και while, ο βρόχος επαναλαµβάνεται µέχρι να παραβιαστεί το κριτήριο επανάληψης. Σε µερικές όµως περιπτώσεις χρειάζεται να επέµβουµε, µέσω µιας άλλης εντολής ελέγχου, για να τροποποιήσουµε ή να διακόψουµε τη λειτουργία του βρόχου νωρίτερα. Η διαδικασία αυτή γίνεται µε τις εντολές continue και break.

79 4.3 Συµπληρωµατικές εντολές ελέγχου Εντολή continue Με τη χρήση της εντολής αυτής µπορούµε να παραλείψουµε την εκτέλεση, για κάποιες τιµές του δείκτη, ενός µέρους ή του συνόλου των πράξεων που υπάρχουν µέσα σ ένα βρόχο. Με την κλήση της εντολής continue παραλείπεται, για το συγκεκριµένο κύκλο, η εκτέλεση των πράξεων που έπονται της εντολής αυτής, και ο βρόχος οδηγείται στον επόµενο κύκλο, που αντιστοιχεί στην επόµενη τιµή του δείκτη. Η τυπική δοµή µιας τέτοιας εντολής, για ένα βρόχο for, είναι η ακόλουθη, for δείκτης=µονοδιάστατης_λίστας εντολή προς εκτέλεση.. εντολή ελέγχου ροής που περιέχει το continue. end Ο παραπάνω βρόχος οδηγείται στον επόµενο κύκλο όταν η εντολή ελέγχου ροής επιβάλλει την εκτέλεση της εντολής continue. Με παρόµοιο τρόπο χρησιµοποιείται η εντολή continue και σε βρόχο που συντάσσεται µε τη χρήση της εντολής while. Παράδειγµα Χρησιµοποιώντας την εντολή floor(20*rand(1,100)+1) δηµιουργείστε εκατό ακεραίους αριθµούς οµοιόµορφα κατανεµηµένους στο διάστηµα [1, 20]. Υπολογίστε το άθροισµα των αρτίων απ αυτούς. Η λύση του προβλήµατος δίνεται µε τον επόµενο αλγόριθµο. n=100; a=floor(20*rand(1,n)+1); asum=0.; for ni=1:100

80 80 Προγραµµατισµός if mod(a(ni),2)==1 continue end asum=asum+a(ni); end disp('sum= '),disp(asum); Με την εντολή continue παραλείπουµε τους περιττούς αριθµούς από την άθροιση Εντολή break Με την κλήση της εντολής αυτής διακόπτεται η λειτουργία, και το πρόγραµµα βγαίνει από ένα βρόχο for ή while. Η έξοδος γίνεται από το σηµείο που καλείται η εντολή break. Η τυπική δοµή µιας τέτοιας εντολής, για ένα βρόχο for, είναι η ακόλουθη, for δείκτης=µονοδιάστατης_λίστας εντολή προς εκτέλεση.. εντολή ελέγχου ροής που περιέχει το break. end όπου ο βρόχος διακόπτεται όταν η εντολή ελέγχου ροής επιβάλλει την εκτέλεση της εντολής break. Με παρόµοιο τρόπο συντάσσονται και βρόχοι µε τη χρήση της εντολής while. Παράδειγµα Χρησιµοποιώντας την εντολή floor(20*rand(1,100)+1) δηµιουργείστε µια ακολουθία εκατό τυχαίων ακεραίων αριθµών, οµοιόµορφα κατανεµηµένων στο διάστηµα [1, 20]. Να τυπωθεί η πρώτη

81 4.4 Λογικοί τελεστές 81 οµάδα διαδοχικών άρτιων αριθµών που εµφανίζεται στην παραπάνω ακολουθία. Η λύση του προβλήµατος δίνεται µε τον επόµενο αλγόριθµο. n=100; a=floor(20*rand(1,n)+1) asum=0.;index=0; for ni=1:100 if mod(a(ni),2)==index index=index+1; if index>1 break end disp(a(ni)) elseif index==1 disp(a(ni)) end end Στον παραπάνω αλγόριθµο δηµιουργείται ένας δείκτης, index, µε αρχική τιµή index=0. Μέσα στο βρόχο εντοπίζεται ο πρώτος άρτιος αριθµός µε την εντολή mod(a(ni), 2)==index, και αµέσως αυξάνεται η τιµή του δείκτη σε index=1. Από το σηµείο αυτό αρχίζει το πρόγραµµα να τυπώνει τους διαδοχικούς αριθµούς της λίστας, έναν σε κάθε κύκλο, µέχρι να βρει τον επόµενο περιττό αριθµό, µε την εντολή mod(a(ni), 2)==index. 4.4 Λογικοί τελεστές Στη παράγραφο 1.2 παρουσιάσαµε απλές λογικές εντολές, µε τη χρήση σχεσιακών τελεστών. Εκτός από τις απλές αυτές εντολές, έχουµε τη δυνατότητα να συντάξουµε και σύνθετες εντολές. Σε µια σύνθετη λογική εντολή περιλαµβάνονται περισσότερες από µια πράξεις σύγκρισης, οι οποίες συνδέονται µεταξύ τους µε λογικούς τελεστές. Οι λογικοί τελεστές είναι οι «και», «ή», και «όχι». Το αποτέλεσµα της πράξης είναι, όπως και στην απλή

82 82 Προγραµµατισµός περίπτωση, είτε το ένα (όταν η σχέση είναι αληθής), είτε το µηδέν (όταν η σχέση δεν είναι αληθής) Λογικός τελεστής «και» Με τον τελεστή αυτό ελέγχουµε εάν ικανοποιούνται ταυτόχρονα δύο ή περισσότερες πράξεις σύγκρισης. Όταν η σύγκριση αφορά µε λίστες, τότε ο τελεστής «και» δηλώνεται µε το απλό σύµβολο &, ενώ για αριθµούς µε το διπλό σύµβολο &&. Η διαφοροποίηση αυτή είναι αναγκαία, διότι για λίστες η εκτέλεση της λογικής εντολής επαναλαµβάνεται για όλα τα στοιχεία, ενώ για αριθµούς εκτελείται µία µόνο φορά. ηλαδή το απλό σύµβολο περιέχει και τη δηµιουργία ενός βρόχου για όλα τα στοιχεία των λιστών. Οπότε µια τέτοια σύνθετη λογική εντολή είναι της µορφής (test1)&(test2)&(test3)... ή (test1)&&(test2)&&(test3)... για λίστες ή αριθµούς αντίστοιχα. [1] Να βρεθούν οι όροι της λίστας magic(6) που είναι πολλαπλάσια και του 2 και του 3, και να υπολογιστεί το άθροισµα τους. af=magic(6); s=0; for i=1:6 for j=1:6 if mod(af(i,j),2)==0&&mod(af(i,j),3)==0 disp(af(i,j));s=s+af(i,j); end end end disp(s)

83 4.4 Λογικοί τελεστές 83 Στους φωλιασµένους βρόχους που δηµιουργούνται, εντοπίζονται τα στοιχεία τις λίστας που είναι πολλαπλάσια και του 2 και του 3, τυπώνονται και αθροίζονται στην παράµετρο s Λογικός τελεστής «ή» Με τον τελεστή «ή» ελέγχουµε εάν ικανοποιείται τουλάχιστον µία από ένα σύνολο πράξεων σύγκρισης, και δηλώνεται για λίστες µε και για αριθµούς µε, οπότε µια τέτοια σύνθετη λογική εντολή είναι της µορφής, (test1) (test2) (test3)... ή (test1) (test2) (test3)... για λίστες ή αριθµούς αντίστοιχα. Για λίστες, η εκτέλεση της λογικής εντολής επαναλαµβάνεται για όλα τα στοιχεία. [2] Να βρεθούν οι όροι της λίστας magic(6) που είναι πολλαπλάσια ή του 2 ή του 3, και να υπολογιστεί το άθροισµα τους. af=magic(6); s=0; for i=1:6 for j=1:6 if mod(af(i,j),2)==0 mod(af(i,j),3)==0 disp(af(i,j));s=s+af(i,j); end end end disp(s) Στους φωλιασµένους βρόχους που δηµιουργούνται, εντοπίζονται τα στοιχεία τις λίστας που είναι πολλαπλάσια ή του 2 ή του 3, τυπώνονται και αθροίζονται στην παράµετρο s.

84 84 Προγραµµατισµός Λογικός τελεστής «οχι» Ο τελεστής αυτός αντιστρέφει το αποτέλεσµα (από 1 σε 0 και αντίστροφα) µιας λογικής εντολής, και δηλώνεται µε το σύµβολο ~, οπότε µια τέτοια λογική εντολή είναι της µορφής, ~(test1) [3] Να βρεθούν οι όροι της λίστας magic(6) που δεν είναι πολλαπλάσια ούτε του 2 ούτε του 3, και να υπολογιστεί το άθροισµα τους. af=magic(6); s=0; for i=1:6 for j=1:6 if (~mod(af(i,j),2)==0)&&(~mod(af(i,j),3)==0) disp(af(i,j));s=s+af(i,j); end end end disp(s) Στους φωλιασµένους βρόχους που δηµιουργούνται, εντοπίζονται τα στοιχεία τις λίστας που δεν είναι πολλαπλάσια ούτε του 2 ούτε του 3, τυπώνονται και αθροίζονται στην παράµετρο s.

85 4.4 Λογικοί τελεστές 85

86 86 ΚΕΦΑΛΑΙΟ 5 ΚΕΦΑΛΑΙΟ 5 Συναρτήσεις Στα προηγούµενα κεφάλαια χρησιµοποιήσαµε εσωτερικές συναρτήσεις για την εκτέλεση πράξεων µε το MATLAB. Εκτός όµως από τις συναρτήσεις αυτές, υπάρχει η δυνατότητα προγραµµατισµού από το χρήστη νέων (εξωτερικών) συναρτήσεων. Το παρόν κεφάλαιο αποτελεί µια εισαγωγή στους κανόνες που διέπουν τον προγραµµατισµό αυτό. 5.1 Μ Συναρτήσεις Στην παράγραφο 1.7 παρουσιάσαµε τα Μ-αρχεία, τα οποία περιέχουν µια οµάδα εντολών, οι οποίες εκτελούνται µε την κλήση του αρχείου. Η βασική ιδιότητα των Μ-αρχείων είναι ότι οι εντολές τους εκτελούνται µέσα στο βασικό χώρο λειτουργίας του προγράµµατος, και αντιµετωπίζονται ως εντολές του κυρίως προγράµµατος. Έτσι µπορούν να χρησιµοποιούν όλα τα προηγούµενα αποτελέσµατα που βρίσκονται στο χώρο αυτό, και επίσης όλα τα αποτελέσµατα που παράγουν µε την εκτέλεση τους είναι διαθέσιµα στο βασικό χώρο λειτουργίας του προγράµµατος για επόµενους υπολογισµούς. Σε αρκετές όµως περιπτώσεις θα ήταν χρήσιµο να είχαµε τη δυνατότητα να δηµιουργούσαµε ένα σύνολο εντολών που να εκτελούνται µέσα σ ένα ανεξάρτητο υπόχωρο του συστήµατος, ο οποίος να µην αλληλεπιδρά µε το βασικό χώρο λειτουργίας του προγράµµατος, παρά µόνο µε προεπιλεγµένες

87 5.1 Μ Συναρτήσεις 87 µεταβλητές. Οι δυνατότητα αυτή υπάρχει, και υλοποιείται µε τη δηµιουργία των Μ-συναρτήσεων. Για τη σύνταξη µιας Μ-συνάρτησης πρέπει να χρησιµοποιηθεί ένας κειµενογράφος ASCII (editor), όπως π.χ. ο κειµενογράφος του MATLAB. Τα αρχεία των Μ-συναρτήσεων είναι γενικά παρόµοια στη δοµή τους µε τα Μ-αρχεία εντολών, και η βασική εντολή που τα διαφοροποιεί είναι η πρώτη εντολή των Μ-συναρτήσεων, που είναι δηλωτική της λειτουργίας τους. Η εντολή αυτή δηλώνει ότι το αρχείο αποτελεί συνάρτηση, ορίζει το όνοµα της, και καθορίζει τις µεταβλητές επικοινωνίας µε το κυρίως πρόγραµµα. Οι Μ- συναρτήσεις αποθηκεύονται υποχρεωτικά σε αρχεία που έχουν το ίδιο όνοµα µε το όνοµα της συνάρτησης, και έχουν επίσης την κατάληξη.m. Τα αρχεία αυτά αποθηκεύονται µέσα σε µια διεύθυνση στην οποία έχει πρόσβαση το πρόγραµµα, π.χ. στην ενεργό διεύθυνση αποθήκευσης του MATLAB, ώστε να υπάρχει η δυνατότητα εκτέλεσης τους, µε τη κλήση του ονόµατος τους Παράµετροι εισόδου και εξόδου Όπως αναφέραµε παραπάνω, για την επικοινωνία µιας συνάρτησης µε το κυρίως πρόγραµµα, χρησιµοποιούνται οι παράµετροι εισόδου και εξόδου. Οι παράµετροι εισόδου µεταφέρουν δεδοµένα από το κυρίως πρόγραµµα στη συνάρτηση, και οι παράµετροι εξόδου από τη συνάρτηση στο κυρίως πρόγραµµα. 1) Παράµετροι εισόδου Οι παράµετροι εισόδου είναι παράµετροι του κυρίως προγράµµατος που µεταφέρονται στη συνάρτηση, δεν µεταφέρονται όµως από τη συνάρτηση στο κυρίως πρόγραµµα. ηλαδή, µια παράµετρος που ανήκει στο κυρίως πρόγραµµα και µεταφέρεται στη συνάρτηση, µεταφέρεται τόσο η παρά- µετρος, όσο και η αριθµητική της τιµή. Όταν όµως η τιµή της παραµέτρου αυτής αλλάξει µέσα στη συνάρτηση, η νέα αυτή τιµή δεν µεταφέρεται πίσω στο κυρίως πρόγραµµα. Οι παράµετροι εισόδου τοποθετούνται ως όρισµα στη συνάρτηση.

88 88 Συναρτήσεις 2) Παράµετροι εξόδου Μέσα σε µια συνάρτηση εκτελείται µια σειρά υπολογισµών. Για να µπορέσει όµως να µεταφερθεί η αριθµητική τιµή µιας παραµέτρου στο κυρίως πρόγραµµα, θα πρέπει η παράµετρος αυτή να χαρακτηριστεί ως παράµετρος εξόδου. Ο χαρακτηρισµός γίνεται µε την ένταξη της σε µια λίστα που περιέχει όλες τις παραµέτρους, των οποίων η αριθµητική τιµή µεταφέρεται στο κυρίως πρόγραµµα. Η λίστα µε τις παραµέτρους εξόδου τοποθετείται στην πρώτη γραµµή του αρχείου, και σ αυτήν αποδίδεται η συνάρτηση. Με βάση τα παραπάνω, η πρώτη γραµµή του αρχείου µιας συνάρτησης έχει την ακόλουθη δοµή, function [w1 w2 ]=function_name(x1, x2, ) Οι παράµετροι x1, x2, είναι οι παράµετροι εισόδου της συνάρτησης, και w1, w2, οι παράµετροι εξόδου. Όταν υπάρχει µόνο ένα αποτέλεσµα για µεταφορά, τότε µπορούν να παραληφθούν οι τετραγωνικές αγκύλες στη λίστα εξόδου. Πρέπει όµως να επισηµανθεί, ότι η ένταξη µιας παραµέτρου στη λίστα εξόδου δεν είναι αρκετή για να µπορέσει η ποσότητα αυτή να χρησιµοποιηθεί στο κυρίως πρόγραµµα, και οφείλεται στο γεγονός ότι η ποσότητα αυτή µεταφέρεται στο κυρίως πρόγραµµα ως µία αφηρηµένη αριθµητική τιµή, και όχι ως παράµετρος. Εποµένως, για να µπορέσει να χρησιµοποιηθεί η αριθµητική αυτή τιµή θα πρέπει πρώτα να αποδοθεί σε µια νέα παράµετρο που ορίζεται στο κυρίως πρόγραµµα. Έτσι η εντολή κλήσης της συνάρτησης πρέπει να είναι της µορφής [z1 z2 ]=function_name(x1, x2, ) όπου οι αριθµητικές τιµές που µεταφέρονται στο κυρίως πρόγραµµα αποδίδονται στις παραµέτρους z1, z2,.

89 5.1 Μ Συναρτήσεις 89 Παράδειγµα 1 Να γραφεί Μ-συνάρτηση η οποία για δοσµένο x να αποδίδει την ποσότητα 2 cos( x+ 2) /(1 + ( x+ 2) ). Ο προγραµµατισµός της συνάρτησης αυτής δίνεται παρακάτω function y=ff(x) x=x+2; disp(x) y=cos(x)./(1+x.^2); η οποία αποθηκεύεται στο αρχείο µε το όνοµα ff.m. Στο παραπάνω παράδειγµα, η παράµετρος x ανήκει στο κυρίως πρόγραµµα, και µε την τοποθέτηση της ως όρισµα στη συνάρτηση ff, µεταφέρεται σ αυτήν. Μέσα στη συνάρτηση τροποποιείται, και χρησιµοποιείται για τον προσδιορισµό της παραµέτρου y. Τέλος η αριθµητική τιµή της παραµέτρου y µεταφέρεται στο κυρίως πρόγραµµα ιερευνάται ο τρόπος λειτουργίας της παραπάνω συνάρτησης µε τις παρακάτω εντολές, που εκτελούνται µέσα στο παράθυρο διαχείρισης του προγράµµατος, >> x =1 >> disp(x) 1 >> z=ff(x) x = 3 z = >> disp(x) 1 >> disp(y)??? Undefined function or variable 'y'. ηλαδή η παράµετρος x µεταφέρεται, µαζί µε την τιµή της, µέσα στη συνάρτηση, ενώ η νέα της τιµή, που ορίζεται µέσα στη συνάρτηση, δεν

90 90 Συναρτήσεις µεταφέρεται πίσω στο κυρίως πρόγραµµα. Τέλος η αριθµητική τιµή της παραµέτρου y µεταφέρεται στο κυρίως πρόγραµµα και αποδίδεται στην παράµετρο z, δεν µεταφέρεται όµως η παράµετρος y, όπως διαπιστώνεται από την εντολή disp(y). Παράδειγµα 2 Έστω ότι µέσα στο κυρίως πρόγραµµα δηµιουργείται µια µονοδιάστατη λίστα που περιέχει αριθµούς. Να γραφτεί µια συνάρτηση που να βρίσκει το µεγαλύτερο εξ αυτών, µαζί µε τη θέση του στη λίστα. Η ζητούµενη συνάρτηση δίνεται παρακάτω, της αποδίδεται το όνοµα findmaximum, και αποθηκεύεται σε αρχείο µε το όνοµα findmaximum.m. function [amax, index]=findmaximum(a) n=length(a); amax=a(1); index=1; for i=2:n if a(i)>amax amax=a(i); index=i; end end Όπως φαίνεται στο παραπάνω πρόγραµµα, η παράµετρος εισόδου στη συνάρτηση είναι η λίστα a, και η λίστα εξόδου είναι η [amax, index], η οποία περιέχει την τιµή του µεγαλύτερου αριθµού µαζί µε τη θέση του, και στην οποίαν αποδίδεται η συνάρτηση findmaximum(a). Ο τρόπος λειτουργίας της συνάρτησης αυτής διερευνάται µε το παρακάτω πρόγραµµα, >> a=rand(100,1); >> findmaximum(a) >> z=findmaximum(a) z =

91 5.1 Μ Συναρτήσεις >> [z1 z2]=findmaximum(a) z1 = z2 = 100 ηµιουργείται δηλαδή µια λίστα µε 100 τυχαίους αριθµούς που αποθηκεύονται στη λίστα a, και κατόπιν καλείται η συνάρτηση findmaximum µε όρισµα τη λίστα αυτή. Όταν µέσα από το κυρίως πρόγραµµα η συνάρτηση αυτή κληθεί και αποδοθεί σε µια µόνο παράµετρο, τότε διασώζεται µόνο η τιµή της πρώτης παραµέτρου εξόδου, δηλαδή η τιµή του µεγαλύτερου αριθµού, όχι όµως και η θέση του. Για να διασωθούν και οι δύο ποσότητες θα πρέπει η συνάρτηση να αποδοθεί σε µία λίστα µε δύο παραµέτρους Τερµατισµός συνάρτησης Όταν κληθεί µια συνάρτηση, συνήθως µέσα από ένα Μ-αρχείο εντολών, αυτή εκτελείται και µετά το πέρας των πράξεων της επιστρέφει η διαδικασία στο Μ-αρχείο, για να εκτελεστούν οι υπόλοιπες εντολές του. Το θέµα που θα εξετάσουµε παρακάτω είναι ο καθορισµός του σηµείου της συνάρτησης απ το οποίο γίνεται η επιστροφή στο Μ-αρχείο. Το σηµείο αυτό συνήθως είναι η τελευταία εντολή της συνάρτησης, σε µερικές όµως περιπτώσεις µπορεί να προβλεφθεί να γίνεται επιστροφή και από ενδιάµεσες θέσεις. Για το σκοπό αυτό χρησιµοποιούνται οι εντολές return και error. 1) Εντολή return Σε µερικές περιπτώσεις, οι απαιτούµενοι υπολογισµοί σε µια συνάρτηση ολοκληρώνονται σε µια ενδιάµεση θέση, πριν από την τελευταία εντολή του αρχείου. Στην περίπτωση αυτή προγραµµατίζεται επιστροφή στο κυρίως πρόγραµµα από το σηµείο τερµατισµού των πράξεων, µε τη χρήση της εντολής return. Η έξοδος γίνεται από το σηµείο που καλείται η εντολή return.

92 92 Συναρτήσεις Παράδειγµα 1 Έστω ότι µέσα στο κυρίως πρόγραµµα δηµιουργείται µια µονοδιάστατη λίστα που περιέχει αριθµούς. Να γραφεί µια συνάρτηση που να βρίσκει τον πρώτο αριθµό που είναι µεγαλύτερος του δέκα, µαζί µε τη θέση του στη λίστα. Η ζητούµενη συνάρτηση δίνεται παρακάτω, της αποδίδεται το όνοµα firstnumber, και αποθηκεύεται σε αρχείο µε το όνοµα firstnumber.m. function [a10, index]=firstnumber(a) n=length(a); a10=-1; index=1; for i=1:n if a(i)>a10 a10=a(i); index=i; end if a(i)>10 return end end disp('number>10 not found, returns the maximum nember') Στην παραπάνω συνάρτηση εκτελείται η εντολή return, για επιστροφή στο κυρίως πρόγραµµα, αµέσως µετά τον εντοπισµό του πρώτου αριθµού που είναι µεγαλύτερος του 10. Ένα παράδειγµα κλήσης της παραπάνω συνάρτησης δίνεται παρακάτω, a=15*rand(12,1); [z1 z2]=firstnumber(a) z1 = z2 = 5

93 5.1 Μ Συναρτήσεις 93 2) Εντολή error Σε αρκετές περιπτώσεις οι συνθήκες του προβλήµατος επιβάλλουν είτε τα δεδοµένα εισόδου, είτε και τα αποτελέσµατα εξόδου µιας συνάρτησης να υπακούουν σε ορισµένους κανόνες, να είναι π.χ. θετικές ποσότητες. Σε τέτοιες περιπτώσεις επιβάλλεται να γίνεται έλεγχος εάν ικανοποιούνται οι απαιτήσεις του προβλήµατος, και να διακόπτεται το πρόγραµµα όταν οι κανόνες αυτοί παραβιάζονται, µε την ένδειξη ότι υπάρχει λάθος στο πρόγραµµα, για να ενηµερώνεται ο χρήστης για το γεγονός αυτό και να φροντίζει για τη διόρθωση του. Η διαδικασία αυτή διεκπεραιώνεται µε την εντολή error. Η διακοπή του προγράµµατος γίνεται από το σηµείο που καλείται η εντολή error. Παράδειγµα 2 Επανερχόµαστε στο παραπάνω παράδειγµα 1, και υποθέτουµε ότι σύµφωνα µε τις απαιτήσεις του προβλήµατος οι αριθµοί που εισάγονται στη συνάρτηση πρέπει να είναι θετικοί. Για το λόγο αυτό ξαναγράφουµε τη συνάρτηση firstnumber, για να εισάγουµε µια διαδικασία ελέγχου των αριθµών που είναι αποθηκευµένοι στη λίστα a, για να βεβαιωθούµε ότι είναι πράγµατι θετικοί. Η ζητούµενη συνάρτηση δίνεται παρακάτω, της αποδίδεται το όνοµα firstnumbernew, και αποθηκεύεται σε αρχείο µε το όνοµα firstnumbernew.m. function [a10, index]=firstnumbernew(a) n=length(a); for j=1:n if a(j)<0 error('negative input number') end end a10=-1; index=1; for i=1:n if a(i)>a10 a10=a(i); index=i;

94 94 Συναρτήσεις end if a(i)>10 return end end disp('number>10 not found, returs the maximum nember') Ένα παράδειγµα χρήσης της παραπάνω συνάρτησης, όπου φροντίσαµε η λίστα εισόδου a, µε τα δεδοµένα για τη συνάρτηση, να µην ικανοποιεί τις απαιτούµενες συνθήκες, δίνεται παρακάτω, >> a=15*rand(12,1); >> a(10)=-1; >> [z1 z2]=firstnumbernew(a)??? Error using ==> firstnumbernew negative input number 5.2 Οδηγός συνάρτησης Όταν στο MATLAB καλείται για εκτέλεση µια συνάρτηση, τότε το πρόγραµµα την αναζητεί στις διευθύνσεις που έχει πρόσβαση, µια χρονοβόρα διαδικασία σε περιπτώσεις πολλαπλής κλήσης της συνάρτησης. Το παραπάνω πρόβληµα µπορεί να λυθεί µε τη δηµιουργία µιας παραµέτρου στην οποία να αποθηκεύονται όλες οι πληροφορίες οι σχετικές µε τη συνάρτηση αυτή που συλλέγονται µε τη πρώτη της εκτέλεσης, όπως π.χ. η διεύθυνση στην οποία είναι αποθηκευµένη, και οι οποίες µπορούν να χρησιµοποιηθούν στις επόµενες εκτελέσεις της συνάρτησης. Η παράµετρος αυτή ονοµάζεται οδηγός της συνάρτησης, τοποθετείται στο βασικό χώρο λειτουργίας του προγράµµατος, εντοπίζεται άµεσα, και οδηγεί σε επιτάχυνση τη διαδικασία πολλαπλού υπολογισµού της συνάρτησης αυτής. Τέλος σηµειώνεται ότι η χρησηµοποίηση µιας συνάρτησης ως παραµέτρου εισόδου µέσα σε µια άλλη συνάρτηση, µπορεί να γίνει µόνο µε τη χρήση ενός οδηγού. Ένας οδηγός µπορεί να αποδοθεί σε µια εσωτερική συνάρτηση του MATLAB, µια υπάρχουσα Μ-συνάρτηση, ακόµα και να χρησιµοποιηθεί για

95 5.2 Οδηγός συνάρτησης 95 να οριστεί µια καινούργια συνάρτηση, και του προσδίδεται ένα όνοµα µέσω του οποίου καλείται. Παρακάτω δίνουµε λεπτοµέρειες για τη διαδικασία ορισµού του οδηγού αυτού Οδηγός εσωτερικής συνάρτησης Μια εσωτερική συνάρτηση του MATLAB µπορεί να συνδεθεί µε ένα οδηγό, τον οποίο µπορούµε να χρησιµοποιούµε για τον υπολογισµό της. Η εντολή καθορισµού του οδηγού είναι η ακόλουθη όπου driver_name είναι το όνοµα του οδηγού, και function_name το κανονικό όνοµα της συνάρτησης. Τα δύο παραπάνω ονόµατα δίνονται χωρίς όρισµα, όµως το όρισµα της συνάρτησης γίνεται αυτόµατα και όρισµα του οδηγού, το οποίο χρησιµοποιείται για τη κλήση του, όπως γίνεται και στη συνάρτηση. Παράδειγµα Αποδίδεται οδηγός, µε το όνοµα fsin, στην εσωτερική συνάρτηση sin, και κατόπιν χρησιµοποιείται για τον υπολογισµό τιµών της συνάρτησης αυτής, fsin([0: 0.25 :1]) Οδηγός Μ-συνάρτησης Με τον ίδιο τρόπο µπορούµε να αποδώσουµε έναν οδηγό σε µια Μ- συνάρτηση, µε την εντολή driver_name=@μ-function_name Τα δύο παραπάνω ονόµατα δίνονται χωρίς όρισµα, όµως το όρισµα της Μ- συνάρτησης γίνεται αυτόµατα και όρισµα του οδηγού, το οποίο χρησιµοποιείται για τη κλήση του, όπως γίνεται και στη συνάρτηση.

96 96 Συναρτήσεις Παράδειγµα Μπορούµε να ορίσουµε τον οδηγό ffindmaximum στη Μ-συνάρτηση findmaximum.m, που γράψαµε στη παράγραφο για την εύρεση του µεγαλύτερου αριθµού µαζί µε τη θέση του, όπως φαίνεται στο παρακάτω παράδειγµα, >> ffindmaximum Μια περίπτωση χρήσης του οδηγού αυτού δίνεται παρακάτω, >> a=rand(50,1); >> [z1 z2]=ffindmaximum(a) z1 = z2 = Οδηγός ανώνυµης έκφρασης Με τη χρήση ενός οδηγού, µπορούµε επίσης να ορίσουµε µια καινούργια συνάρτηση. Η διαδικασία είναι να αποδώσουµε έναν οδηγό σε µια ανώνυµη µαθηµατική έκφραση, δηλαδή σε µια έκφραση για την οποία δεν υπάρχει εσωτερική συνάρτηση, και δεν έχει επίσης ορισθεί µια Μ- συνάρτηση. Η εντολή για τον ορισµό αυτόν είναι, driver_name=@(x, y, ) expression(x, y, ); Το όνοµα του οδηγού στην παραπάνω εντολή δίνεται χωρίς όρισµα, όµως µετά το µέσα σε παρενθέσεις, τοποθετείται το όρισµα της συνάρτησης, και µετά τη µεσολάβηση ενός κενού δίνεται η έκφραση που αποδίδεται στον οδηγό. Σηµειώστε ότι ο οδηγός καλείται µε το όρισµα, όπως αυτό ορίζεται µετά το στην εντολή ορισµού του οδηγού αυτού.

97 5.2 Οδηγός συνάρτησης 97 Παραδείγµατα Στα παρακάτω παραδείγµατα ορίζονται οδηγοί στις ανώνυµες εκφράσεις /( x + 1), και x + y, και κατόπιν χρησιµοποιούνται για να υπολογιστούν διάφορες τιµές τους, >> f1=@(x) 1./(x.^2+1); >> f1(1) >> f1([1:0.2:2]) >> f2=@(x,y) x^2+y^2; >> f2(1, 1) 2 >> f2(1.2,0.8) Ανώνυµος oδηγός Τέλος µπορούµε να ορίσουµε έναν ανώνυµο οδηγό, χωρίς δηλαδή να του αποδώσουµε ένα όνοµα, για µια µαθηµατική έκφραση. Η διαδικασία αυτή αξιοποιείται µέσα στο όρισµα µιας άλλης συνάρτησης, για να εισαχθεί δηλαδή στη συνάρτηση η συγκεκριµένη αυτή έκφραση, η οποία όµως δεν µπορεί να χρησιµοποιηθεί έξω από τη συγκεκριµένη συνάρτηση. Η εντολή για τον καθορισµό του ανώνυµου οδηγού y, ) expression(x, y, ) Ένα παράδειγµα εφαρµογής της διαδικασίας αυτής δίνεται παρακάτω

98 98 Συναρτήσεις >> x.^2./(1+x.^2), 0, 1) όπου χρησιµοποιείται η εσωτερική συνάρτηση quad για τον υπολογισµό του ολοκληρώµατος x /(1 + x ) dx 0 οδηγού δίνεται στη παράγραφο Μια άλλη εφαρµογή ενός ανώνυµου 5.3 Εφαρµογές Εκτός από τις εφαρµογές των συναρτήσεων που παρουσιάσαµε παραπάνω, θα δώσουµε µερικά ακόµη παραδείγµατα τέτοιων υπολογισµών. Συγκεκριµένα θα δώσουµε ένα παράδειγµα εφαρµογής των συναρτήσεων στον υπολογισµό ολοκληρώµατος, και ένα σε στατιστική ανάλυση δεδοµένων Αριθµητικός υπολογισµός ολοκληρώµατος b Ο αριθµητικός υπολογισµός ενός ορισµένου ολοκληρώµατος f ( x) dx a µπορεί να γίνει µε τη διαµέριση του διαστήµατος ολοκλήρωσης σε ίσα υποδιαστήµατα και τον υπολογισµό του ολοκληρώµατος προσεγγιστικά ως το άθροισµα των εµβαδών των τραπεζίων που δηµιουργούνται. Ο παραπάνω κανόνας επιδεικνύεται στο παρακάτω σχήµα, για την περίπτωση του ολοκληρώµατος 1 0 x (1 xdx ), µε τη διαµέριση της περιοχής ολοκλήρωσης σε δέκα ίσα µέρη και τη δηµιουργία των αντίστοιχων τραπεζίων (διάστικτη γραµµή),

99 5.3 Εφαρµογές Στη γενική περίπτωση, γίνεται διαµέριση του διαστήµατος ολοκλήρωσης σε n υποδιαστήµατα, που καθορίζονται από τις n+1 τιµές του ορίσµατος της συνάρτησης, [ x1, x2,..., x n + 1], και το εµβαδόν, σύµφωνα µε τον κανόνα των τραπεζίων, υπολογίζεται από τη σχέση, b n+ 1 1 f ( xdx ) = ( f( xk) + f( xk 1))( xk xk 1), 2 a k= 2 Η Μ-συνάρτηση που δηµιουργείται, για τον υπολογισµό του ολοκληρώ- µατος µε τον κανόνα των τραπεζίων και τη χρήση n σηµείων, δίνεται παρακάτω, και αποθηκεύεται σε αρχείο µε το όνοµα trapez.m. function s=trapez(f,a,b,n) s=0; x=linspace(a,b,n+1); for i=2:n s=s+(f(x(i))+f(x(i-1)))*(x(i)-x(i-1))/2; end

100 100 Συναρτήσεις Ως εφαρµογή της παραπάνω συνάρτησης γίνεται ο υπολογισµός, (α) του ολοκληρώµατος 1 x (1 xdx ) µε τη χρήση 1000 σηµείων, αφού πρώτα 0 καθοριστεί οδηγός για την υπό ολοκλήρωση συνάρτηση, ff=@(x) (1-x)*sqrt(x); και γίνει κατόπιν κλήση της Μ-συνάρτησης trapez για τον υπολογισµό του ολοκληρώµατος αυτού, trapez(ff,0,1,1000) για σύγκριση, δίνεται η ακριβής τιµή του ολοκληρώµατος που είναι ίση µε 4/16= , και (β) ο υπολογισµός του ολοκληρώµατος ανώνυµου οδηγού, π sin( x) dx, µε τη χρήση ενός 0 trapez(@sin,0,pi,10000) Στατιστική περιγραφή δεδοµένων Στην ύλη των µαθηµατικών που διδάσκεται στο λύκειο περιλαµβάνεται πλέον και µια εισαγωγή στη στατιστική ανάλυση δεδοµένων. Οι δύο βασικές ποσότητες για τη στατιστική περιγραφή των δεδοµένων είναι η µέση τιµή και η τυπική απόκλιση (standard deviation). Η µέση τιµή εκφράζει την τιµή γύρω από την οποία είναι διασπαρµένα τα δεδοµένα, ενώ η τυπική απόκλιση δίνει το εύρος της περιοχής µέσα στην οποία βρίσκονται τα περισσότερα απ αυτά. Η µέση τιµή των δεδοµένων δίνεται από τη σχέση 1 n i= 1 n x = x, i

101 5.3 Εφαρµογές 101 και η αµερόληπτη τιµή της τυπικής απόκλισης από τη σχέση 2 1 n 2 s = s = ( x ) i 1 i x, = n 1 όπου n είναι ο αριθµός των δεδοµένων του προβλήµατος. Στο MATLAB υπάρχει ένα εσωτερικό πακέτο που περιέχει εντολές που υπολογίζουν τις ποσότητες αυτές, όµως, ως εφαρµογή του προγραµµατισµού, θα γράψουµε µια συνάρτηση που θα εκτελεί τους υπολογισµούς αυτούς. Για τον υπολογισµό των ποσοτήτων αυτών δηµιουργείται η εξωτερική συνάρτηση statistics, η οποία δίνεται παρακάτω και αποθηκεύεται στο αρχείο statistics.m, function [xmean sdx]=statistics(x) n=length(x); % evaluation of the mean value xsum=0.; for i=1:n xsum=xsum+x(i); end xmean=xsum/n; % %evaluation of the standard deviation x2sum=0.; for i=1:n x2sum=x2sum+(x(i)-xmean)^2; end sdx=sqrt(x2sum/(n-1)); Ως είσοδος της συνάρτησης αυτής δίνεται µια µονοδιάστατη λίστα που περιέχει τα δεδοµένα, και επιστρέφει τις αριθµητικές τιµές για τη µέση τιµή και την τυπική τους απόκλιση. Τα δεδοµένα που χρησιµοποιούνται σε τέτοιους υπολογισµούς προκύπτουν συνήθως ως µετρήσεις κάποιου πειράµατος, αλλά στην εφαρµογή που ακολουθεί προσδιορίζονται από ένα «εικονικό πείραµα» που γίνεται στον υπολογιστή, στο οποίο το αποτέλεσµα µιας «µέτρησης» της µεταβλητής y προσοµοιάζεται από το αποτέλεσµα εκτέλεσης της εντολής:

102 102 Συναρτήσεις y= *rand Παρακάτω προσδιορίζουµε τιµές του y και υπολογίζουµε τη µέση τους τιµή και την τυπική τους απόκλιση, a=2+0.5*rand(100000,1); [amean sdx]=statistics(a) amean = sdx = Σηµειώστε ότι σε κάθε καινούργια εκτέλεση της εφαρµογής παίρνουµε διαφορετικό αποτέλεσµα, και αυτό οφείλεται στο γεγονός ότι διαφορετικές εκτελέσεις της εντολής rand δίνουν διαφορετικά δεδοµένα Εσωτερικές συναρτήσεις για στατιστικά µεγέθη Παραπάνω γράψαµε µια εξωτερική συνάρτηση για τον υπολογισµό στατιστικών µεγεθών. Συµπληρωµατικά αναφέρουµε ότι το MATLAB περιέχει µια σειρά από εσωτερικές συναρτήσεις για τον υπολογισµό στατιστικών µεγεθών. Παρακάτω αναφέρονται µερικές εξ αυτών, οι οποίες εφαρµόζονται στη δισδιάστατη λίστα A=rand(100, 3); Σηµειώστε ότι επανεκτέλεση της εντολής rand θα αποδώσει διαφορετικά αποτελέσµατα στη λίστα Α, και εποµένως διαφορετικές αριθµητικές τιµές στα παρακάτω παραδείγµατα. 1. Μέση τιµή: εντολή mean. Υπολογίζει τη µέση τιµή των στοιχείων µιας µονοδιάστατης λίστας µε την εντολή mean(a)

103 5.3 Εφαρµογές 103 Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή mean(a) υπολογίζει τη µέση τιµή των στοιχείων κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. mean(a) mean(a(:)) Τυπική απόκλιση: εντολή std. Υπολογίζει την τυπική απόκλιση των στοιχείων µιας µονοδιάστατης λίστας µε την εντολή std(a) Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή mean(a) υπολογίζει την τυπική απόκλιση των στοιχείων κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. std(a) std(a(:)) ιακύµανση: εντολή var. Υπολογίζει τη διακύµανση των στοιχείων µιας µονοδιάστατης λίστας µε την εντολή var(a)

104 104 Συναρτήσεις Όταν το a είναι µια δισδιάστατη λίστα, τότε η εντολή mean(a) υπολογίζει τη διακύµανση των στοιχείων κάθε στήλης ξεχωριστά, και αποδίδει τα αποτελέσµατα ως µία µονοδιάστατη λίστα-γραµµή. var(a) var(a(:)) e-004

105 105 ΚΕΦΑΛΑΙΟ 6 Γραφικά στο Επίπεδο Οι γραφικές παραστάσεις είναι ένας απλός και εποπτικός τρόπος απόδοσης αποτελεσµάτων, που µας βοηθούν στο να κατανοήσουµε καλύτερα τα φαινόµενα που µελετάµε. Το MATLAB διαθέτει ένα πλήρες και εύχρηστο πακέτο γραφικών, µε το οποίο µπορούµε να αποδώσουµε γραφικά τόσο αριθµητικά δεδοµένα, όσο και συναρτήσεις µιας ή δύο µεταβλητών. Στο παρόν κεφάλαιο θα κάνουµε µια εισαγωγή στις γραφικές παραστάσεις συναρτήσεων µιας µεταβλητής, που αναφέρονται ως γραφικά στο επίπεδο, αφήνοντας τις τρεις διαστάσεις για το κεφάλαιο Γραφική παράσταση δεδοµένων - Εντολή plot Η βασική εντολή για τη δηµιουργία µιας γραφικής παράστασης στο MATLAB είναι η εντολή plot. Η εντολή αυτή εκτελεί γραφικές παραστάσεις δεδοµένων στο επίπεδο, και καλείται µε τον παρακάτω τρόπο, plot(x, y) όπου x και y είναι µονοδιάστατες λίστες που περιέχουν τις x και y συντεταγµένες των σηµείων αυτών, αντίστοιχα. Όταν η εντολή δοθεί µε µια µόνο µονοδιάστατη λίστα, π.χ. plot( y)

106 106 Γραφικά στο Επίπεδο τότε γίνεται γραφική παράσταση του y ως συνάρτηση του δείκτη των στοιχείων της λίστας. Η διαδικασία αυτή είναι ένας γρήγορος τρόπος επισκόπησης του τρόπου µεταβολής του y. Παράδειγµα Στο παρακάτω παράδειγµα δηµιουργούµε 200 τιµές του x, οµοιόµορφα κατανεµηµένες στο διάστηµα [0, 4π], για τις οποίες υπολογίζουµε την τιµή της συνάρτησης y=cos(x). Τα δεδοµένα αυτά αποθηκεύονται στις λίστες x και y αντίστοιχα, και κατόπι γίνεται η γραφική τους παράσταση, όπως φαίνεται παρακάτω, x=linspace(0, 4*pi, 200); y=cos(x); plot(x,y) Η κλήση της εντολής plot µε µόνο όρισµα το y δίνει plot(y)

107 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot ιαµόρφωση γραφικής παράστασης Στο σχεδιασµό γραφηµάτων, το πρόγραµµα κάνει αυτόµατα µερικές επιλογές, όπως π.χ. επιλογή της κλίµακας των αξόνων, του εύρους των τιµών τους, κ.τ.λ. Ο χρήστης όµως έχει τη δυνατότητα να τροποποιήσει τις επιλογές αυτές, και να διαµορφώσει το γράφηµα σύµφωνα µε τις απαιτήσεις του. Παρακάτω παρουσιάζουµε µερικές περιπτώσεις διαµόρφωσης γραφήµατος, για περισσότερες όµως πληροφορίες ο χρήστης µπορεί να προστρέξει στο Help του προγράµµατος. 1. Καθορισµός εύρους αξόνων. Η περιοχή των αξόνων που εµφανίζεται στο διάγραµµα µπορεί να προσδιοριστεί από το χρήστη, τόσο για τον άξονα των τετµηµένων, όσο και για τον άξονα των τεταγµένων. Η εντολή είναι η ακόλουθη, axis([xmin xmax ymin ymax]) µε τους δύο πρώτους αριθµούς να καθορίζουν τον άξονα των τετµηµένων, και τους δύο επόµενους των τεταγµένων. 2. Τίτλος αξόνων. Η εντολή για τον καθορισµό του τίτλου των αξόνων του γραφήµατος είναι η ακόλουθη,

108 108 Γραφικά στο Επίπεδο xlabel('xlabel_name') ylabel('ylabel_name') 3. Τίτλος σχήµατος. Ο χρήστης µπορεί να ορίσει τίτλο για το σχήµα, µε την εντολή, title('figure title') 4. Εισαγωγή πλέγµατος. Στο σχήµα µπορεί να δηµιουργηθεί πλέγµα αξόνων µε την εντολή, grid on 5. Περίγραµµα σχήµατος. Το σχήµα τοποθετείται µέσα σε περίγραµµα µε την εντολή box on το οποίο διαγράφεται µε την εντολή box off Παράδειγµα Οι παραπάνω εντολές διαµόρφωσης του γραφήµατος εκτελούνται αµέσως µετά την εντολή για την εκτέλεση της γραφικής παράστασης, όπως φαίνεται στο επόµενο παράδειγµα, στο οποίο γίνεται γραφική παράσταση δεδοµένων που περιγράφουν τη συνάρτηση y = cos( t), t=linspace(0, 4*pi, 200); y=cos(t); plot(t,y) axis([0 4*pi -1 1]) xlabel('time t') ylabel('displacement y') title('figure 1') grid on

109 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot Figure displacement y time t 6. ιαµόρφωση καµπύλης. Εκτός από τις παραπάνω εντολές που διαµορφώνουν το πλαίσιο του σχήµατος, µπορούµε επίσης να διαµορφώσουµε και την καµπύλη που εµφανίζεται στο σχήµα, µε παραµέτρους που τοποθετούνται ως όρισµα στην εντολή plot. Η τροποποιηµένη µορφή της εντολής plot είναι η ακόλουθη, plot(x, y, χσγ ) δηλαδή µετά από τη δήλωση των λιστών που περιέχουν τις συντεταγµένες των σηµείων, µπορούν να δοθούν τρεις παράµετροι ως συµβολοσειρά, που οι τιµές τους να διαµορφώσουν τα ακόλουθα χαρακτηριστικά της καµπύλης, χ: Επιλέγει το χρώµα της καµπύλης, σ: Επιλέγει το σύµβολο που θα τοποθετηθεί στις θέσεις των σηµείων, γ: Επιλέγει το είδος της γραµµής. Οι δυνατές επιλογές για τα παραπάνω σύµβολα, µαζί µε την ερµηνεία τους, δίνονται στον επόµενο πίνακα, Παράµετροι διαµόρφωσης γραφήµατος

110 110 Γραφικά στο Επίπεδο Επιλογή χ Χρώµα Επιλογή σ Σύµβολο Επιλογή γ Γραµµή b Blue. Point - Solid g Green o Circle : Dotted r Red x Cross -. Dash-dot c Cyan + Plus sign -- Dashed m Magenta * Asterisk [κενό] Χωρίς γραµµή y Yellow s Square k Black d Diamond w White v Triangle (down) ^ Triangle (up) < Triangle (left) > Triangle (right) p Pentagon h Hexagon Σ ένα γράφηµα µπορεί να χρησιµοποιηθεί µόνο ένα µέρος από τις τρεις παραπάνω παραµέτρους διαµόρφωσης, και να παραληφθούν οι υπόλοιπες. Παράδειγµα Στο επόµενο σχήµα γίνεται διαµόρφωση της καµπύλης cos( x ), µε τη χρήση τριών παραµέτρων, x=linspace(0, 4*pi, 50); y=cos(x); plot(x,y,'bx-') axis([0 4*pi -1 1])

111 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot Συµπληρωµατικές παράµετροι για τη διαµόρφωση καµπύλης. Εκτός από τη διαµόρφωση ενός γραφήµατος µε τις παραπάνω παραµέτρους, µπορεί επίσης να γίνει διαµόρφωση ενός γραφήµατος µε συµπληρω- µατικές παραµέτρους που τοποθετούνται µέσα στην εντολή plot. Τέτοιες παράµετροι είναι: Η παράµετρος Color : Η παράµετρος αυτή τοποθετείται µέσα σε εισαγωγικά και η τιµή της αποδίδεται µε τη λίστα [R G B], όπου R, G, B αριθµοί µεταξύ µηδενός και ένα που αποδίδουν το ποσοστό του κόκκινου (R), πράσινου (G), και µπλε (B) στο χρώµα της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα, plot(x,y,'color',[1,0,0])

112 112 Γραφικά στο Επίπεδο Η παράµετρος LineWidth : Στη παράµετρο αυτή αποδίδεται ένας αριθµός που καθορίζει το πάχος της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα, plot(x,y,'color',[1,0,0],'linewidth',4)

113 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot 113 Η παράµετρος MarkerSize : Στη παράµετρο αυτή αποδίδεται ένας αριθµός που καθορίζει το µέγεθος των συµβόλων που τοποθετούνται στις θέσεις των σηµείων της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα, plot(x,y,'bx-','markersize',10) Εναλλακτικός τρόπος διαµόρφωσης καµπύλης, εντολή set. Εκτός από τους παραπάνω τρόπους διαµόρφωσης ενός γραφήµατος, µπορεί επίσης να γίνει διαµόρφωση µε τη χρήση της εντολής set, που ακολουθεί την εντολή plot. Με τη διαδικασία αυτή, πρώτα εκτελείται το αρχικό γράφηµα µε την εντολή plot, το οποίο αποδίδεται σε µια παράµετρο και κατόπι, διατηρώντας το σε ειδικό παράθυρο, εκτελούµε µέσα από το παράθυρο εντολών του MATLAB την εντολή set µε πρώτο όρισµα τη παράµετρο στην οποία έχει αποδοθεί το γράφηµα, και τα υπόλοιπα ορίσµατα να διαµορφώνουν το γράφηµα, όπως π.χ.: Το όρισµα Color που διαµορφώνει το χρώµα της καµπύλης. Η παράµετρος Color τοποθετείται µέσα σε εισαγωγικά και η τιµή της

114 114 Γραφικά στο Επίπεδο αποδίδεται, µε ένα δεύτερο όρισµα, µε τη λίστα [R G B], όπου R, G, B αριθµοί µεταξύ µηδενός και ένα που αποδίδουν το ποσοστό του κόκκινου (R), πράσινου (G), και µπλε (B) στο χρώµα της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα, x=linspace(0, 4*pi, 50); y=cos(x); fig=plot(x,y); set(fig,'color',[1,0,0]) Το όρισµα LineWidth που διαµορφώνει το πάχος της καµπύλης. Στη παράµετρο αυτή αποδίδεται, µε ένα δεύτερο όρισµα, ένας αριθµός που καθορίζει το πάχος της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα, fig=plot(x,y); set(fig,'color',[1,0,0],'linewidth',4)

115 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot Το όρισµα MarkerSize που διαµορφώνει το µέγεθος των συµβόλων. Στη παράµετρο αυτή αποδίδεται ένας αριθµός, µε ένα δεύτερο όρισµα, που καθορίζει το µέγεθος των συµβόλων που τοποθετούνται στις θέσεις των σηµείων της καµπύλης, όπως γίνεται στο παρακάτω παράδειγµα fig=plot(x,y,'bx-'); set(fig,'markersize',10)

116 116 Γραφικά στο Επίπεδο Εντολή scatter Όταν ενδιαφερόµαστε να αναπαραστήσουµε γραφικά τα σηµεία, χωρίς όµως να θέλουµε να τα συνδέσουµε µε µια καµπύλη, µπορούµε να χρησιµοποιήσουµε και την εντολή scatter(x, y, χσ ) Σηµειώστε ότι στην εντολή scatter δεν υπάρχει διαµόρφωση γραµµής. Παράδειγµα Η γραφική παράσταση της συνάρτησης y = cos( x), µε τη χρήση της εντολής scatter, δίνεται παρακάτω, x=0:0.2:4*pi; y=sin(x); fig1=scatter(x,y,'r+') axis([0 4*pi ])

117 6.1 Γραφική παράσταση δεδοµένων - Εντολή plot Εντολή stem Η εντολή stem αποδίδει σηµεία στο επίπεδο, και για κάθε σηµείο δηµιουργεί επιπλέον και ένα ευθύγραµµο τµήµα, που αποδίδει την τιµή της τεταγµένης του σηµείου αυτού. Η εντολή για τη δηµιουργία του γραφήµατος είναι η ακόλουθη, stem(x, y) όπου x και y είναι µονοδιάστατες λίστες που περιέχουν τις x και y συντεταγµένες των σηµείων αυτών, αντίστοιχα. Όταν η εντολή δίνεται µε µια µόνο µονοδιάστατη λίστα, π.χ. stem( y) τότε γίνεται γραφική παράσταση του y ως συνάρτηση του δείκτη των στοιχείων στη λίστα. Παράδειγµα

118 118 Γραφικά στο Επίπεδο Στο παρακάτω παράδειγµα χρησιµοποιείται η συνάρτηση sin(x) για τον καθορισµό των τιµών των στοιχείων της λίστας, και κατόπι γίνεται η απόδοση τους γραφικά µε την εντολή stem, a=sin(0:0.1:2*pi); stem(a) Πολλαπλές καµπύλες Εκτός από τις περιπτώσεις που παρουσιάσαµε στην προηγούµενη παράγραφο, έχουµε τη δυνατότητα, καλώντας µία φορά την εντολή plot, να εκτελέσουµε τη γραφική παράσταση πολλών οµάδων δεδοµένων, η καθεµιά απ τις οποίες δίνει και τη µεταβολή µιας διαφορετικής ποσότητας. Η εντολή µε την οποία εκτελείται ένα τέτοιο γράφηµα δίνεται παρακάτω, plot(x1, y1, χσγ, x2, y2, χσγ, ) όπου xi, yi είναι λίστες που έχουν αποθηκευµένες τις συντεταγµένες της i καµπύλης, η καθεµιά απ τις οποίες µπορεί να διαµορφωθεί µε διαφορετικό τρόπο µε τις παραµέτρους χσγ.

119 6.2 Πολλαπλές καµπύλες 119 Παράδειγµα Για τις τιµές της λίστας x υπολογίζονται οι ποσότητες y1=cos(x), και y2=sin(x), οι οποίες αποδίδονται γραφικά στο ίδιο γράφηµα, x=linspace(0, 4*pi, 50); y1=cos(x); y2=sin(x); plot(x,y1,'bx-',x,y2,'r*:') axis([0 4*pi -1 1]) Στην περίπτωση που οι x-συντεταγµένες όλων των καµπυλών του σχήµατος είναι οι ίδιες, τότε οι y-συντεταγµένες διαφορετικών καµπύλων µπορούν να αποθηκευτούν σε διαφορετικές γραµµές µιας λίστας w, και η γραφική τους παράσταση να δοθεί µε την εντολή plot(x,w) µε την οποία εκτελείται ξεχωριστά η γραφική παράσταση κάθε γραµµής της λίστας w ως συνάρτηση του x. Παράδειγµα ίνεται παρακάτω η γραφική παράσταση των καµπυλών y=cos(x) και y=sin(x), τα δεδοµένα των οποίων έχουν αποθηκευτεί στη λίστα w,

120 120 Γραφικά στο Επίπεδο x=linspace(0, 3*pi, 200); y1=cos(x); y2=sin(x); w=[y1;y2]; plot(x,w) Εντολή hold on Στις παραπάνω εφαρµογές δηµιουργήσαµε, µε µία εντολή, περισσότερες από µία γραφικές παραστάσεις. Επίσης, στις παραπάνω εφαρµογές, κάθε νέα κλήση της εντολής plot διέγραφε τυχόν προϋπάρχον παράθυρο γραφικών, και στη θέση του εµφανιζόταν το καινούργιο, µε τη νέα γραφική παράσταση. Υπάρχει όµως και η δυνατότητα να προσθέσουµε σε υπάρχουσα γραφική παράσταση νέες καµπύλες, µε διαδοχικές κλήσεις της εντολής plot. Για να γίνει αυτό θα πρέπει µε το πέρας της εκτέλεσης της πρώτης καµπύλης να δοθεί η εντολή hold on

121 6.2 Πολλαπλές καµπύλες 121 ώστε να παραµείνει ενεργό το παράθυρο που περιέχει την αρχική γραφική παράσταση, και µετά να δοθεί η εντολή για τις νέες γραφικές παραστάσεις. Στο τέλος της διαδικασίας δίνεται η εντολή hold off ώστε να απενεργοποιηθεί η εντολή hold on. Παράδειγµα Το παρακάτω γράφηµα, για τις καµπύλες y=cos(x), και y=sin(x), δηµιουργείται µε τη χρήση της εντολής hold on x=linspace(0, 3*pi, 200); y1=cos(x); y2=sin(x); plot(x,y1,'b-') axis([0 3*pi -1 1]) hold on plot(x,y2,'r:') hold off

122 122 Γραφικά στο Επίπεδο 6.3 Πολλαπλές εικόνες Στο MATLAB υπάρχει η δυνατότητα να δηµιουργηθεί ένα πλέγµα από γραφικές παραστάσεις, µε τη χρήση της εντολής subplot(n, m, i) η οποία δηµιουργεί ένα πλέγµα n m θέσεων για τη γραφική παράσταση n* m γραφηµάτων. Για να προστεθεί µια γραφική παράσταση στη θέση i του πλέγµατος αυτού, δίνεται πρώτα η εντολή subplot(n, m, i), οπότε ενεργοποιείται το παράθυρο στη θέση αυτή, και µετά δίνεται η εντολή plot για τη δηµιουργία της γραφικής παράστασης. Η προσµέτρηση των γραφηµάτων γίνεται γραµµή-γραµµή. Παράδειγµα Να δηµιουργηθεί ένα πλέγµα 2 2 γραφηµάτων, όπου στην πρώτη θέση να δοθεί η γραφική παράσταση της συνάρτησης y = sin( x), στη δεύτερη της y sin( x) 2 =, στην τρίτη της y x y = e x. 2 x = 4/(4 + ), και στη τέταρτη της sin( ) Πρώτα δηµιουργούνται οι λίστες µε τα σηµεία που θα απεικονιστούν, και µετά γίνεται η αναπαράσταση τους, x1=linspace(0,2*pi,50); y1=sin(x1); y2=sin(x1).^2; x2=linspace(0,10,50) y3=4./(4+x2.^2); y4=exp(-x2).*sin(x2); subplot(2,2,1) plot(x1,y1) axis([0 2*pi ]) title('figure 1: sin(x)') subplot(2,2,2) plot(x1,y2) axis([0 2*pi 0 1.1]) title('figure 2: sin(x)^2') subplot(2,2,3) plot(x2,y3)

123 6.4 Γραφική παράσταση συνάρτησης Εντολή ezplot 123 axis([ ]) title('figure 3: 4/(4+x^2)') subplot(2,2,4) plot(x2,y4) axis([ ]) title('figure 4: exp(-x) sin(x)') 1 Figure 1: sin(x) 1 Figure 2: sin(x) Figure 3: 4/(4+x 2 ) Figure 4: exp(-x) sin(x) Γραφική παράσταση συνάρτησης Εντολή ezplot Εκτός από τις γραφικές παραστάσεις δεδοµένων, το MATLAB έχει τη δυνατότητα να εκτελέσει και γραφικές παραστάσεις συναρτήσεων, µε τη χρήση της εντολής ezplot. Όπως όµως αναφέραµε στη παράγραφο 5.2, δεν είναι δυνατόν να χρησιµοποιηθεί άµεσα ως όρισµα της εντολής ezplot µια άλλη συνάρτηση, αλλά θα πρέπει στη θέση της να χρησιµοποιηθεί ένας οδηγός, µε τον παρακάτω τρόπο, ezplot( function_driver, [ xmin, xmax] )

124 124 Γραφικά στο Επίπεδο η οποία δίνει τη γραφική παράσταση της συνάρτησης που συνδέεται µε τον οδηγό, για τιµές της παραµέτρου x στο διάστηµα [xmin, xmax]. Όταν η εντολή για τη γραφική παράσταση δεν καθορίζει όρια, τότε δίνεται στο διάστηµα [-2π, 2π]. Παράδειγµα Στο επόµενο παράδειγµα ορίζουµε οδηγό για τη συνάρτηση y=sin(x), µε το όνοµα fsin, και µετά εκτελούµε τη γραφική της παράσταση, fsin=@sin; ezplot(fsin, [0, 5*pi]) Μπορούµε επίσης να εκτελέσουµε τη γραφική παράσταση µιας συνάρτησης µε τη χρήση ενός ανώνυµου οδηγού, µε τον ακόλουθο τρόπο, ezplot(@function_name, [ xmin, xmax] ) µε function_name το όνοµα της συνάρτησης. Παράδειγµα

125 6.4 Γραφική παράσταση συνάρτησης Εντολή ezplot 125 Μπορούµε να εκτελέσουµε τη γραφική παράσταση της συνάρτησης cos(x) µε τον ακόλουθο τρόπο, cos x Τέλος, µπορούµε να εκτελέσουµε τη γραφική παράσταση ανώνυµης έκφρασης, µε τον παρακάτω τρόπο, ezplot(@(x) sin(x)/(1+x), [0,6*pi])

126 126 Γραφικά στο Επίπεδο 6.5 Αποτύπωση πειραµατικών σφαλµάτων Σ ένα πείραµα, οι πειραµατικές µετρήσεις συνοδεύονται από το σφάλµα που υπεισέρχεται στη µέτρηση τους. Π.χ. η θέση y(t) ενός κινητού, τη χρονική στιγµή t, είναι γνωστή µε µια ακρίβεια y(t). Στην περίπτωση αυτή µπορούµε να αποθηκεύσουµε τις χρονικές στιγµές της µέτρησης στη λίστα t, τις θέσεις του κινητού στη λίστα y, και τα σφάλµατα στις µετρήσεις στη λίστα ey. Τα αποτελέσµατα αυτά µπορούν να παρασταθούν γραφικά, µε τις συντεταγµένες t, y } να δηλώνουν το σηµείο στο διάγραµµα, και το { i i σφάλµα να δηλώνεται µε τον καθορισµό ενός εύρους σηµείο της µέτρηση, µε την εντολή errorbar(t, y, ey, χσγ ) ey i γύρω από το [1] Σ ένα «εικονικό πείραµα», θεωρούµε ότι το αποτέλεσµα µιας «µέτρησης» προσοµοιάζεται από τη συνάρτηση yt () = sin( t/2), το δε «σφάλµα» της θεωρείται ότι είναι ίσο µε το 10% της τιµής του y. Η γραφική αναπαράσταση των «µετρήσεων» αυτών, µαζί µε τα σφάλµατα τους, δίνεται παρακάτω, t=0:0.2:12; y=sin(t/2); ey=0.1*y; plot(t,y) errorbar(t,y,ey) axis([ ])

127 6.6 Ιστογράµµατα Ιστογράµµατα Σε µερικά προβλήµατα, τις αριθµητικές τιµές µιας παραµέτρου, που είναι διασπαρµένες σε µια περιοχή, τις ταξινοµούµε (οµαδοποιούµε) σε ένα µικρό πλήθος οµάδων, µε κάθε µια από τις εµφανιζόµενες τιµές να εντάσσεται σε µία µόνο οµάδα. Κάθε οµάδα αντιπροσωπεύει και µια περιοχή τιµών, της οποίας το εύρος επιλέγεται να είναι µικρό σε σχέση µε το συνολικό εύρος, οπότε οι τιµές που ανήκουν σε µια οµάδα µπορεί να θεωρηθεί ότι «αντιπροσωπεύονται» από την κεντρική τιµή της οµάδας. Η γραφική παράσταση των οµαδοποιηµένων δεδοµένων γίνεται µε το λεγόµενο ιστόγραµµα. Στον οριζόντιο άξονα της γραφικής παράστασης του ιστογράµµατος δηλώνονται τα όρια των επιµέρους περιοχών, και στη συνέχεια κατασκευάζονται διαδοχικά ορθογώνια µε το εµβαδόν τους να είναι ανάλογο µε το πλήθος των στοιχείων της οµάδας. Το MATLAB έχει τη δυνατότητα κατασκευής ιστογραµµάτων. Αποθηκεύοντας στη λίστα x τους αριθµούς που καθορίζουν τα όρια των περιοχών, και στη y τα δεδοµένα που θα παρασταθούν γραφικά µε το ιστόγραµµα, δηµιουργούµε το ιστόγραµµα δεδοµένων µε την εντολή hist (y, x )

128 128 Γραφικά στο Επίπεδο Όταν η εντολή δοθεί µε µόνο όρισµα τη λίστα y των δεδοµένων, π.χ. hist( y) τότε το πρόγραµµα επιλέγει αυτόµατα τα όρια των περιοχών. Η διαδικασία αυτή είναι ένας γρήγορος τρόπος επισκόπησης του ιστογράµµατος του y, ώστε κατόπι να µπορέσουµε να επιλέξουµε τις κατάλληλες περιοχές. Παράδειγµα ηµιουργείστε ένα σύνολο Ν=5000 τυχαίων αριθµών που παράγονται από την κανονική κατανοµή µε µέση τιµή µηδέν και διασπορά ένα, και κατασκευάστε το ιστόγραµµα τους. Συγκρίνετε το αποτέλεσµα αυτό µε τη θεωρητική καµπύλη. Η θεωρητική συνάρτηση της κανονικής κατανοµής Ν(1, 0) είναι η ακόλουθη 1 2 Px ( ) = exp( x/ 2), 2π και η πρόβλεψη της για τον αριθµό των σηµείων µέσα σε ένα εύρος h γύρο 1 2 από τη θέση x, δίνεται από τη σχέση n= N h exp( x / 2), όπου Ν ο 2π συνολικός αριθµός των τυχαίων αριθµών. Το ιστόγραµµα της κατανοµής των τυχαίων αριθµών, µαζί µε τη θεωρητική πρόβλεψη, δίνεται παρακάτω, x=-2.9:0.2:2.9; y=randn(5000,1); hist(y,x) hold on ezplot(@(x) 5000*0.2*exp(-x^2/2)/sqrt(2*pi),[-3 3],'r') hold off

129 6.7 Ηµιλογαριθµικές και λογαριθµικές κλίµακες Ηµιλογαριθµικές και λογαριθµικές κλίµακες Οι γραφικές παραστάσεις που παρουσιάστηκαν µέχρι τώρα αναφέρονται σε περιπτώσεις όπου οι άξονες είναι γραµµικοί. Όµως, σε αρκετές περιπτώσεις η προκύπτουσα µεταβολή τιµών είναι τέτοια που είναι προτιµότερο, για την καλύτερη παρουσίαση των αποτελεσµάτων, να χρησιµοποιηθεί λογαριθµική κλίµακα. Η λογαριθµική αυτή κλίµακα µπορεί να αφορά είτε τον έναν, τον x ή y άξονα, είτε και τους δύο άξονες, και η αντίστοιχη εντολή για τη δηµιουργία της γραφικής παράστασης είναι semilogx, semilogy, και loglog Στις δύο πρώτες δηλαδή περιπτώσεις δηµιουργείται ένα ηµιλογαριθµικό διάγραµµα µε τον άξονα x ή y ηµιλογαριθµικό αντίστοιχα, και στην τελευταίαν ένα λογαριθµικό διάγραµµα.

130 130 Γραφικά στο Επίπεδο [1] Ένα παράδειγµα µιας ηµιλογαριθµικής γραφικής παράστασης, µε λογαριθµικό άξονα των y, είναι η γραφική παράσταση δεδοµένων που προκύπτουν από τη συνάρτηση f ( x) = exp( x) : x=0.0:0.5:10; y=exp(x); semilogy(x,y) [2] Ένα δεύτερο παράδειγµα µιας ηµιλογαριθµικής γραφικής παράστασης, µε λογαριθµικό άξονα των x, είναι η γραφική παράσταση δεδοµένων που προκύπτουν από τη συνάρτηση y = log( x) + 2 : x=1:2:100; y=log(x)+2; semilogx(x,y)

131 6.7 Ηµιλογαριθµικές και λογαριθµικές κλίµακες [3] Τέλος ένα άλλο παράδειγµα λογαριθµικής γραφικής παράστασης, είναι η γραφική παράσταση δεδοµένων που προκύπτουν από τη συνάρτηση y x 4 = : x=1:2:100; y=x.^4; loglog(x,y)

132 132 Γραφικά στο Επίπεδο Πολικά διαγράµµατα Η εξίσωση µιας επίπεδης καµπύλης, σε πολικές συντεταγµένες, έχει τη µορφή r=f(θ), και µας δίνει την απόσταση των σηµείων της καµπύλης από την αρχή των αξόνων ως συνάρτηση της πολικής γωνίας θ. Μπορούµε να δηµιουργήσουµε το πολικό διάγραµµα της καµπύλης αυτής, είτε µε τη χρήση αριθµητικών δεδοµένων που απεικονίζουν τη συνάρτηση, είτε µε τη γραφική παράσταση της ίδιας της συνάρτησης Πολικό διάγραµµα δεδοµένων εντολή polar Για τη δηµιουργία του πολικού διαγράµµατος από δεδοµένα, πρέπει πρώτα να δηµιουργήσουµε τα δεδοµένα αυτά, { θ i, ri}, τα οποία αποθηκεύουµε σε ξεχωριστές λίστες. Έστω ότι οι λίστες αυτές είναι οι theta και rho αντίστοιχα, τότε η εντολή για το γράφηµα είναι polar (theta, rho, χσγ ) Παράδειγµα Να σχεδιαστεί το πολικό διάγραµµα της συνάρτησης δηµιουργώντας πρώτα τις λίστες µε τα δεδοµένα, r 2 = sin (2 θ ),

133 6.8 Πολικά διαγράµµατα 133 th=linspace(0, 2*pi, 150); rth=sin(2*th).^2; polar(th, rth) Πολικό διάγραµµα συνάρτησης εντολή ezpolar Η εντολή ezpolar εκτελεί το πολικό γράφηµα µιας συνάρτηση r=f(θ), µε τον ακόλουθο τρόπο, f(θ), [ θmin, θmax] ) όπου χρησιµοποιείται ένας ανώνυµος οδηγός για την εισαγωγή της συνάρτησης που θέλουµε να παραστήσουµε γραφικά. Παράδειγµα Να σχεδιαστεί το πολικό διάγραµµα της συνάρτησης r 2 = sin (2 θ ). (sin(2*t)).^2,[0,2*pi])

134 134 Γραφικά στο Επίπεδο r = (sin(2 t)) Παραµετρικές καµπύλες - Πεπλεγµένες συναρτήσεις Στις συνηθισµένες γραφικές παραστάσεις στο επίπεδο, δίνεται η συντεταγ- µένη y ως συνάρτηση της x µε µια εξίσωση της µορφής y = f( x). Σε µερικές όµως περιπτώσεις, η εξάρτηση του y από το x δίνεται είτε σε παραµετρική µορφή, είτε σε πεπλεγµένη µορφή. Τις γραφικές παραστάσεις στις δύο αυτές περιπτώσεις θα εξετάσουµε παρακάτω Γραφική παράσταση παραµετρικής καµπύλης Στην περίπτωση µιας παραµετρικής καµπύλης στο επίπεδο, οι συντεταγµένες x και y δίνονται ως συναρτήσεις µιας ανεξάρτητης µεταβλητής, π.χ. της t, µε τη µορφή x = xt () και y = y() t. Η γραφική παράσταση της καµπύλης αυτής εκτελείται µε την εντολή, ezplot(@(t) y(t), [tmin, tmax]) στην οποία χρησιµοποιούνται οδηγοί για την εισαγωγή των συναρτήσεων x(t) και y(t) στην εντολή ezplot. Στην περίπτωση που δεν καθοριστεί πεδίο τιµών της µεταβλητής t, τότε το γράφηµα εκτελείται στο πεδίο τιµών 0<t<2π.

135 6.9 Παραµετρικές καµπύλες - Πεπλεγµένες συναρτήσεις 135 Παράδειγµα [1] Η γραφική παράσταση της παραµετρικής καµπύλης {cos(2t), sin(3t)}, για t στο διάστηµα [0, 2π], δίνεται παρακάτω, ezplot(@(t) cos(3*t), [0,2*pi]) 1 x = sin(2 t), y = cos(3 t) y x Γραφική παράσταση πεπλεγµένης συνάρτησης Αρκετά συχνά, η συνάρτηση που θέλουµε να παραστήσουµε γραφικά δίνεται σε πεπλεγµένη µορφή ως εξίσωση F(x, y)=0, η οποία γενικά δεν µπορεί να επιλυθεί ως προς y. Το MATLAB έχει τη δυνατότητα να εκτελέσει γραφικές παραστάσεις τέτοιων πεπλεγµένων συναρτήσεων µε την εντολή: ezplot(@(x, y) F(x, y), [ xmin, xmax, ymin, ymax]) στην οποία χρησιµοποιείται οδηγός για την εισαγωγή της συνάρτησης δύο µεταβλητών F(x, y) στην εντολή ezplot. Στην περίπτωση που δεν καθοριστεί πεδίο τιµών για τις µεταβλητές x και y, τότε το γράφηµα εκτελείται για το πεδίο τιµών -2π<x<2π και -2π<y<2π.

136 136 Γραφικά στο Επίπεδο Παράδειγµα Να κατασκευαστεί η γραφική παράσταση της συνάρτησης πεδίο περιοχής τιµών 5 < xy, < 5. x y = 4, στο 2 2 ezplot(@(x,y) x.^2-y.^2-4,[-5,5,-5,5]) 4 x 2 -y 2-4 = y x Αν δοθεί η εντολή χωρίς να καθοριστεί περιοχή τιµών, παίρνουµε ezplot(@(x,y) x.^2-y.^2-4) 6 x 2 -y 2-4 = y x

137 6.9 Παραµετρικές καµπύλες - Πεπλεγµένες συναρτήσεις 137

138 138 ΚΕΦΑΛΑΙΟ 7 ΚΕΦΑΛΑΙΟ 7 ιαχείριση του MATLAB Στο παρόν κεφάλαιο παραθέτονται µερικές χρήσιµες πληροφορίες σχετικά µε τη διαχείριση του MATLAB. Περισσότερες πληροφορίες µπορείτε να βρείτε στο Help του προγράµµατος και σε ειδικά βιβλία. 7.1 Βασικά µέρη του προγράµµατος Τα βασικά µέρη του MATLAB, τα οποία και αξιοποιεί ο χρήστης για την εκτέλεση των πράξεων, είναι τα ακόλουθα, 1. Παράθυρο διαχείρισης (Command Window) 2. Βασικός χώρος λειτουργίας (Workspace) του προγράµµατος, 3. Ενεργός διεύθυνση αποθήκευσης (Current Directory), και 4. Αρχείο καταχώρισης εντολών (Command History). Στην παρούσα παράγραφο θα δώσουµε µια γενική περιγραφή της λειτουργίας τους, αφήνοντας για άλλες παραγράφους την παρουσίαση περισσότερων λεπτοµερειών σχετικά µε τη διαχείριση τους Παράθυρο διαχείρισης (Command Window) Το παράθυρο διαχείρισης εµφανίζεται µε την έναρξη του προγράµ- µατος, και µέσα σ αυτό γράφονται οι εντολές, δίνεται η εντολή εκτέλεσης

139 7.1 Βασικά µέρη του προγράµµατος 139 τους, και εµφανίζονται τα αποτελέσµατα των πράξεων, γίνονται δηλαδή όλες οι αλληλεπιδράσεις του χρήστη µε το πρόγραµµα Βασικός χώρος λειτουργίας (Workspace) Ο χώρος διεκπεραίωσης των πράξεων είναι ο βασικός χώρος λειτουργίας του προγράµµατος (Workspace). Ο χώρος αυτός βρίσκεται στη µνήµη του υπολογιστή, µέσα στον οποίο εκτελούνται οι πράξεις και ταυτόχρονα διατηρούνται όλα τα αποτελέσµατα, τα οποία µπορούν να χρησιµοποιηθούν σε επόµενες πράξεις Ενεργός διεύθυνση αποθήκευσης (Current directory) Μέσα από το παράθυρο διαχείρισης του MATLAB υπάρχει η δυνατότητα να δοθεί εντολή αποθήκευσης δεδοµένων σε αρχείο, ή ανάγνωσης δεδοµένων από αρχείο. Τα αρχεία αυτά αποθηκεύονται σε κάποια διεύθυνση, ή ανακτώνται από κάποια διεύθυνση του σκληρού δίσκου του υπολογιστή. Θα πρέπει λοιπόν να καθορίζεται σε ποια διεύθυνση θα κατευθυνθεί ο υπολογιστής για να εκτελέσει τη λειτουργία αυτή. Για το σκοπό αυτό έχει προκαθορισθεί, από τον κατασκευαστή του προγράµµατος, ως ενεργός διεύθυνση αποθήκευσης (current directory) η διεύθυνση work που βρίσκεται µέσα στη κεντρική διεύθυνση εγκατάστασης του MATLAB. Όταν λοιπόν µέσα από το MATLAB δοθεί η εντολή για αποθήκευση ενός αρχείου, χωρίς να προσδιοριστεί από το χρήστη διεύθυνση αποθήκευσης, τότε το πρόγραµµα αποθηκεύει το αρχείο στην προεπιλεγµένη για το σκοπό αυτό διεύθυνση. Όταν όµως καθοριστεί από το χρήστη και η διεύθυνση στην οποία θα πρέπει να γίνει η αποθήκευση, τότε το πρόγραµµα αγνοεί την ενεργό διεύθυνση αποθήκευσης και κατευθύνεται στη διεύθυνση που έχει οριστεί. Ο χρήστης έχει επίσης τη δυνατότητα να αλλάξει την προεπιλεγµένη διεύθυνση αποθήκευσης, και να την αντικαταστήσει µε µια άλλη διεύθυνση της αρεσκείας του. Η διαδικασία αυτή εκτελείται µέσα από το παράθυρο διαχείρισης του προγράµµατος, όπου στη µπάρα της πρώτης σελίδας του προγράµµατος, και δίπλα στο παράθυρο µε την ετικέτα Current Directory, εµφανίζεται εικονίδιο µε τρεις τελείες, το οποίο µε την ενεργοποίηση του µε

140 140 ιαχείριση του MATLAB τον κέρσορα του «ποντικιού», εµφανίζει το παράθυρο που δείχνεται παρακάτω, το οποίο µας καθοδηγεί στο να ορίσουµε την καινούργια ενεργό διεύθυνση αποθήκευσης (µέσα από το εικονίδιο Make New Folder) Αρχείο καταχώρησης εντολών (Command History) Οι εντολές που εκτελούνται µέσα από το παράθυρο διαχείρισης, καταχωρούνται στο αρχείο καταχώρησης εντολών (Command History) του προγράµµατος. Μια εντολή που εκτελέστηκε προγενέστερα, µπορεί να επαναφερθεί στο παράθυρο διαχείρισης για εκτέλεση, µε τη χρήση των πλήκτρων και. Μετά την επαναφορά, έχουµε τη δυνατότητα πρώτα να την τροποποιήσουµε και µετά να την εκτελέσουµε.

Οδηγός στη Χρήση του Υπολογιστή

Οδηγός στη Χρήση του Υπολογιστή 2 Οδηγός στη Χρήση του Υπολογιστή ΤΟΜΟΣ Β : Αριθμητικός & Οπτικός Προγραμματισμός 3 ΟΔΗΓΟΣ στη ΧΡΗΣΗ του ΥΠΟΛΟΓΙΣΤΗ 4 Οδηγός στη Χρήση του Υπολογιστή ΤΟΜΟΣ Β : Αριθμητικός & Οπτικός Προγραμματισμός 5 ΓΕΩΡΓΙΟΣ

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

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 2 ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 3 ΟΔΗΓΟΣ στη ΧΡΗΣΗ του ΥΠΟΛΟΓΙΣΤΗ 4 ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός 5 ΓΕΩΡΓΙΟΣ ΘΕΟΔΩΡΟΥ Καθηγητής Α.Π.Θ. ΧΡΙΣΤΙΝΑ ΘΕΟΔΩΡΟΥ Μαθηματικός ΟΔΗΓΟΣ στη ΧΡΗΣΗ του ΥΠΟΛΟΓΙΣΤΗ

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

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Εισαγωγή στη Matlab Βασικές Συναρτήσεις Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας Εισαγωγή στη Matlab Βασικές Συναρτήσεις 2016-2017 Εισαγωγή στη Matlab Matlab

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #4: Πίνακες στο MATLAB Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Πίνακες στο MATLAB MATLAB Fundamentals Α. Καλαμπούνιας Επισκόπιση: Scalars και

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ Ι ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ Τύποι δεδομένων Οι παρακάτω τύποι δεδομένων υποστηρίζονται από τη γλώσσα προγραμματισμού Fortran: 1) Ακέραιοι αριθμοί (INTEGER). 2) Πραγματικοί αριθμοί απλής ακρίβειας

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

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με εφαρμογές στη Βιοϊατρική Εργαστήριο Μαθηματικής Ανάλυσης Ι Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις Εισαγωγή στη

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

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB (το παρόν αποτελεί τροποποιηµένη έκδοση του οµόνυµου εγχειριδίου του κ. Ν. Μαργαρη) 1 ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ 1.1 ΠΡΑΞΕΙΣ ΜΕ ΠΡΑΓΜΑΤΙΚΟΥΣ ΑΡΙΘΜΟΥΣ 1.1.1 ΠΡΟΣΘΕΣΗ» 3+5 8 % Το σύµβολο

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

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

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Τύποι δεδομένων Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

Συστήματα Αναμονής (Queuing Systems)

Συστήματα Αναμονής (Queuing Systems) ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βέλτιστου Σχεδιασμού Δικτύων Τηλεματικής

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

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα, Πανεπιστήμιο

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #4: Εισαγωγή στο MATLAB Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Εισαγωγή στο MATLAB Α. Καλαμπούνιας MATLAB? MATrix LABoratory Εργαστήριο Πινάκων

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 1 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 1 1.1 ΕΙΣΑΓΩΓΗ ΣΤΗ FORTRAN 77 Ένα πρόγραµµα σε οποιαδήποτε γλώσσα προγραµµατισµού δεν τίποτα άλλο από µια σειρά εντολών που πρέπει

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

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής email: dzavanti@cs.uoi.gr Περιεχόμενα Τι είναι η Matlab; Ιστορικά Χρήσεις και στοιχεία της Matlab

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

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος 1 Τι είναι τα Matlab και Simulink? Το Matlab (MATrix LABoratory) είναι ένα περιβάλλον επιστημονικού

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ ΕΙΣΑΓΩΓΗ ΣΤΟ MATHLAB Α ΜΕΡΟΣ ΕΙΣΑΓΩΓΗ ΠΙΝΑΚΩΝ ΣΤΟ MATHLAB Αν θέλουμε να εισάγουμε έναν πίνακα στο mathlab και να προβληθεί στην οθόνη βάζουμε τις τιμές του σε άγκιστρα χωρίζοντάς τις με κόμματα ή κενό

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

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

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.]

MATLAB Desktop (Επιφάνεια Εργασίας MATLAB) [1.] Εισαγωγή στο MATLAB Το MATLAB αποτελεί ένα εμπορικό εργαλείο το οποίο προσφέρει ένα διαδραστικό προγραμματιστικό περιβάλλον στον χρήστη και χρησιμοποιείται σε ένα μεγάλο εύρος εφαρμογών. Ενσωματώνει μια

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Εισαγωγή στο Πρόγραμμα Maxima

Εισαγωγή στο Πρόγραμμα Maxima Εισαγωγή στο Πρόγραμμα Maxima Το Maxima είναι ένα πρόγραμμα για την εκτέλεση μαθηματικών υπολογισμών, συμβολικών μαθηματικών χειρισμών, αριθμητικών υπολογισμών και γραφικών παραστάσεων. Το Maxima λειτουργεί

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

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Βάσης Δεδομένων (dbadmin) Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Εμπορική Διαχείριση > Διαχείριση Βάσης Δεδομένων (dbadmin) Διαχείριση Βάσης Δεδομένων (dbadmin) Μέσα από τη διαχείριση βάσης δεδομένων

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

http://users.auth.gr/~ppi/mathematica

http://users.auth.gr/~ppi/mathematica http://users.auth.gr/~ppi/mathematica ΜΑΘΗΜΑΤΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΡΙΘΜΗΤΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ Γλώσσες Προγραμματισμού Fortran, C++, Java,. ΑΛΓΕΒΡΙΚΟΙ ή ΣΥΜΒΟΛΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ Computer Algebra Systems Mathematica,

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα...

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα... Κ. Π Α Π Α Ρ Ρ Ι Ζ Ο Σ M A T L A B 6 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ρ Ο Λ Ο Γ Ο Σ............. v Κ Ε Φ Α Λ Α Ι Ο 1 Β Α Σ Ι Κ Ε Σ Λ Ε Ι Τ Ο Υ Ρ Γ Ι Ε Σ Τ Ο Υ M A T L A B 1 1.1 ΠΡΑΞΕΙΣ ΚΑΙ ΑΡΙΘΜΗΤΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και Τεχνολογία Μια Εισαγωγή Περιεχόμενο μαθήματος: Αλγοριθμική επίλυση προβλημάτων Προγραμματισμός

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

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο

Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο Η Mathematica είναι ένα ολοκληρωμένο μαθηματικό πακέτο με πάρα πολλές δυνατότητες σε σχεδόν όλους τους τομείς των μαθηματικών (Άλγεβρα, Θεωρία συνόλων, Ανάλυση,

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τύποι δεδομένων, μεταβλητές, πράξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό

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

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Πληροφορική Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες. Κωνσταντίνος Καρατζάς

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

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

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

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Εισαγωγή στην Tcl. Τί είναι η Tcl; 1 Εισαγωγή στην Tcl Τί είναι η Tcl; Το αρκτικόλεξο Tcl προέρχεται από τις λέξεις «Tool Control Language». Η Tcl είναι μια γλώσσα προγραμματισμού για scripts γενικής χρήσεως, τα οποία επίσης μπορούν να

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

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. MATLAB Tι είναι το λογισµικό MATLAB? Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. Σύστηµα αλληλεπίδρασης µε τοχρήστηγια πραγµατοποίηση επιστηµονικών υπολογισµών (πράξεις µε πίνακες επίλυση

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

Περιεχόμενα. 1.1 Εισαγωγή Τυπογραφικές συμβάσεις Τι νέο υπάρχει στο MATLAB Τι περιέχει το βιβλίο...17

Περιεχόμενα. 1.1 Εισαγωγή Τυπογραφικές συμβάσεις Τι νέο υπάρχει στο MATLAB Τι περιέχει το βιβλίο...17 Περιεχόμενα Πρόλογος... 13 1 Ξεκίνημα... 15 1.1 Εισαγωγή...15 1.2 Τυπογραφικές συμβάσεις...16 1.3 Τι νέο υπάρχει στο MATLAB 7...16 1.4 Τι περιέχει το βιβλίο...17 2 Βασικά χαρακτηριστικά... 19 2.1 Απλές

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

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13 1.1. Τι είναι το Matlab... 13 1.2. Περιβάλλον εργασίας... 14 1.3. Δουλεύοντας με το Matlab... 16 1.3.1. Απλές αριθμητικές πράξεις... 16 1.3.2. Σχόλια...

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ρ. Γεώργιος Φ. Φραγκούλης Καθηγητής Ver. 0.2 9/2012 ιανύσµατα & ισδιάστατοι πίνακες Ένα διάνυσµα u = (u1, u2,, u ) εισάγεται στη MATLAB ως εξής : u=[ u1, u2,, un ] ή u=[ u1

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

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

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ 290 7.5.1 Κατασκευή αραιών µητρών... 290 7.5.2 Πράξεις και συναρτήσεις αραιών µητρών... 294 7.5.3 Συναρτήσεις για γραφήµατα...

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ 290 7.5.1 Κατασκευή αραιών µητρών... 290 7.5.2 Πράξεις και συναρτήσεις αραιών µητρών... 294 7.5.3 Συναρτήσεις για γραφήµατα... Κ. Π Α Π Α Ρ Ρ Ι Ζ Ο Σ M A T L A B 6. 5 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Π Ρ Ο Λ Ο Γ Ο Σ............. v Κ Ε Φ Α Λ Α Ι Ο 1 Β Α Σ Ι Κ Ε Σ Λ Ε Ι Τ Ο Υ Ρ Γ Ι Ε Σ Τ Ο Υ M A T L A B 1 1.1 ΠΡΑΞΕΙΣ ΚΑΙ ΑΡΙΘΜΗΤΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab Εργαστήρια Αριθμητικής Ανάλυσης Ι 1 ο Εργαστήριο Εισαγωγή στο Matlab 2017 Εισαγωγή Στα εργαστήρια θα ασχοληθούμε με την υλοποίηση των αριθμητικών μεθόδων που βλέπουμε στο θεωρητικό μέρος του μαθήματος,

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

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019 Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019 Απαντήσεις Πολλαπλής Επιλογής Ε Ω : 1 2 3 4 5 A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2 Τα ϑέµατα της εξέτασης δίνονται σε 2 ϕυλλάδια (ένα για κάϑε διδάσκοντα).

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Δρ. Π. Νικολαΐδου Προγραμματίζοντας στη γλώσσα R Εισαγωγή ( 1 ο Μάθημα ) Βασικές εντολές - λειτουργίες Μπορούμε να διαγράψουμε το περιεχόμενο της R κονσόλας επιλέγοντας Edit>Clear

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

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής Σύντοµος Οδηγός της Qbasic Πέρδος Αθανάσιος Καθηγητής Πληροφορικής ηλώσεις Η γλώσσα Qbasic δεν απαιτεί υποχρεωτικά τη δήλωση των µεταβλητών στο τµήµα δηλώσεων, πριν το κύριο µέρος του προγράµµατος. Η δήλωση

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Εντολές Αντικατάστασης, Συναρτήσεις και Σχόλια στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

ημιουργία και διαχείριση πινάκων

ημιουργία και διαχείριση πινάκων ημιουργία και διαχείριση πινάκων Για να δημιουργήσουμε έναν πίνακα στο MATLAB μπορούμε να γράψουμε A = [ 2 3 ; 7 9 0 ; - 0 5; -2-3 9 -] βλέπουμε ότι αμέσως μας επιστρέφει τον πίνακα που ορίσαμε A = 2 3

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

Συνοπτικός οδηγός MATLAB & OCTAVE. (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d

Συνοπτικός οδηγός MATLAB & OCTAVE. (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d Συνοπτικός οδηγός MATLAB & OCTAVE (έως και συναρτήσεις) Ιωάννης Καλατζής 2018d ΕΓΚΑΤΑΣΤΑΣΗ ΓΕΝΙΚΑ 2 MATLAB Το MATLAB είναι ένα περιβάλλον για επιστημονικό και τεχνικό προγραμματισμό, ιδανικό για ανάπτυξη

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

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

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

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

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση Ηµεροµηνία επιστροφής : Τετάρτη 4/11/2010 18 Οκτωβρίου 2010 1 Γραµµική άλγεβρα (20 µονάδες) Η παράγωγος ενός µητρώου H ορίζεται ως η παράγωγος κάθε

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

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop. Η δοµή «Shift register» 1. Η δοµή «Shift register» εισάγεται στο βρόγχο for-loop αλλά και σε άλλους βρόγχους που θα δούµε στη συνέχεια, όπως ο βρόγχος «While loop». Ο τρόπος εισαγωγής και λειτουργίας της

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

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση- Μάθηµα 3 Προχωρηµένες ιδιότητες πεδίων Μάσκες εισαγωγής Οι ιδιότητες Μορφή και Μάσκα εισαγωγής περιγράφονται µαζί γιατί έχουν κοινά χαρακτηριστικά που αφορούν την εµφάνιση. Με την ιδιότητα Μορφή καθορίζουµε

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

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

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.) ΣΥΝΑΡΤΗΣΕΙΣ Συνάρτηση είναι ένας έτοιμος τύπος ο οποίος δέχεται σαν είσοδο τιμές ή συνθήκες και επιστρέφει ένα αποτέλεσμα, το οποίο μπορεί να είναι μια τιμή αριθμητική, αλφαριθμητική, λογική, ημερομηνίας

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

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

Geogebra. Μακρή Βαρβάρα. Λογισµικό Geogebra

Geogebra. Μακρή Βαρβάρα. Λογισµικό Geogebra Λογισµικό Geogebra 1 Τι είναι το πρόγραµµα Geogebra; Το πρόγραµµα GeoGebra, είναι ένα δυναµικό µαθηµατικό λογισµικό που συνδυάζει Γεωµετρία, Άλγεβρα και λογισµό. Αναπτύσσεται από τον Markus Hohenwarter

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων Πληροφορικής 2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών 3. Ο αλγόριθμος

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

ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου

ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου Κ. ΝΑΣΟΠΟΥΛΟΣ - Α. ΧΡΗΣΤΙ ΟΥ Κ. ΝΑΣΟΠΟΥΛΟΣ - Α. ΧΡΗΣΤΙ ΟΥ Οκτώβριος 011 MATLAB

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

Εισαγωγικές σημειώσεις στο Matlab

Εισαγωγικές σημειώσεις στο Matlab Εισαγωγικές σημειώσεις στο Matlab 2011 Athens by Cheilakos Nick Τι είναι το Matlab; Το Matlab είναι ένα διαδραστικό πακέτο για αριθμητικούς υπολογισμούς που δημιουργήθηκε από τον Cleve Moler την δεκαετία

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Διαχείριση Βάσης Δεδομένων (dbadmin) > Αρχεία Αρχεία Εισαγωγή από αρχείο ASCII Με την εργασία αυτή έχετε την δυνατότητα να εισάγετε

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

Έναρξη Τερματισμός του MatLab

Έναρξη Τερματισμός του MatLab Σύντομος Οδηγός MATLAB Β. Χ. Μούσας 1/6 Έναρξη Τερματισμός του MatLab Η έναρξη της λειτουργίας του MatLab εξαρτάται από το λειτουργικό σύστημα. Στα συστήματα UNIX πληκτρολογούμε στη προτροπή του συστήματος

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

Χρονικές σειρές 3 o μάθημα: Εισαγωγή στη MATLAB

Χρονικές σειρές 3 o μάθημα: Εισαγωγή στη MATLAB Χρονικές σειρές 3 o μάθημα: Εισαγωγή στη MATLAB Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα, Πανεπιστήμιο

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel... 9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel... 9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop.

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop. Ο βρόγχος While-loop 1. Ο βρόγχος while-loop εκτελείται έως ότου ικανοποιηθεί µία προκαθορισµένη συνθήκη. 2. Ο αριθµός των επαναλήψεων ενός βρόγχου while-loop δεν είναι εκ των προτέρων προκαθορισµένος,

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγή Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη και

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

Κεφάλαιο Πέµπτο: Η Εξάσκηση

Κεφάλαιο Πέµπτο: Η Εξάσκηση Κεφάλαιο Πέµπτο: Η Εξάσκηση 1. Γενικά Η εξάσκηση στο Εργαστήριο προϋποθέτει τη γνώση των εντολών (τουλάχιστον) τις οποίες καλείται ο σπουδαστής κάθε φορά να εφαρµόσει. Αυτές παρέχονται µέσω της Θεωρίας

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

Εκπαιδευτικό λογισµικό µονοβάθµιου ταλαντωτή Educational Single Degree Of Freedom Software. ESDOFsoftware

Εκπαιδευτικό λογισµικό µονοβάθµιου ταλαντωτή Educational Single Degree Of Freedom Software. ESDOFsoftware Εκπαιδευτικό λογισµικό µονοβάθµιου ταλαντωτή Educational Single Degree Of Freedom Software ESDOFsoftware Ως οδηγίες χρήσης του λογισµικού ESDOFsoftware δίνονται εδώ οι επιλύσεις µιας σειράς παραδειγµάτων.

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 2) Σεπτέμβριος 2015

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Μιχάλης ρακόπουλος Ακαδ. έτος 2011 2012 Εισαγωγικές έννοιες 2 Βασικές προγραµµατιστικές έννοιες

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

4.1 Πράξεις με Πολυωνυμικές Εκφράσεις... 66

4.1 Πράξεις με Πολυωνυμικές Εκφράσεις... 66 Περιεχόμενα Ευρετήριο Πινάκων... 7 Ευρετήριο Εικόνων... 8 Εισαγωγή... 9 Κεφάλαιο 1-Περιβάλλον Εργασίας - Στοιχεία Εντολών... 13 1.1 Το Πρόγραμμα... 14 1.2.1 Εισαγωγή Εντολών... 22 1.2.2 Εισαγωγή Εντολών

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

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος Εργαστήρια Αριθμητικής Ανάλυσης Ι 4 ο Εργαστήριο Διανύσματα-Πίνακες 1 ο Μέρος 2017 Εισαγωγή Όπως έχουμε προαναφέρει σε προηγούμενα εργαστήρια. Ο βασικός τύπος δεδομένων στο Matlab είναι οι πίνακες. Ένα

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

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας H Matlab ως γλώσσα προγραμματισμού Προγραμματιστικές δομές Έλεγχος ροής if if

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Ενότητα 1: Εισαγωγή στο Matlab Διδάσκουσα: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

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

Γενικός τρόπος σύνταξης: Όνομα_συνάρτησης(όρισμα1,όρισμα2,,όρισμαΝ) Η ονομασία τους είναι δεσμευμένη. Παραδείγματος χάριν: sin(x) cos(x) tan(x) exp(x)

Γενικός τρόπος σύνταξης: Όνομα_συνάρτησης(όρισμα1,όρισμα2,,όρισμαΝ) Η ονομασία τους είναι δεσμευμένη. Παραδείγματος χάριν: sin(x) cos(x) tan(x) exp(x) Εσωτερικές (built-in) συναρτήσεις του Matlab Γενικός τρόπος σύνταξης: Όνομα_συνάρτησης(όρισμα1,όρισμα2,,όρισμαΝ) Επιτελούν διάφορες προκαθορισμένες λειτουργίες Η ονομασία τους είναι δεσμευμένη Παραδείγματος

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

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

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram.

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram. Η δοµή Formula Node 1. Η δοµή Formula Node επιτρέπει την εισαγωγή αναλυτικών σχέσεων στο Block Diagram µε πληκτρολόγηση, αποφεύγοντας έτσι την εισαγωγή των εικονίδιων συναρτήσεων απλών αλγεβρικών πράξεων

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

Κυρτές Συναρτήσεις και Ανισώσεις Λυγάτσικας Ζήνων Βαρβάκειο Ενιαίο Πειραµατικό Λύκειο e-mail: zenon7@otenetgr Ιούλιος-Αύγουστος 2004 Περίληψη Το σχολικό ϐιβλίο της Γ Λυκείου ορίζει σαν κυρτή (αντ κοίλη)

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

Συμβολικές Γλώσσες Προγραμματισμού με το MATHEMATICA.

Συμβολικές Γλώσσες Προγραμματισμού με το MATHEMATICA. Συμβολικές Γλώσσες Προγραμματισμού με το MATHEMATICA http://users.auth.gr/~ppi/mathematica mathematica.math.auth@gmail.com Εκκίνηση του Mathematica Start -> Wolfram Mathematica-> Wolfram Mathematica 11

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

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων; ΦΡΟΝΤΙΣΤΗΡΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΘΕΜΑ Α ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ 01/03/2015 Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1.

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

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9

Περιεχόμενα. Κεφάλαιο 1 Γνωριμία με το Excel...9 Περιεχόμενα Κεφάλαιο 1 Γνωριμία με το Excel...9 Τα στοιχεία του παραθύρου του Excel... 10 Κελιά και διευθύνσεις... 13 Σε ποιο κελί θα τοποθετηθούν τα δεδομένα;... 14 Καταχώριση δεδομένων... 15 Τι καταλαβαίνει

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