Εισαγωγή στο MATLAB Εργαστηριακές Σημειώσεις Νίκος Αρπατζάνης
1.1 Το περιβάλλον εργασίας................................. 5 1.2 Το MATLAB ως αριθμομηχανή.............................. 6 1.2.1 Το παράθυρο εντολών.............................. 6 1.2.2 Αριθμητικές πράξεις............................... 7 1.2.3 Λογικές πράξεις................................. 8 1.2.4 Προτεραιότητα τελεστών............................ 9 1.2.5 Μιγαδικοί αριθμοί................................ 10 1.3 Σταθερές και μεταβλητές................................. 11 1.3.1 Ονοματολογία μεταβλητών........................... 12 1.4 Διαχείριση του χώρου εργασίας στο MATLAB..................... 12 1.4.1 Προβολή των αποτελεσμάτων......................... 12 1.4.2 Πολλαπλές εντολές σε μια γραμμή....................... 13 1.4.3 Επανεκτέλεση εντολών............................. 13 1.4.4 Τρόπος εμφάνισης αποτελεσμάτων....................... 13 1.4.5 Άλλες εντολές ελέγχου στο MATLAB..................... 14 1.5 Ενσωματωμένες συναρτήσεις του MATLAB...................... 16 Ασκήσεις............................................. 19 2.1 Δημιουργία πινάκων................................... 23 2.1.1 Εισαγωγή στοιχείων διανύσματος....................... 23 2.1.2 Εισαγωγή στοιχείων πίνακα........................... 24 2.1.3 Ειδικές εντολές/συναρτήσεις δημιουργίας πίνακα.............. 24 2.2 Διαχείριση πινάκων στο MATLAB............................ 28 2.2.1 Αναζήτηση στοιχείων.............................. 28 2.2.2 Εύρεση του μικρότερου (ή του μεγαλύτερου) στοιχείου............ 28 2.2.3 Ομάδες στοιχείων................................ 29 2.2.4 Προσθήκη ή αντικατάσταση στοιχείων.................... 30 2.2.5 Συνένωση (concatenation) πινάκων....................... 31 2.2.6 Διαγραφή στοιχείων............................... 31 2.2.7 Διαστάσεις.................................... 32 2.3 Πράξεις με πίνακες.................................... 33 iii
iv ΠΕΡΙΕΧΟΜΕΝΑ Ασκήσεις............................................. 35 3.1 Γραφικές παραστάσεις συναρτήσεων.......................... 37 3.1.1 Προσθήκη πληροφοριών σε ένα γράφημα................... 39 3.1.2 Εμφάνιση πολλών διαγραμμάτων σε ένα γράφημα.............. 40 3.1.3 Εμφάνιση πολλών διαγραμμάτων σε ένα παράθυρο (Υποδιαγράμματα).. 40 Ασκήσεις............................................. 42 4.1 Αριθμητικές πράξεις διανυσμάτων........................... 45 4.2 Επίλυση γραμμικών εξισώσεων............................. 46 4.3 Πολυώνυμα........................................ 47 Ασκήσεις............................................. 49 5.1 Script m-file........................................ 53 5.1.1 Εισαγωγή δεδομένων σε αρχείο script..................... 54 5.1.2 Εξαγωγή δεδομένων από αρχείο script..................... 54 5.1.3 Παρενέργειες ενός αρχείου script........................ 55 5.2 Function m-file....................................... 55 5.2.1 Δομή ενός αρχείου function........................... 55 5.3 Inline αντικείμενα συναρτήσεων............................. 56 Ασκήσεις............................................. 57 6.1 Η δομή if.......................................... 59 6.2 Επιλογή μεταξύ πολλών ενεργειών........................... 60 6.2.1 Η δομή if-else................................... 60 6.2.2 Εμφωλευμένες if................................. 61 6.3 Η δομή switch....................................... 62 Ασκήσεις............................................. 62 7.1 Βρόχος for......................................... 65 7.1.1 Εμφωλευμένοι βρόχοι for............................ 66 7.2 Βρόχοι while........................................ 67 7.3 Οι εντολές break, return και continue.......................... 67 Ασκήσεις............................................. 68 8.1 Προσαρμογή σε πολυώνυμα............................... 71 8.2 Προσαρμογή σε μη-πολυωνυμικές συναρτήσεις.................... 73 8.2.1 Εκθετικό μοντέλο................................. 73 8.2.2 Εξίσωση δύναμης (power law)......................... 74 8.2.3 Αύξηση με ρυθμό που φτάνει σε κάποιο όριο................. 75 8.2.4 Εκθετική μεταβολή................................ 75
ΠΕΡΙΕΧΟΜΕΝΑ v Ασκήσεις............................................. 75 9.1 Ακρίβεια υπολογισμών.................................. 77 9.1.1 Ακρίβεια δεκαδικών ψηφίων........................... 78 9.1.2 Ακρίβεια σημαντικών ψηφίων.......................... 79 9.2 Μέθοδος διχοτόμησης.................................. 79 9.2.1 Υλοποίηση της μεθόδου............................. 80 9.2.2 Πλήθος απαιτούμενων επαναλήψεων..................... 81 9.2.3 Μια μελέτη περίπτωσης............................. 82 Ασκήσεις............................................. 85 10.1 Γεωμετρική ερμηνεία της παραγώγου.......................... 87 10.2 Προσδιορισμός της παραγώγου με πεπερασμένες διαφορές............. 88 10.2.1 Προς τα πίσω (backward) διαφορές....................... 88 10.2.2 Προς τα εμπρός (forward) διαφορές...................... 89 10.2.3 Κεντρικές (central) διαφορές.......................... 90 10.3 Η συνάρτηση diff..................................... 91 10.4 Μια μελέτη περίπτωσης................................. 93 Ασκήσεις............................................. 94 11.1 Γεωμετρική ερμηνεία του ολοκληρώματος....................... 98 11.2 Υπολογισμός του ολοκληρώματος με αριθμητικές μεθόδους............. 98 11.2.1 Κανόνας τραπεζίου................................ 99 11.2.2 Κανόνες Simpson................................. 101 11.3 Μια μελέτη περίπτωσης................................. 104 Ασκήσεις............................................. 105
Το εγχειρίδιο αυτό γράφτηκε για να καλύψει τις ανάγκες διδασκαλίας του εργαστηριακού μαθήματος στο Τμήμα Μηχανολόγων Μηχανικών ΤΕ, του ΤΕΙ Κεντρικής Μακεδονίας. Η σύνταξη του εγχειριδίου έγινε με στόχο να βοηθήσει τους φοιτητές να έρθουν σε επαφή με τις δυνατότητες που προσφέρει ο Η/Υ στην επίλυση προβλημάτων σε διάφορα πεδία, επιστημονικού και τεχνολογικού ενδιαφέροντος. Ως περιβάλλον εργασίας επιλέχθηκε το MATLAB, δεδομένου ότι αυτό αποτελεί ένα απ τα ευρέως χρησιμοποιούμενα ανάπτυξης εφαρμογών και μελέτης προβλημάτων που απασχολούν Επιστήμονες και Μηχανικούς. Οι προτεινόμενες ασκήσεις αφορούν σε θέματα που διδάσκονται στα μαθήματα των Μαθηματικών και της Αριθμητικής Ανάλυσης, σύμφωνα με το πρόγραμμα σπουδών του τμήματος, ενώ παρατίθενται επιλεγμένα παραδείγματα εφαρμογών συστημάτων. Πιο συγκεκριμένα, γίνεται κατ αρχήν, μια σύντομη εισαγωγή/γνωριμία με το περιβάλλον προγραμματισμού MATLAB, παρουσιάζεται ο τρόπος χρήσης της (Help), η λειτουργία του περιβάλλοντος ως αριθμομηχανή, ο τρόπος εισαγωγής δεδομένων και ο ρόλος των. Γίνεται αναφορά στη (Format) των αριθμών και την απεικόνιση των αποτελεσμάτων. Ιδιαίτερη αναφορά γίνεται στη δημιουργία (Array), στις πράξεις μεταξύ Πινάκων, καθώς και στις λειτουργίες, που αφορούν στους Πίνακες (αναστροφή και αντιστροφή, ύψωση σε δύναμη, ορίζουσες). Παρουσιάζεται ο τρόπος (Plot), πολυωνυμικών, τριγωνομετρικών, εκθετικών, λογαριθμικών συναρτήσεων, επεξεργασίας και αποθήκευσης των γραφημάτων. Τέλος, παρουσιάζονται μέθοδοι εύρεσης ριζών πολυωνυμικών εξισώσεων, παραγώγισης, ολοκλήρωσης, πολυωνυμικής προσέγγισης και παρεμβολής. 1
3
Κεφάλαιο Το MATLAB ( rix oratory) είναι περιβάλλον, που διαθέτει μια γλώσσα προγραμματισμού και χρησιμοποιείται για αριθμητικούς υπολογισμούς, προγραμματισμό και οπτικοποίηση των αποτελεσμάτων. Επιτρέπει τη διαχείριση πινάκων, τη δημιουργία γραφικών παραστάσεων, την υλοποίηση αλγορίθμων, την ανάλυση δεδομένων, τη μοντελοποίηση συστημάτων, τη δημιουργία διεπιφανειών διασύνδεσης με άλλες γλώσσες προγραμματισμού (όπως C, C++, Java). Διαθέτει ενσωματωμένες εντολές και συναρτήσεις, που βοηθούν στην εκτέλεση μαθηματικών πράξεων και στην υλοποίηση αριθμητικών μεθόδων. Διαθέτει επίσης πολλές πρόσθετες, που διευκολύνουν την ανάπτυξη ειδικών εφαρμογών, όπως (symbolic computation), (image processing), (statistics), (control system design), (neural networks), (fuzzy logic). Στις πρόσφατες εκδόσεις του λογισμικού ο αριθμός των εργαλειοθηκών έχει ξεπεράσει τις 50. Το MATLAB υποστηρίζει τόσο τα Windows, όσο και τα λειτουργικά συστήματα που βασίζονται στο UNIX (Sun Solaris, Linux), καθώς και το λειτουργικό σύστημα MAC OS. Ανεξάρτητα απ το λειτουργικό σύστημα που χρησιμοποιοείται, το MATLAB λειτουργεί μέσω τριών βασικών παραθύρων (Σχήμα 1.1). 5
6 Κεφάλαιο 1 Εισαγωγή Είναι το βασικό παράθυρο. Χαρακτηρίζεται από το (, MATLAB command prompt). Εδώ πληκτρολογούνται όλες οι εντολές, εισάγονται τα δεδομένα και εμφανίζονται τα αποτελέσματα της εκτέλεσης μιας εφαρμογής. Εμφανίζεται ο τρέχων κατάλογος του συστήματος, δίνεται η δυνατότητα πλοήγησης μέσα σ αυτόν και είναι δυνατή η εκτέλεση λειτουργιών, που αφορούν στο αρχείο (μετονομασία αρχείου, διαγραφή αρχείου, εκτέλεση Μ- File). Δίνεται και η δυνατότητα αλλαγής του τρέχοντος καταλόγου, με επιλογή του τετραγωνιδίου, που φαίνεται στο σχήμα. Εδώ απεικονίζονται όλες οι μεταβλητές, οι οποίες εισάγονται και χρησιμοποιούνται στο Παράθυρο εντολών. Παρέχονται πληροφορίες για τον τύπο και το μέγεθος κάθε μεταβλητής. Ο χρήστης έχει τη δυνατότητα να ανακαλέσει ανά πάσα στιγμή τη μεταβλητή αυτή στο, πληκτρολογώντας απλώς το όνομα της. Στις τελευταίες εκδόσεις του MATLAB προσφέρεται η δυνατότητα για κάθε μεταβλητή, στο, να αναπαρίσταται και μέσω γραφήματος. Περιλαμβάνει τις εντολές που έχουν εκτελεστεί και τις συναρτήσεις που έχουν κληθεί. Από εδώ μπορούν να επαναληφθούν προηγούμενες ενέργειες του χρήστη. Το MATLAB μπορεί να χρησιμοποιηθεί για τον υπολογισμό της τιμής απλών μαθηματικών παραστάσεων. Απαιτείται απλά η πληκτρολόγηση της παράστασης: >> 2 + 6 4 4 Το MATLAB επιστρέφει, όπου είναι η τυπική, που χρησιμοποιείται όταν μια παράσταση δεν έχει ανατεθεί σε μια μεταβλητή ορισμένη από τον χρήστη. Προκειμένου να συνεχιστεί ένας υπολογισμός, η τιμή που έχει αποθηκευθεί στην ans μπορεί να ανακληθεί: >> ans / 2 2 Πέρα από τον απλό υπολογισμό μιας παράστασης, μπορεί κανείς να αναθέσει την τιμή της σε μια μεταβλητή: >> a = 5 a = 5 >> b = 6 b = 6 >> c = b / a c = 1. 2 0 0 0 όπου η έχει αντικατασταθεί από τα, όπως θα περίμενε κανείς.
1.2. Το MATLAB ως αριθμομηχανή 7 Το MATLAB έχει πολλές (built-in) συναρτήσεις και μια σειρά από μεταβλητές (π.χ οι κοινές τριγωνομετρικές συναρτήσεις). Οι εισαγόμενες παράμετροι σε όλες τις συναρτήσεις περικλείονται σε παρενθέσεις, όπως: >> s i n ( p i / 4 ) 0. 7 0 7 1 όπου χρησιμοποιείται η ενσωματωμένη μεταβλητή για τον υπολογισμό του εισαχθέντος ορίσματος.. Ένας απλός τρόπος για την εμφάνιση της τιμής μιας μεταβλητής, είτε ενσωματωμένης είτε ορισμένης από τον χρήστη, είναι η εισαγωγή του ονόματος της μεταβλητής στη γραμμή εντολών: >> p i 3. 1 4 1 6 Το αποτέλεσμα μιας με τη χρήση του χαρακτήρα ( ) στο τέλος της εντολής: >> x = 5 ; >> y = s q r t ( 5 9 ) ; >> z = l o g ( y ) + x ˆ 0. 2 5 z = 3. 5 3 4 1 Για οικονομία χώρου, μπορούν να εισαχθούν πολλές δηλώσεις σε μία γραμμή. Αυτό απαιτεί την χρήση ( ) ή ( ), ανάμεσα στις δηλώσεις, για τον διαχωρισμό τους. Η χρήση του (,) επιτρέπει την εμφάνιση των αποτελεσμάτων των εντολών: >> a = 5 ; b = s i n ( a ), c = cosh ( a ) b = 0. 9589 c = 7 4. 2 0 9 9 Στον Πίνακα 1.1 αναφέρονται οι τελεστές που εκτελούν τις αριθμητικές πράξεις στο MATLAB, ενώ στην Παράθεση 1.1 παρουσιάζονται παραδείγματα της χρήσης τους. + Πρόσθεση Αφαίρεση Πολλαπλασιασμός / Διαίρεση από δεξιά \ Διαίρεση από αριστερά Ύψωση σε δύναμη Συζυγής μιγαδικού αριθμού >> 2 + 3 % A d d i t i o n 5 >> 17 12 % S u b t r a c t i o n
8 Κεφάλαιο 1 Εισαγωγή 5 >> 3 11 % M u l t i p l i c a t i o n 33 >> 14 / 3 % R i g h t D i v i s i o n 4. 6 6 6 7 >> 3 \ 12 % L e f t D i v i s i o n 4 >> 4 ˆ 3 % Power 64 Το MATLAB δίνει τη δυνατότητα συγκρίσεων, μέσω απευθείας στη γραμμή εντολών. Για το σκοπό αυτό διαθέτει και τελεστές (Πίνακας 1.2). == Έλεγχος ισότητας Λογικό NOT = Έλεγχος ανισοτητας Λογικό OR <, >, <=, >= Σύγκριση αριθμών && Λογικό AND xor Αποκλειστικό OR >> 12 > 3 1 >> 4 ˆ 2 >= 2 ˆ 3 1 >> 4 7 = 7 4 1 >> 4 4 == 2 2 2 0 >> ( 5 = 6 ) && ( 2 2 2 > 9 ) % ( TRUE ) AND ( FALSE ) = ( FALSE ) 0 >> ( 5 = 6 ) ( 2 2 2 > 9 ) % ( TRUE ) OR ( FALSE ) = ( TRUE ) 1 >> ( 5 = 6 ) && ( 2 2 2 > 9 ) % ( TRUE ) AND (NOT FALSE ) = ( TRUE )
1.2. Το MATLAB ως αριθμομηχανή 9 1 >> xor ( ( 5 = 6 ), ( 2 2 2 > 9 ) ) % ( TRUE ) xor (NOT FALSE ) = ( FALSE ) 0 Η τιμή 1 αντιστοιχεί στο (TRUE) και η τιμή 0 στο (FALSE). Οι αριθμητικές και οι λογικές πράξεις εκτελούνται με σειρά, που καθορίζεται σύμφωνα με τους πιο κάτω (σε φθίνουσα σειρά): 1. Υπολογίζονται τα ξεκινώντας απ τις εσωτερικές προς τις εξωτερικές παρενθέσεις. 2. Υπολογίζονται οι, από αριστερά προς τα δεξιά 3. Γίνονται οι κι οι, από αριστερά προς τα δεξιά 4. Γίνονται οι κι οι, από αριστερά προς τα δεξιά Οι πράξεις ίσης προτεραιότητας γίνονται πάντα από αριστερά προς τα δεξιά. >> 12 3 4 / ( 1 5 3 ) 11 >> 12 3 4 / 15 3 8. 2 0 0 0 >> 13 4 ˆ 2 \ 16 12 >> 13 4 ˆ ( 2 \ 1 6 ) 65523 Επιπλέον, οι αριθμητικοί τελεστές έχουν υψηλότερη προτεραιότητα από του σχεσιακούς τελεστές, οι οποίοι έχουν υψηλότερη προτεραιότητα από τους λογικούς τελεστές. >> y = 3 > 8 2 s q r t ( 1 5 ) > 4 y = 0 Στην Παράθεση 1.4: 1. Υπολογίζεται η τιμή 2. Γίνεται η σύγκριση, με αποτέλεσμα 3. Υπολογίζεται η τιμή 4. Γίνεται η σύγκριση, με αποτέλεσμα 5. Εφαρμόζεται το, με αποτέλεσμα
10 Κεφάλαιο 1 Εισαγωγή Οι τελεστές ( ), εκτελούν αυτόματα τους κατάλληλους χειρισμούς στα πραγματικά και φανταστικά μέρη των μιγαδικών αριθμών. Η ( 1) έχει προανατεθεί στις μεταβλητές και. >> x = 1 + 2 i x = 1. 0 0 0 0 + 2. 0 0 0 0 i >> y = 1 2 j y = 1. 0 0 0 0 2. 0 0 0 0 i >> z = x y z = 5 Ανεξάρτητα απ το αν η φανταστική μονάδα συμβολιστεί με ( ή ) στην είσοδο, το MATLAB πάντα χρησιμοποιεί το για την εμφάνιση μιγαδικών τιμών. Στην ανάθεση μιγαδικών τιμών, Το μέτρο ενός αριθμού (abs(z) = real(z) 2 + imag(z) 2 ) ενός μιγαδικού αριθμού Μιγαδικός ενός αριθμού Το μέρος ενός μιγαδικού αριθμού Το μέρος ενός μιγαδικού αριθμού σταθερά πολλαπλάσια του ή του μπορούν να δηλώνονται με ή χωρίς τον τελεστή ( ), δηλαδή οι πιο κάτω δηλώσεις είναι ισοδύναμες: >> x = 1 + 2 i x = 1. 0 0 0 0 + 2. 0 0 0 0 i >> x = 1 + 2 i x = 1. 0 0 0 0 + 2. 0 0 0 0 i : Η ανάθεση x = 1 + i2 είναι επιτρεπτή, ενώ η x = 1 + i 2 είναι. Η παράλειψη του τελεστή ( ) είναι επιτρεπτή, όταν χρησιμοποιούνται μεταβλητές: >> w = 2 ; >> x = 1 + wi ;??? Undefined f u n c t i o n or v a r i a b l e ' wi '. Στις μεταβλητές και μπορεί να ανατεθεί οποιαδήποτε τιμή, αλλά είναι προτιμότερο να αποφεύγεται, ώστε να παραμένουν πάντα αναπαραστάσεις της φανταστικής μονάδας. Η συνάρτηση υποστηρίζει τη χρήση μιγαδικών αριθμών κατά τον συμβολισμό του : z = ζe iθ, όπου ζ είναι το μέτρο και θ είναι η γωνία στην αναπαράσταση του z σε. Στο Σχήμα 1.2 φαίνεται ένας μιγαδικός αριθμός, όπως αναπαρίσταται κατά
1.3. Σταθερές και μεταβλητές 11 φανταστικοί τον συμβολισμό του, σε συντεταγμένες στο μιγαδικό επίπεδο (x = ζ cosθ και y = ζ sinθ). Για παράδειγμα, για τον μιγαδικό αριθμό με ζ = 5 και θ = π 3 : iy z = e iθ >> z e t a = 5 ; t h e t a = p i / 3 ; z = z e t a exp ( i t h e t a ) z = 2. 5 0 0 0 + 4. 3 3 0 1 i z = ζ >> abs ( z ) 5 >> a n g l e ( z ) 1 8 0 / p i % The a n g l e i n d e g r e e s 6 0. 0 0 0 0 θ x πραγματικοί Για τους αριθμούς: s = 3e i π 3 και t = 3e i 2π 3 >> s = 3 exp ( i p i / 3 ) ; t = 3 exp ( i 2 p i / 3 ) ; >> s t 3. 0 0 0 0 >> s + t 0. 0 0 0 0 + 5. 1 9 6 2 i >> s t 9.0000 + 0. 0 0 0 0 i >> s / t 0. 5 0 0 0 0. 8 6 6 0 i Σε όλα τα προηγούμενα παραδείγματα, οι μεταβλητές δημιουργούνται κατά την χρήση τους. Αν μια μεταβλητή δεν υπάρχει ήδη, δημιουργείται όποτε αυτή εμφανίζεται αριστερά του : όνομα μεταβλητής αριθμητική τιμή (ή έκφραση) όπου έκφραση μπορεί να είναι: συνδυασμός αριθμητικών τιμών, μαθηματικών τελεστών, μεταβλητών και συναρτήσεων. Η τιμή που αποθηκεύεται σε μια μεταβλητή μπορεί φυσικά να αλλάξει μέσω μιας επόμενης ανάθεσης: >> t = 5 ; >> t = t + 2 t = 7 Όταν μια μεταβλητή δεν έχει οριστεί (πριν χρησιμοποιηθεί) εμφανίζεται μηνυμα σφάλματος:
12 Κεφάλαιο 1 Εισαγωγή >> x = 2 z??? Undefined f u n c t i o n or v a r i a b l e z. Αν δηλωθεί απλά μια πράξη, το αποτέλεσμα αποθηκεύεται σε μια ποσότητα ( ), που είναι η τυπική, του MATLAB. Σε αυτήν αποθηκεύεται το αποτέλεσμα της τελευταίας δήλωσης/εντολής που εκτελέστηκε στο παράθυρο εντολών. Στον Πίνακα 1.5 αναφέρονται οι βασικές ποσότητες (μεταβλητές ή σταθερές) που χρησιμοποιούνται στους μαθηματικούς υπολογισμούς με το MATLAB. Προφανώς είναι δεσμευμένες λέξεις και δεν μπορούν να χρησιμοποιηθούν ως ονόματα νέων μεταβλητών. Ο αριθμός π = 3.14159 η τυπική μεταβλητή, όπου αποθηκεύεται η τιμή/αποτέλεσμα, της πιο πρόσφατα εκτελεσμένης εντολής ο κοντινότερος αριθμός στο 0 ( ). Ένας αριθμός μικρότερος κατ απόλυτη τιμή από την είναι για το MATLAB ίσος με μηδέν φανταστική μονάδα ( 1) ο μικρότερος (θετικός) πραγματικός αριθμός ο μεγαλύτερος (θετικός) πραγματικός αριθμός, αριθμός μεγαλύτερος του, το αποτέλεσμα 1 0 Δηλώνει ότι ένα αποτέλεσμα δεν είναι αριθμός (π.χ. 0/0) Τα ονόματα των μεταβλητών περιλαμβάνουν κυρίως γράμματα του αγγλικού αλφαβήτου. Το MATLAB κάνει διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων. Για παράδειγμα οι μεταβλητές και είναι διαφορετικές μεταξύ τους. Οι κανόνες που ισχύουν για την ορθή ονοματολογία είναι οι εξής: Το όνομα αρχίζει με γράμμα (του αγγλικού αλφαβήτου) Το όνομα περιέχει μόνο γράμματα, αριθμούς και κάτω παύλες ( ) Δεν χρησιμοποιούνται ονόματα που έχουν από το MATLAB (π.χ. συναρτήσεις βιβλιοθήκης και εργαλειοθηκών) Προτιμούνται μικρά ονόματα για πρακτικούς λόγους αν και δεν υπάρχει περιορισμός στο μήκος των ονομάτων Το αποτέλεσμα κάθε εντολής εμφανίζεται στο. Ωστόσο, η χρήση του χαρακτήρα στο τέλος μιας εντολής, αποκρύπτει το αποτέλεσμα εκτός αν πρόκειται για εντολές σχετικές με γραφήματα ή με τη βοήθεια του λογισμικού. Βέβαια το αποτέλεσμα και η μεταβλητή καταγράφονται στο χώρο εργασίας (Παράθεση 1.6 γραμμή 5). 1 >> x = s i n ( p i / 4 ) 2 x = 3 0. 7 0 7 1 4 5 >> y = cos ( p i / 4 ) ;
1.4. Διαχείριση του χώρου εργασίας στο MATLAB 13 6 >> x ˆ 2 + y ˆ 2 7 8 1 9 10 >> a = 7 ; b= cos ( a ), c= cosh ( a ) 11 b = 12 0. 7 5 3 9 13 c = 14 5 4 8. 3 1 7 0 Στην Παράθεση 1.6 (γραμμή 10) φαίνεται η δυνατότητα δήλωσης πολλών εντολών σε μια γραμμή, στο MATLAB. Το MATLAB αποθηκεύει τις εντολές που εκτελούνται στο χώρο εργασίας. Με τα πλήκτρα ( ) και ( ) ανακαλούνται οι εντολές στη γραμμή εντολών. Συγκεκριμένα πληκτρολογώντας διαδοχικά το πλήκτρο ( ) εμφανίζονται οι εντολές με σειρά αντίθετη αυτής με την οποία εκτελέστηκαν,ενώ με το ( ) εμφανίζονται με τη σειρά που εκτελέστηκαν. Το MATLAB εσωτερικά, χρησιμοποιεί μεταβλητές. Το αποτέλεσμα εμφανίζεται με 5 ψηφία. Αν πρόκειται για πραγματικό αριθμό εμφανίζεται ως αριθμός. Το MATLAB διαθέτει την εντολή, με την οποία καθορίζεται ο τρόπος εμφάνισης του αποτελέσματος: π 1 % format s h o r t : 5 d i g i t s 2 3 1. 4 1 5 9 3 % format s h o r t g : up t o 5 d i g i t s 4 3 1. 4 1 6 5 % format s h o r t e : 5 d i g i t s and exponent 6 3. 1 4 1 6 e +001 7 % format long : 16 d i g i t s 8 3 1. 4 1 5 9 2 6 5 3 5 8 9 7 9 3 1 9 % format long g : up t o 16 d i g i t s 10 3 1. 4 1 5 9 2 6 5 3 5 8 9 7 9 11 % format long e : 16 d i g i t s and exponent 12 3. 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 e +001 13 % format hex : h e x a d e c i m a l 14 403 f 6 a 7 a 2 9 5 5 3 8 5 e 15 %format r a t : r a t i o o f s m a l l i n t e g e r s 16 3 5 5 0 / 1 1 3 17 %format bank : f i x e d format f o r d o l l a r s and c e n t s 18 3 1. 4 2 Οι επιλογές και, καθορίζουν τα διάκενα των γραμμών στην οθόνη (Παράθεση 1.8). 1 >> format l o o s e % d e f a u l t 2 >> 1 0 p i 3 4 5
14 Κεφάλαιο 1 Εισαγωγή 6 3 1. 4 2 7 8 >> format compact 9 >> 1 0 p i 10 11 3 1. 4 2 Στον Πίνακα 1.5 αναφέρονται οι βασικές εντολές ελέγχου στο MATLAB: κατηγορίες θεμάτων, στα οποία η βοήθεια είναι διαθέσιμη διαδραστικό παράθυρο βοήθειας < topic > βοήθεια σε ένα συγκεκριμένο θέμα (< topic >) πρόσφατα χρησιμοποιμένες μεταβλητές πρόσφατα χρησιμοποιμένες μεταβλητές, με το μέγεθός τους διαγράφει όλες τις μεταβλητές απ τη μνήμη < x, y, z > διαγράφει μόνο τις τιμές των μεταβλητών < x, y, z > διαγράφει όλες τις μεταβλητές και τις συναρτήσεις καθαρίζει το τρέχων κατάλογος αλλαγή τρέχοντος καταλόγου περιεχόμενα τρέχοντος καταλόγου δημιουργία καταλόγου αντιγραφή αρχείου αποθήκευση των μεταβλητών εργασίας σε αρχείο φόρτωση των μεταβλητών εργασίας από αρχείο αποθήκευση εργασίας σε αρχείο η ημερομηνία ως αλφαριθμητικό έκδοση και άδεια χρήσης του MATLAB ή έξοδος Το MATLAB διαθέτει ένα σύστημα βοήθειας. Η εντολή εμφανίζει έναν κατάλογο θεμάτων για τα οποία υπάρχει διαθέσιμη βοήθεια (Παράθεση 1.9 (γραμμές 1 10)). Η επιλογή < topic > δίνει πληροφορίες για το επιλεγμένο θέμα (< topic >). Στην Παράθεση 1.9 (γραμμές 14 ) φαίνεται μέρος των πληροφοριών που δίνει η : 1 >> h e l p 2 HELP t o p i c s : 3 4 Documents \MATLAB ( No t a b l e o f c o n t e n t s f i l e ) 5 matlab \ g e n e r a l General purpose commands. 6 matlab \ ops O p e r a t o r s and s p e c i a l c h a r a c t e r s. 7 matlab \ l a n g Programming language c o n s t r u c t s. 8 matlab \ elmat Elementary m a t r i c e s and m a t r i x m a n i p u l a t i o n. 9 matlab \ randfun Random m a t r i c e s and random s t r e a m s. 10 matlab \ e l f u n Elementary math f u n c t i o n s. 11. 12.
1.4. Διαχείριση του χώρου εργασίας στο MATLAB 15 13. 14 >> h e l p format 15. 16. 17. 18 FORMAT may be used t o s w i t c h between d i f f e r e n t o u t p u t d i s p l a y f o r m a t s o f a l l f l o a t v a r i a b l e s as f o l l o w s : 19 FORMAT SHORT S c a l e d f i x e d p o i n t format with 5 d i g i t s. 20 FORMAT LONG S c a l e d f i x e d p o i n t format with 15 d i g i t s f o r double and 7 d i g i t s f o r s i n g l e. 21 FORMAT SHORT E F l o a t i n g p o i n t format with 5 d i g i t s. 22 FORMAT LONG E F l o a t i n g p o i n t format with 15 d i g i t s f o r double and 7 d i g i t s f o r s i n g l e. 23 FORMAT SHORT G B e s t o f f i x e d or f l o a t i n g p o i n t format with 5 24 d i g i t s. 25 FORMAT LONG G B e s t o f f i x e d or f l o a t i n g p o i n t format with 15 26 d i g i t s f o r double and 7 d i g i t s f o r s i n g l e. 27. 28. 29. Η εντολή έχει την ίδια λειτουργία με την, εμφανιζοντας τα αποτελέσματα σε μορφή αρχείου βοήθειας Windows. Η εντολή δίνει έναν κατάλογο των κάθε φορά ενεργών μεταβλητών, ενώ η εντολή δίνει επίσης πληροφορίες για τον τύπο και το μέγεθος των ενεργών μεταβλητών (Παράθεση 1.10). 1 >> x r e a l = p i ; 2 >> zcomp=2 3 i ; 3 >> wvec =[ 3 0 2 1]; 4 >> A=[2+ i i ; 3 1 i ] ; 5 >> v a r s t r = ' x r e a l ' ; 6 >> v a r l o g = t r u e ; 7 8 >> who 9 Your v a r i a b l e s a r e : 10 A v a r l o g v a r s t r wvec x r e a l zcomp 11 12 >> whos 13 Name S i z e Bytes C l a s s A t t r i b u t e s 14 15 A 2 x2 64 double complex 16 v a r l o g 1 x1 1 l o g i c a l 17 v a r s t r 1 x5 10 char 18 wvec 1 x4 32 double 19 x r e a l 1 x1 8 double 20 zcomp 1 x1 16 double complex εμφανίζονται οι μεταβλητές εμφανίζονται οι μεταβλητές, που το όνομά τους αρχίζει από εμφανίζονται οι μεταβλητές, που το όνομά τους τελειώνει σε εμφανίζονται οι μεταβλητές, που είναι αποθηκευμένες στο αρχείο filename.mat
16 Κεφάλαιο 1 Εισαγωγή Η εντολή filename αποθηκεύει όλες τις ενεργές μεταβλητές στο αρχείο filename.mat. Tο αρχείο αυτό μπορεί να με την εντολή filename ( ). αποθήκευση όλων των μεταβλητών στο αρχείο matlab.mat φόρτωση όλων των μεταβλητών από το αρχείο matlab.mat αποθήκευση στο αρχείο filename.mat μόνο των μεταβλητών x, y, z φόρτωση από το αρχείο filename.mat μόνο των μεταβλητών x, y, z αποθήκευση στο αρχείο filename.mat μόνο των μεταβλητών με όνομα που αρχίζει από A φόρτωση από το αρχείο filename.mat μόνο των μεταβλητών με όνομα που αρχίζει από A αποθήκευση όλων των μεταβλητών στο αρχείο filename σε μορφή ASCII με 8 σημαντικά ψηφία αποθήκευση όλων των μεταβλητών στο αρχείο filename σε μορφή ASCII με 16 σημαντικά ψηφία αποθήκευση μόνο των μεταβλητών x, y, z στο αρχείο filename σε μορφή ASCII με 8 σημαντικά ψηφία Με την εντολή filename.txt δημιουργείται ένα ASCII αρχείο, το οποίο περιέχει όλες τις πληροφορίες της εργασίας μας. Το αρχείο filename.txt περιέχει όλες τις εντολές και τα αποτελέσματα που εμφανίζονται στο παράθυρο (εκτός από τα γραφικά) και μπορεί να εκτυπώνεται. Αν παραληφθεί το όνομα του αρχείου, το MATLAB δημιουργεί αρχείο με το όνομα diary. Επιλογές της εντολής είναι: : : προσωρινή διακοπή επανέναρξη Το αρχείο filename.txt αποθηκεύεται στον (Working directory). Το MATLAB, εκτός απ τις σταθερές, διαθέτει μεγάλο αριθμό συναρτήσεων, που μπορούν να χρησιμοποιηθούν για την εκτέλεση πράξεων. Ο γενικός τρόπος χρήσης μιας συνάρτησης είναι η της, με τη δήλωση του ονόματος της, και την τοποθέτηση του ορίσματος της μέσα σε παρένθεση: Οι βασικότερες απ τις συναρτήσεις αυτές παρουσιάζονται στον Πίνακα 1.8 τετραγωνική ρίζα x φυσικός (νεπέριος) λογάριθμος εκθετική συνάρτηση e x τριγωνομετρικές συναρτήσεις αντίστροφες τριγωνομετρικές συναρτήσεις
1.5. Ενσωματωμένες συναρτήσεις του MATLAB 17 (Συνέχεια του Πίνακα 1.8) υπερβολικές συναρτήσεις αντίστροφες υπερβολικές συναρτήσεις πραγματικό, φανταστικό μέρος ενός μιγαδικού αριθμού z γωνία φάσης (όρισμα) μιγαδικού αριθμού απόλυτη τιμή πραγματικού, ή μέτρο μιγαδικού αριθμού συζυγής μιγαδικού αριθμού το μεγαλύτερο στοιχείο της λίστας το μικρότερο στοιχείο της λίστας το υπόλοιπο της ακέραιας διαίρεσης x/y δημιουργία τυχαίων αριθμών ακρίβεια με την οποία αποθηκεύεται ο αριθμός x προσέγγιση του x στον πλησιέστερο προς τα πάνω ακέραιο αριθμό προσέγγιση του x στον πλησιέστερο προς τα κάτω ακέραιο αριθμό προσέγγιση του x στον πλησιέστερο, προς το μηδέν, ακέραιο αριθμό προσέγγιση του x στον πλησιέστερο ακέραιο αριθμό προσέγγιση του x με n σημαντικά ψηφία Θα πρέπει να σημειώσουμε τα εξής: Τα ορίσματα στις τριγωνομετρικές συναρτήσεις δίνονται σε (rad). Η μετατροπή x rad σε γίνεται με χρήση της έκφρασης: φ = 180 π x Σε νεότερες εκδόσεις του MATLAB είναι διαθέσιμες οι εντολές sind(x), cosd(x),, όπου τα ορίσματα δίνονται σε μοίρες. Ο συζυγής ενός μιγαδικού αριθμού z υπολογίζεται και με χρήση του τελεστή. 1 >> s q r t ( 2 ) 2 3 1. 4 1 4 2 4 5 6 % T r i g o n o m e t r i c f u n c t i o n s 7 >> s i n ( 3. 1 ) % x = 3. 1 rad 8 9 0. 0 4 1 6 10 >> y = 180 p i / 3. 1 % y i n d e g r e e s 11 y = 12 1 8 2. 4 1 5 1 13 >> s i n ( y ) 14 15 0. 2 0 1 3 16 17 >> acos ( 0. 7 1 ) 18 19 0. 7 8 1 3 20 21
18 Κεφάλαιο 1 Εισαγωγή 22 % E x p o n e n t i a l 23 >> exp ( 1 ) 24 25 2. 7 1 8 3 26 27 28 % L o g a r i t h m i c 29 >> x = 2. 4 5 30 x = 31 2. 4 5 0 0 32 >> l o g ( x ) % N a t u r a l l o g a r i t h m 33 34 0. 8 9 6 1 35 >> l o g 1 0 ( x ) % Decimal l o g a r i t h m ( base 1 0 ). l o g b ( x ) = logd ( x ) / logd ( b ) 36 37 0. 3 8 9 2 38 >> l o g 2 ( x ) % Logarithm with base 2 39 40 1. 2 9 2 8 41 42 43 % D i v i s i o n remainder 44 >> mod ( 2 3, 5 ) 45 46 3 47 48 49 % Random numbers 50 >> rand % Random number i n [ 0, 1 ]. D i f f e r e n t number each time 51 52 0. 8 1 4 7 53 54 >> randn %Random number f o l l o w i n g normal d i s t r i b u t i o n N ( 0, 1 ), i. e. mean v a l u e = 0 and d i s p e r s i o n = 1 55 56 1. 8 3 3 9 57 58 59 % P r e c i s i o n 60 >> eps ( 1 ) 61 62 2. 2 2 0 4 e 016 63 64 65 % Rounding numbers 66 >> a= s q r t ( 3 ) 67 a = 68 1. 7 3 2 1 69 >> c e i l ( a ) 70 71 2 72 >> f l o o r ( a ) 73 74 1 75 >> f i x ( a ) 76 77 1 78 >> round ( a ) 79 80 2 81 >> chop ( a, 3 ) 82 83 1. 7 3 0 0 84
1.5. Ενσωματωμένες συναρτήσεις του MATLAB 19 85 86 % Complex numbers 87 >> x=2 3 i 88 x = 89 2. 0 0 0 0 3. 0 0 0 0 i 90 >> y=16 8 i 91 y = 92 1 6. 0 0 0 0 8. 0 0 0 0 i 93 >> x y 94 95 14.0000 + 5. 0 0 0 0 i 96 >> r e a l ( x y ) 97 98 14 99 >> x ' 100 101 2. 0 0 0 0 + 3. 0 0 0 0 i 102 >> abs ( x ) 103 104 3. 6 0 5 6 1.1 Να υπολογιστούν τα εξής: αʹ) 1000/11 βʹ) 12345 6789 1.13 10 γʹ) 3 + 17.24 10 7 24 1.2 Αν x ο AEM σας, y = x/10 5 και z = 125 να υπολογιστούν: x + y αʹ) 100 βʹ) y 6 x + y γʹ) 2 z δʹ) x y z 1.3 αʹ) Ποια τιμή έχει η x αν x = false βʹ) Ποια τιμή έχει η true false γʹ) Ποια τιμή έχει η acos( true) Ποια τιμή έχει η x αν x = false; (β) Ποια τιμή έχει η true*false; (γ) Ποια τιμή μας δίνει η acos(-true); 1.4 Έστω οι μιγαδικοί αριθμοί z = 1 3i, u = 2 + 5i και w = 4 + i. Να υπολογιστούν: αʹ) z + w βʹ) z w u z γʹ) u + w
20 Κεφάλαιο 1 Εισαγωγή δʹ) ο συζυγής του z εʹ) ο συζυγής του z w 1.5 Αν η τιμή της μεταβλητής είναι αυτή που δίνεται στην αρχή της Παράθεσης, συμπληρώστε τις εντολές που δίνουν τα επόμενα αποτελέσματα: 1 >> x= l o g ( 2. 3 4 e +05) 2 x = 3 1 2. 3 6 3 1 4 5 6 >> Εντολή 1 7 >> x 8 x = 9 1 2. 3 6 3 0 7 6 3 9 4 3 3 9 8 3 9 10 11 12 >> Εντολή 2 13 >> x 14 x = 15 1. 2 3 6 3 0 7 6 3 9 4 3 3 9 8 4 e +001 16 17 18 >> Εντολή 3 19 >> x 20 x = 21 1 2. 3 6 22 23 24 >> Εντολή 3 25 >> x 26 x = 27 4 0 1 8 / 3 2 5 1.6 Υπολογίστε τον αριθμό 10 e (10 ) και συμπληρώστε τον πίνακα: Η τιμή 10, σε διαφορετικά 1.7 Να συμπληρωθούν οι εντολές που λείπουν: 1 >> who 2 Your v a r i a b l e s a r e : 3 X11 X12 X13 X21 X22 X23 Xa Ya 4 5 6 >> Εντολή 1 7 Your v a r i a b l e s a r e : 8 X11 X12 X13 X21 X22 X23 Xa
1.5. Ενσωματωμένες συναρτήσεις του MATLAB 21 9 10 11 >> Εντολή 2 12 Your v a r i a b l e s a r e : 13 X11 X12 X13 14 15 16 >> Εντολή 3 17 Your v a r i a b l e s a r e : 18 Xa Ya 1.8 Να συμπληρωθούν οι εντολές που λείπουν: 1 >> who 2 Your v a r i a b l e s a r e : 3 name u uu v vec x1 x2 x i n t y i n t z c a t 4 5 6 >> Εντολή 1 7 >> who 8 Your v a r i a b l e s a r e : 9 name u uu v vec y i n t z c a t 10 11 12 >> Εντολή 2 13 >> who 14 Your v a r i a b l e s a r e : 15 name u uu v vec 1.9 Χρησιμοποιήστε την εντολή, για να αποθηκεύσετε τα παραδείγματα των Παραθέσεων 1.1 και 1.2, με ονόματα list1.txt και list2.txt. 1.10 Να συμπληρωθεί ο πιο κάτω πίνακας, με τα αποτελέσματα των ζητούμενων υπολογισμών: φ o sinφ cosφ tanφ sin 2 φ cos 2 φ 0 30 45 60 90 1.11 Αν x = 1.2345, y = 0.0002006 και z ο AEM σας, να υπολογιστούν: αʹ) y = x 2 2 x + 5 βʹ) sum = x + y + z γʹ) adiff = x y δʹ) sin(x 3 z 100000 ) εʹ) log(z 100 x) στʹ) s = e x3 ζʹ) t = z2 100 x y ln(x 2 +y 2 ) e x
22 Κεφάλαιο 1 Εισαγωγή 1.12 Σύμφωνα με το μοντέλο των ιδανικών αερίων, η κατάσταση ενός αερίου περιγράφεται απ τη σχέση: P V = nrt όπου P η πίεση, V ο όγκος, n η ποσότητα (αριθμός mol), T η θερμοκρασία του αερίου, ενώ R είναι η σταθερή του αερίου. Ένας μηχανικός πρόκειται να σχεδιάσει μια διαστελλόμενη δεξαμενή αποθήκευσης, ώστε να διατηρείται σταθερή η πίεση του αερίου P = 2.2 atm. Η μέση θερμοκρασία του χειμώνα είναι 10 o C και ο αντίστοιχος όγκος του αερίου είναι 800m 3. Ποιος θα είναι ο όγκος του αερίου το καλοκαίρι, όπου η μέση θερμοκρασία είναι 35 o C. Σημειώστε ότι 1atm = 101325P 101325 N m 2 και Τ(K) = Τ(o C) + 273.2.
Κεφάλαιο Οι είναι τα βασικά στοιχεία στο περιβάλλον του MATLAB. Ένας πίνακας είναι μια στοιχείων δύο, δηλαδή m και n (πίνακας m n). Να σημειωθεί ότι στοιχεία ενός πίνακα μπορεί να είναι πραγματικοί, μιγαδικοί, συναρτήσεις ακόμα και αλφαριθμητικοί χαρακτήρες. Ειδικές περιπτώσεις αποτελούν τα, δηλαδή οι πίνακες μιας διάστασης: n = 1, διάνυσμα (διάταξη m 1) m = 1, διάνυσμα (διάταξη 1 n) Τα στοιχεία ενός πίνακα εισάγονται είτε από το πληκτρολόγιο, είτε προγραμματιστικά, είτε τέλος, μέσω ειδικών συναρτήσεων του MATLAB. Τα στοιχεία του διανύσματος περικλείονται σε ([ ]) και χωρίζονται με κενά ή κόμματα για διάνυσμα γραμμή, ή με το ελληνικό ερωτηματικό για διάνυσμα στήλη (Παράθεση 2.1 γραμμές 1, 6 και 11). Ένα διάνυσμα γραμμή μετατρέπεται σε διάνυσμα στήλη (και αντίστροφα), με τον τελεστή ( ) (Παράθεση 2.1 γραμμή 20). : Όταν αναστρέφεται το διάνυσμα, ο μιγαδικός αριθμός μετατρέπεται στο συζυγή του (γραμμή 23). Για να παραμείνει ο μιγαδικός αριθμός ως έχει θα πρέπει να χρησιμοποιηθεί ο τελεστής (, Παράθεση 2.1 γραμμή 28) 1 >> v = [ 1 4 7 10 1 3 ] % Row v e c t o r 2 v = 3 1 4 7 10 13 4 5 6 >> u = [ 1, 4 i, s i n ( 7 ), 1 0 + 1 / 5, 1 3 ] % Row v e c t o r 7 u = 8 1. 0 0 0 0 0 + 4. 0 0 0 0 i 0. 6 5 7 0 1 0. 2 0 0 0 1 3. 0 0 0 0 9 10 11 >> w = [ 1 ; 4 ; 7 ; 1 0 ; 1 3 ] % Column v e c t o r 12 w = 13 1 23
24 Κεφάλαιο 2 Πίνακες στο MATLAB 14 4 15 7 16 10 17 13 18 19 20 >> z=v ' % V e c t o r t r a n s p o z e 21 z = 22 1. 0 0 0 0 23 0 4. 0 0 0 0 i 24 0. 6 5 7 0 25 1 0. 2 0 0 0 26 1 3. 0 0 0 0 27 28 >> z=v. ' % V e c t o r t r a n s p o z e ( non c o n j u g a t e ) 29 z = 30 1. 0 0 0 0 31 0 + 4. 0 0 0 0 i 32 0. 6 5 7 0 33 1 0. 2 0 0 0 34 1 3. 0 0 0 0 Προφανώς, η δημιουργία ενός πίνακα με τη δημιουργία πολλών διανυσμάτων (αφού κάθε γραμμή είναι ένα διάνυσμα): 1. Ξεκινά με αγκύλη ([) 2. Τα στοιχεία εισάγονται γραμμή-γραμμή και διαχωρίζονται με κενά ή κόμματα 3. Οι γραμμές διαχωρίζονται με ( ) 4. Η εισαγωγή ολοκληρώνεται με αγκύλη (]) Όταν ολοκληρωθεί η εισαγωγή των στοιχείων του, ο πίνακας αποθηκεύεται στο (workspace) και ανακαλείται με το όνομά του (Παράθεση 2.2) 1 >> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] 2 A = 3 1 2 3 4 4 5 6 5 7 8 9 Όταν πρόκειται να δημιουργηθεί ένας πίνακας με πολλά στοιχεία, χρησιμοποιούνται ειδικές εντολές, που διευκολύνουν τη διαδικασία: Η εντολή εισάγει ένα διάνυσμα, όπου, το πρώτο στοιχείο, το βήμα μεταβολής της τιμής των στοιχείων
2.1. Δημιουργία πινάκων 25, το τελευταίο στοιχείο (για την ακρίβεια, πρόκειται για το που δεν μπορεί να ξεπερνά το τελευταίο στοιχείο, βλ. Παράθεση 2.3, γραμμή 1) Αν παραληφθεί το βήμα, (δηλαδή γραφεί ), το MATLAB το θεωρεί ίσο με 1 (Παράθεση 2.3 γραμμή 5). Η εντολή εισάγει ένα διάνυσμα, με, το πρώτο στοιχείο, το τελευταίο στοιχείο, το πλήθος των στοιχείων (Παράθεση 2.3, γραμμή 14) Αν παραληφθεί το πλήθος, (δηλαδή γραφεί ), το MATLAB δημιουργεί διάνυσμα 100 στοιχείων (Παράθεση 2.3, γραμμή 18). Και στις δύο περιπτώσεις, τα στοιχεία ισαπέχουν μεταξύ τους. Η χρήση της δεν απαιτεί υπολογισμό του βήματος. Στην περίπτωση του τελεστή ( ), το βήμα ορίζεται ως: s = b a n 1 όπου n το επιθυμητό πλήθος στοιχείων. Παρόμοια με την, απλώς δημιουργεί στοιχεία που διαφέρουν μεταξύ τους. Η εντολή εισάγει ένα διάνυσμα, με 10 a, το πρώτο στοιχείο 10 b, το τελευταίο στοιχείο, το πλήθος των στοιχείων (Παράθεση 2.3, γραμμή 27) Αν παραληφθεί το πλήθος, (δηλαδή γραφεί ), το MATLAB δημιουργεί διάνυσμα 50 στοιχείων (Παράθεση 2.3, γραμμή 31). Κάθε μία απ τις προηγούμενες εντολές, μπορεί να χρησιμοποιηθεί για τη δημιουργία των γραμμών ενός πίνακα (Παράθεση 2.3, γραμμή 40). 1 >> A = 0 : 1 0 : 3 0 % Colon o p e r a r o t o r ( : ) 2 A = 3 0 10 20 30 4 5 >> AA = 1 2 : 1 7 % The s t e p v a l u e i s the d e f a u l t ( = 1 ) 6 AA = 7 12 13 14 15 16 17 8 9 >> AAA = 2: 3: 8 % The l a s t v a l u e cannot exceed the d e f i n e d one ( 8 i n t h i s c a s e ) 10 AAA = 11 2 1 4 7 12 13 14 >> Β = l i n s p a c e ( 2, 5, 6 ) % L i n e a r spaced e l e m e n t s 15 B = 16 2. 0 0 0 0 2. 6 0 0 0 3. 2 0 0 0 3. 8 0 0 0 4. 4 0 0 0 5. 0 0 0 0
26 Κεφάλαιο 2 Πίνακες στο MATLAB 17 18 >> ΒΒ = l i n s p a c e ( 0, 1 0 0 ) % 100 l i n e a r spaced e l e m e n t s 19 BB = 20 Columns 1 through 10 21 0 1. 0 1 0 1 2. 0 2 0 2 3. 0 3 0 3 4. 0 4 0 4 5. 0 5 0 5 6. 0 6 0 6 7. 0 7 0 7 8. 0 8 0 8 9. 0 9 0 9 22 23 Columns 91 through 100 24 9 0. 9 0 9 1 9 1. 9 1 9 2 9 2. 9 2 9 3 9 3. 9 3 9 4 9 4. 9 4 9 5 9 5. 9 5 9 6 9 6. 9 6 9 7 9 7. 9 7 9 8 9 8. 9 8 9 9 1 0 0. 0 0 0 0 25 26 27 >> C = l o g s p a c e ( 1, 2, 5 ) % L o g a r i t h m i c spaced e l e m e n t s 28 C = 29 1 0. 0 0 0 0 1 7. 7 8 2 8 3 1. 6 2 2 8 5 6. 2 3 4 1 1 0 0. 0 0 0 0 30 31 >> CC = l o g s p a c e ( 1, 2 ) % 50 l o g a r i t h m i c spaced e l e m e n t s 32 CC = 33 Columns 1 through 10 34 1 0. 0 0 0 0 1 0. 4 8 1 1 1 0. 9 8 5 4 1 1. 5 1 4 0 1 2. 0 6 7 9 1 2. 6 4 8 6 1 3. 2 5 7 1 1 3. 8 9 5 0 1 4. 5 6 3 5 1 5. 2 6 4 2 35 36 Columns 41 through 50 37 6 5. 5 1 2 9 6 8. 6 6 4 9 7 1. 9 6 8 6 7 5. 4 3 1 2 7 9. 0 6 0 4 8 2. 8 6 4 3 8 6. 8 5 1 1 9 1. 0 2 9 8 9 5. 4 0 9 5 1 0 0. 0 0 0 0 38 39 40 >> D = [ 0 : 1 0 : 3 0 ; l i n s p a c e ( 2, 5, 4 ) ; l o g s p a c e ( 1, 2, 4 ) ; 1 2 3 4 ] % Table with d i f f e r e n t i n p u t methods i n each l i n e 41 0 1 0. 0 0 0 0 2 0. 0 0 0 0 3 0. 0 0 0 0 42 2. 0 0 0 0 3. 0 0 0 0 4. 0 0 0 0 5. 0 0 0 0 43 1 0. 0 0 0 0 2 1. 5 4 4 3 4 6. 4 1 5 9 1 0 0. 0 0 0 0 44 1. 0 0 0 0 2. 0 0 0 0 3. 0 0 0 0 4. 0 0 0 0 Υπάρχουν πολλές ενσωματωμένες συναρτήσεις για τη δημιουργία διανυσμάτων και πινάκων: ο αριθμός των γραμμών ο αριθμός των στηλών. Παράγει πίνακα με 1 στη διαγώνιό του. Στη μορφή παράγει έναν (τετραγωνικό) πίνακα. >> C = eye ( 4 ) C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> D = eye ( 3, 5 ) D = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 διάνυσμα ή πίνακας. Όταν είναι διάνυσμα δημιουργεί έναν πίνακα, με στοιχεία διαγωνίου τα στοιχεία του διανύσματος (το διάνυσμα μπορεί να είναι είτε γραμμή είτε στήλη). Όταν το όρισμα είναι πίνακας εξάγει τα στοιχεία της διαγωνίου. Η εξάρτηση της λειτουργίας της συνάρτησης από το εισαγόμενο όρισμα είναι ένα σημαντικό χαρακτηριστικό το οποίο συναντάται σε πολλές συναρτήσεις του MATLAB και
2.1. Δημιουργία πινάκων 27 αποτελεί σημαντικό πλεονέκτημα, καθώς περορίζεται ο αριθμός των απαιτούμενων συναρτήσεων (κάτι σαν την (overloading) σε γλώσσες προγραμματισμού όπως η ). >> v = [ 1 2 3 ] ; % The v e c t o r i s d e c l a r e d here >> A = d i a g ( v ) % The v e c t o r d e c l a r e d i s used as argument A = 1 0 0 0 2 0 0 0 3 >> B = d i a g ( [ 1 2 1 2 ] ) % The v e c t o r argument i s i n s e r t e d d i r e c t l y i n d i a g B = 1 0 0 0 0 2 0 0 0 0 1 0 0 0 0 2 >> C = [ 1 2 3 4 ; 3 5 2 9 ; 7 4 8 1 2 ] % A m a t r i x i s d e c l a r e d here C = 1 2 3 4 3 5 2 9 7 4 8 12 >> d i a g ( C ) % The m a t r i x i s used as argument 1 5 8 ο αριθμός των γραμμών ο αριθμός των στηλών. Η συνάρτηση δημιουργεί έναν πίνακα με και η έναν πίνακα με. Ο πίνακας δεν είναι απαραίτητο να είναι τετραγωνικός, δηλαδή μπορούν να χρησιμοποιηθούν και για δημιουργία διανυσμάτων. >> D = ones ( 3, 3 ) % Square m a t r i x with 1 s D = 1 1 1 1 1 1 1 1 1 >> E = z e r o s ( 2, 4 ) % 2 x4 m a t r i x with 0 s E = 0 0 0 0 0 0 0 0 >> s = ones ( 1, 4 ) % Row v e c t o r s = 1 1 1 1 >> t = z e r o s ( 3, 1 ) %Column v e c t o r t = 0 0 0
28 Κεφάλαιο 2 Πίνακες στο MATLAB Κάθε στοιχείο προσδιορίζεται με έναν. Η αρίθμηση ξεκινά από το 1, έτσι για το διάνυσμα, της Παράθεσης 2.1: >> v ( 1 ) 1 >> v ( 4 ) 10 Κάθε στοιχείο προσδιορίζεται με δύο,, που είναι οι του: : προσδιορίζει τη γραμμή : προσδιορίζει τη στήλη Για παράδειγμα, στον πίνακα της Παράθεσης 2.2,. Οι δείκτες των στοιχείων ενός διανύσματος ή πίνακα είναι αριθμοί. Για το διάνυσμα, της Παράθεσης 2.1: >> min ( v ) 1 >> max ( v ) 13 >> [m, I ] = min ( v ) % m: the minimum value, I : the index m = 1 I = 1 >> [M, I I ] = max ( v ) % M: the maxmum value, I I : the index M = 13 I I = 5 Για τον πίνακα της Παράθεσης 2.2: >> min (A) 1 2 3
2.2. Διαχείριση πινάκων στο MATLAB 29 >> max (A) 7 8 9 >> [m, I ]= min (A) % m: the minimum array, I : the i n d i c e s a r r a y m = 1 2 3 I = 1 1 1 >> [M, I I ]=max (A) % M: the maximum array, I I : the i n d i c e s a r r a y M = 7 8 9 I I = 3 3 3 Για πρόσβαση σε περισσότερα στοιχεία, ενός διανύσματος ή πίνακα, χρησιμοποιείται ο χαρακτήρας ( ). Για το διάνυσμα (Παράθεση 2.1): >> v ( 1 : 3 ) % The f i r s t 3 e l e m e n t s 1 4 7 >> v ( 3 : end ) % The e l e m e n t s from 3 rd t o l a s t 7 10 13 Η δήλωση δίνει διάνυσμα στήλη, ενώ η δίνει διάνυσμα γραμμή: >> v ( : ) 1 4 7 10 13 >> v ( 1 : end ) 1 4 7 10 13 : Η λέξη κλειδί προσδιορίζει το τελευταίο στοιχείο του διανύσματος. Ο χαρακτήρας ( ) χρησιμοποιείται για πρόσβαση σε μια ολόκληρη γραμμή ή στήλη. Έτσι, για τον πίνακα της Παράθεσης 2.2: >> A ( :, 1 ) % The 1 s t column 1 4 7 >> A ( 2, : ) % The 2nd row 4 5 6
30 Κεφάλαιο 2 Πίνακες στο MATLAB Ο χαρακτήρας ( ) μπορει να χρησιμοποιηθεί στη θέση ενός απλού δείκτη. Για τον πίνακα : >> A ( 2 : 3, 1 ) % R e t u r n s the e l e m e n t s A ( 2, 1 ) through A ( 3, 1 ) 4 7 >> A ( 1 : 2, 2 : 3 ) % R e t u r n s the e l e m e n t s A ( 1, 2 ) through A ( 2, 3 ) 2 3 5 6 Η χρήση δεικτών που δεν αντιστοιχούν στις διαστάσεις του πίνακα οδηγεί σε σφάλμα: >> A ( 1, 4 )??? Attempted t o a c c e s s A ( 1, 4 ) ; index out o f bounds b e c a use s i z e (A) = [ 3, 3 ]. Ο χαρακτήρας ( ) μπορεί επίσης να χρησιμοποιηθεί για την εναλλαγή των γραμμών ενός πίνακα: >> C = A( [ 2 1 3 ], : ) C = 4 5 6 1 2 3 7 8 9 Η προσθήκη ή αντικατάσταση στοιχείων σ έναν πίνακα, γίνεται μέσω των δεικτών του. >> A ( 3, 3 ) =0 A = 1 2 3 4 5 6 7 8 0 Αντίθετα με ό,τι συμβαίνει κατά την αναζήτηση στοιχείου πέρα απ τις διαστάσεις ενός πίνακα, μια εντολή ανάθεσης σε δείκτη μεγαλύτερο από τις τρέχουσες διαστάσεις, το MATLAB αυξάνει το μέγεθος του πίνακα, για να συμπεριλάβει το νέο στοιχείο (ή στοιχεία). >> A ( 4, 2 ) = 5 % The m a t r i x dimensions change. One element i s d e c l a r e d A = 1 2 3 4 5 6 7 8 0 0 5 0 >> A ( 5, : ) = [ 2 4 6 ] % A l i n e with the e l e m e n t s d e c l a r e d here, i s i n s e r t e d A = 1 2 3 4 5 6 7 8 0 0 5 0 2 4 6 >> A ( :, 4 ) = [ 2 ; 4 ; 6 ; 3 ; 7 ] % A column with the e l e m e n t s d e c l a r e d here, i s i n s e r t e d A = 1 2 3 2 4 5 6 4 7 8 0 6 0 5 0 3 2 4 6 7
2.2. Διαχείριση πινάκων στο MATLAB 31 Με τη (concatenation) μικρότερων υποπινάκων, προκύπτουν πίνακες (block matrices). Στην Παράθεση 2.4 παρουσιάζονται τα αποτελέσματα της συνένωσης πινάκων: 1 >> A=[1 2 ; 3 4 ] 2 A = 3 1 2 4 3 4 5 6 >> B=[ 4 1 ; 2 0 ] 7 B = 8 4 1 9 2 0 10 11 >> I =eye ( 2 ) 12 I = 13 1 0 14 0 1 15 16 >> O= z e r o s ( 2 ) 17 O = 18 0 0 19 0 0 20 21 >> E=[A B ] 22 E = 23 1 2 4 1 24 3 4 2 0 25 26 >> F =[A ; B ] 27 F = 28 1 2 29 3 4 30 4 1 31 2 0 32 33 >> G=[ A B ; I O] 34 G = 35 1 2 4 1 36 3 4 2 0 37 1 0 0 0 38 0 1 0 0 Μπορούν να διαγράφονται συγκεκριμένα στοιχεία, ή ομάδες στοιχείων από διανύσματα και πίνακες, με χρήση του ( ). >> x = 1 : 5 % V e c t o r d e c l a r a t i o n x = 1 2 3 4 5 >> x ( 2 ) = [ ] % The second element i s d e l e t e d x = 1 3 4 5 >> y = 2 : 0. 5 : 6 % V e c t o r d e c l a r a t i o n
32 Κεφάλαιο 2 Πίνακες στο MATLAB y = 2. 0 0 0 0 2. 5 0 0 0 3. 0 0 0 0 3. 5 0 0 0 4. 0 0 0 0 4. 5 0 0 0 5. 0 0 0 0 5. 5 0 0 0 6. 0 0 0 0 >> y ( 1 : 3 ) = [ ] % The f i r s t t h r e e e l e m e n t s a r e d e l e t e d y = 3. 5 0 0 0 4. 0 0 0 0 4. 5 0 0 0 5. 0 0 0 0 5. 5 0 0 0 6. 0 0 0 0 Η διαγραφή πρέπει να αναφέρεται σε ολόκληρες γραμμές ή στήλες: >> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] % Matrix d e c l a r a t i o n A = 1 2 3 4 5 6 7 8 9 >> A ( :, 1 ) = [ ] % The 1 s t column i s d e l e t e d A = 2 3 5 6 8 9 >> A ( 2, 3 ) = [ ] % A s i n g l e element cannot be d e l e t e d??? S u b s c r i p t e d assignment dimension mismatch. Η συνάρτηση προσδιορίζει το πλήθος των στοιχείων ενός διανύσματος: >> x = 0 : 5 % V e c t o r d e c l a r a t i o n x = 0 1 2 3 4 5 >> n = l e n g t h ( x ) % The v e c t o r ' s e l e m e n t s n = 6 >> x ( n ) = 0 % R e p l a c e the 6 th element with 0 x = 0 1 2 3 4 0 Η συνάρτηση προσδιορίζει το πλήθος των στοιχείων ενός πίνακα. Η σύνταξη είναι η εξής: όπου και είναι ο αριθμός των γραμμών και των στηλών, αντίστοιχα: >> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] % Matrix d e c l a r a t i o n A = 1 2 3 4 5 6 7 8 9 >> [ n, m] = s i z e (A) % Matrix dimensions n = 3 m = 3 >> B = ones ( s i z e (A) ) % C r e a t i o n o f m a t r i x with the same dimensions with A B = 1 1 1 1 1 1 1 1 1
2.3. Πράξεις με πίνακες 33 Υποστηρίζονται τρεις κατηγορίες πράξεων σε πίνακες. Οι χρησιμοποιούμενοι τελεστές διακρίνονται και διαφοροποιούνται ανάλογα με την κατηγορία. Οι τελεστές είναι οι ακόλουθοι: +,,, ˆ, \, /,.,. /,. \,. ˆ, ',. ' Οι πίνακες έχουν ίδιες διαστάσεις. Η πράξη εκτελείται μία φορά για κάθε στοιχείο των πινάκων και αποθηκεύεται στην αντίστοιχη θέση του πίνακα-αποτελέσματος. Πρόσθεση πινάκων: Αφαίρεση πινάκων: Πολλαπλασιασμός ανά στοιχείο: Διαίρεση πινάκων ανά στοιχείο: ή Ύψωση των στοιχείων πίνακα στις δυνάμεις των αντίστοιχων στοιχείων ενός άλλου: Πρόσθεση βαθμωτού σε (όλα τα στοιχεία) πίνακα: ή Αφαίρεση πίνακα από βαθμωτό: Πολλαπλασιασμός πίνακα με βαθμωτό: ή και Διαίρεση πίνακα με βαθμωτό: ή και Ύψωση των στοιχείων πίνακα σε μια βαθμωτή δύναμη: Πολλαπλασιασμός πινάκων (με διαστάσεις που συμφωνούν): Αντιστροφή πίνακα: δίνεται από τη συνάρτηση: Η ορίζουσα πίνακα δίνεται από τη συνάρτηση: πίνακας (A T ): ( ) πίνακας (A H ): ( ) Διαίρεση πινάκων, δηλαδή πολλαπλασιασμός με τον αντίστροφο πίνακα, εάν αυτός υπάρχει: A/B = A Β 1, ή B\A = B 1 A Ύψωση πίνακα σε μια δύναμη : A c 1 >> u = [ 1 0 9 8 ] ; % Row v e c t o r 2 >> v = [ 1 2 3 ] ; % Row v e c t o r 3 >> u + v % sum element by element 4 5 11 11 11 6 7 >> u v % s u b t r a c t element by element
34 Κεφάλαιο 2 Πίνακες στο MATLAB 8 9 9 7 5 10 11 >> A = ones ( 2, 3 ) ; % Matrix 12 >> B = [ 1 2 ; 3 4 ; 5 6 ] ; % Matrix 13 >> A B % Matrix p r o d u c t : L i n e s o f A e q u a l the columns o f B 14 15 9 12 16 9 12 17 18 >> w = [ 1 2 3 ] ; x = [ 4 5 6 ] ; 19 >> y = w x % This i s not p e r m i t t e d 20??? E r r o r u s i n g ==> mtimes 21 I n n e r m a t r i x dimensions must a g r e e. 22 23 >> y = w. x % This i s p e r m i t t e d 24 y = 25 4 10 18 26 27 >> z = w. / x % D i v i s i o n by element 28 z = 29 0. 2 5 0 0 0. 4 0 0 0 0. 5 0 0 0 Στον Πίνακα 2.1 αναφέρονται μερικές χρήσιμες συναρτήσεις που διαθέτει το MATLAB για τη διαχείριση πινάκων. επιστρέφει το μέγεθος του πίνακα (πλήθος γραμμών και στηλών). επιστρέφει το πλήθος των γραμμών του πίνακα A επιστρέφει το πλήθος των στηλών του πίνακα A επιστρέφει τον αριθμό των στοιχείων ενός διανύσματος v επιστρέφει την μεγαλύτερη από τις διαστάσεις ενός πίνακα m n επιστρέφει το συμμετρικό ενός πίνακα ως προς τις γραμμές επιστρέφει το συμμετρικό ενός πίνακα ως προς τις στήλες περιστρέφει ένα πίνακα κατά 90 ο μετασχηματίζει ένα πίνακα διαστάσεων i j σε πίνακα διαστάσεων m n κατασκευάζει διαγώνιο πίνακα με κύρια διαγώνιο ίση με το διάνυσμα v Για πίνακα διαστάσεων m n, εξάγει την κύρια διαγώνιο του σε ένα πίνακα στήλη επιστρέφει το ίχνος (άθροισμα διαγώνιων στοιχείων) ενός πίνακα δύο διαστάσεων Άνω τριγωνικός πίνακας που αντιστοιχεί στον πίνακα Κάτω τριγωνικός πίνακας που αντιστοιχεί στον πίνακα δημιουργία τυχαίων αριθμών Για ένα διάνυσμα v υπολογίζει το άθροισμα των στοιχείων του Για έναν πίνακα δύο διαστάσεων, επιστρέφει έναν πίνακαγραμμή με τα αθροίσματα των στηλών του Για έναν πίνακα δύο διαστάσεων, επιστρέφει έναν πίνακαγραμμή με τα αθροίσματα των στηλών του
2.3. Πράξεις με πίνακες 35 (Συνέχεια του Πίνακα 1.8) Για έναν πίνακα δύο διαστάσεων Α, επιστρέφει έναν πίνακα-στήλη με τα αθροίσματα των γραμμών του Για ένα διάνυσμα v επιστρέφει το μικρότερο στοιχείο Για ένα διάνυσμα v επιστρέφει το μεγαλύτερο στοιχείο Για έναν πίνακα δύο διαστάσεων A επιστρέφει ένα διάνυσμα-γραμμή με το μικρότερο στοιχείο κάθε στήλης Για έναν πίνακα δύο διαστάσεων A επιστρέφει ένα διάνυσμα-γραμμή με το μεγαλύτερο στοιχείο κάθε στήλης 2.1 Εισάγετε το διάνυσμα x = 1, 1.2, 1.4,, 5. Υπολογίστε τις τιμές του διανύσματος y, που προκύπτει απ τη σχέση: y = 7 sin(4x). Προσδιορίστε το πλήθος των στοιχείων του y και την τιμή του τρίτου στοιχείου του. 2.2 Χρησιμοποιήστε δύο μεθόδους για να εισάγετε ένα διάνυσμα x αʹ) με 100 ισαπέχοντα στοιχεία στο διάστημα 5 28. βʹ) με στοιχεία που διαφέρουν κατά 0.2 μεταξύ τους, στο διάστημα 2 14. γʹ) με 50 ισαπέχοντα στοιχεία, στο διάστημα 2 5. 2.3 Χρησιμοποιήστε δύο μεθόδους για να εισάγετε ένα διάνυσμα x αʹ) με 50 λογαριθμικά απέχοντα στοιχεία στο διάστημα 10 1000. βʹ) με 20 λογαριθμικά απέχοντα στοιχεία, στο διάστημα 10 1000. 2.4 Εισάγετε ένα διάνυσμα x με 6 στοιχεία, στο διάστημα [0, 10]. Δημιουργήστε έναν πίνακα A, που η πρώτη του γραμμή περιέχει τις τιμές 3x και η δεύτερη γραμμή του, τις τιμές 5x 20 και έναν πίνακα B με τις τιμές 3x στην πρώτη στήλη και τις τιμές 5x 20 στη δεύτερη στήλη. 2.5 Εισάγετε τον πίνακα A και υλοποιήστε τις ενέργειες που αναφέρονται στη συνέχεια 3 7 4 12 5 9 10 2 A = 6 13 8 11 15 5 4 11 αʹ) δημιουργήστε διάνυσμα v με τα στοιχεία της δεύτερης στήλης του A. βʹ) δημιουργήστε διάνυσμα w με τα στοιχεία της δεύτερης γραμμής του A. γʹ) δημιουργήστε πίνακα B (4 3) με τα στοιχεία απ τη δεύτερη μέχρι και την τέταρτη στήλη του A. δʹ) δημιουργήστε πίνακα C (3 4) με τα στοιχεία απ τη δεύτερη μέχρι και την τέταρτη γραμμή του A. εʹ) δημιουργήστε πίνακα D (2 3) με τα στοιχεία των δύο πρώτων γραμμών και των τριών τελευταίων στηλών του A.
36 Κεφάλαιο 2 Πίνακες στο MATLAB 2.6 Εισάγετε τους πίνακες A, B, C A = 4 2 1 6 8 5 7 9 10 B = 6 9 4 7 5 3 8 2 1 C = 4 5 2 10 6 1 3 9 8 αʹ) Επαληθεύστε την προσεταιριστική ιδιότητα A(B + C) = AB + AC βʹ) Επαληθεύστε την επιμεριστική ιδιότητα A(BC) = (AB)C 2.7 Το μηχανικό έργο W που απαιτείται, ώστε μια δύναμη F να ωθήσει ένα σώμα, σε απόσταση D είναι W = F D. Ο πίνακας που ακολουθεί περιλαμβάνει τις τιμές της δύναμης και τα αντίστοιχα τμήματα μιας διαδρομής όπου δρα η δύναμη. Η τιμή της δύναμης μεταβάλλεται, γιατί αλλάζουν οι ιδιότητες της επιφάνειας και συνεπώς η και τιμή της τριβής, στα αντίστοιχα τμήματα της διαδρομής. Τμήμα διαδρομής 1 2 3 4 5 F (N) 400 550 700 500 600 D(m) 3 0.5 0.75 1.5 5 αʹ) Υπολογίστε το έργο για κάθε τμήμα της διαδρομής βʹ) Υπολογίστε το συνολικό έργο, για όλη τη διαδρομή γʹ) Προσδιορίστε το τμήμα όπου απαιτείται το μικρότερο ποσό έργου
Κεφάλαιο Το MATLAB δίνει τη δυνατότητα σχεδίασης γραφημάτων με αριθμητικά δεδομένα, αποθηκευμένα σε διανύσματα ή πίνακες. Τα δεδομένα μπορεί να προέρχονται απ την αναλυτική έκφραση μιας συνάρτησης ή από ένα αρχείο. Μπορούν να σχεδιαστούν καμπύλες που περιγράφουν αλγεβρικές σχέσεις της μορφής y = f(x), διδιάστατες απεικονίσεις επιφανειών της μορφής z = f(x, y) και τρισδιάστατα αντικείμενα, που απεικονίζονται ως φωτοσκιασμένες γραφικές παραστάσεις επιφανειών. Το MATLAB δίνει τη δυνατότητα προσθήκης (animation) στα διαγράμματα. Στη συνέχεια περιγράφεται ο τρόπος δημιουργίας διαγραμμάτων, για την απεικόνιση αλγεβρικών σχέσεων. Απεικονίζουν την μεταβολή της μεταβλητής σε σχέση με την μεταβλητή. Για δύο διανύσματα και που τα δεδομένα τους αντιστοιχούν σε μια σχέση της μορφής y = f(x), η γραφική παράσταση του ως προς, προκύπτει ως αποτέλεσμα των δηλώσεων: 1 >> x = [... ] % V e c t o r x 2 >> y = [... ] % V e c t o r y 3 >> p l o t ( x, y ) % P l o t o f y= f ( x ) >> x = [ 2 5 7 10 13 1 5 ] ; >> y = [ 1 3 8 6 5 9 ] ; >> p l o t ( x, y ) Ο (default) τρόπος σχεδίασης στο MATLAB είναι η ένωση των σημείων με γραμμή (Σχήμα 3.1). Ωστόσο, παρέχεται η δυνατότητα επιλογής διαφορετικών τύπων γραμμής, καθώς και συμβόλων των σημείων (Πίνακας 3.1). Η συνάρτηση καλείται ως εξής: 37
38 Κεφάλαιο 3 Γραφικά στο MATLAB όπου η παράμετρος είναι συνδυασμός χαρακτήρων του Πίνακα 3.1. Μαύρο Συνεχής + Κόκκινο Διακεκομμένη Μπλε Τελείες Πράσινο Παύλες-Τελείες Κυανό Χωρίς γραμμή Πορφυρό Κίτρινο Στο Σχήμα 3.2 φαίνεται ένα δεύτερο παράδειγμα χρήσης της συνάρτησης, η οποία σχεδιάζει ένα γράφημα με σύμβολα για τα σημεία, τα οποία ενώνονται με μια κόκκινη, γραμμή. >> x = [ 2 5 7 10 13 1 5 ] ; >> y = [ 1 3 8 6 5 9 ] ; >> p l o t ( x, y ) Η συνάρτηση απεικονίζει τα δεδομένα άξονες. Σε πολλές περιπτώσεις, όπως για παράδειγμα στις μεταβολές που εκφράζονται με εκθετικές συναρτήσεις, είναι προτιμότερο να χρησιμοποιούνται άξονες. Το MATLAB παρέχει ως εναλλακτικές επιλογές, της, τις συναρτήσεις: : λογαριθμικός x-άξονας : λογαριθμικός y-άξονας : λογαριθμικοί και οι δύο άξονες Αναφερόμαστε σε λογάριθμους. Στη συνέχεια παρουσιάζονται τα γραφήματα της συνάρτησης: y = 10 e 2 x, x [0, 3] σε γραμμικούς (Σχήμα 3.3), λογαριθμικό x-άξονα (Σχήμα 3.4), λογαριθμικό y-άξονα (Σχήμα 3.5) και λογαριθμικούς άξονες (Σχήμα 3.6). Το πλέγμα εμφανίζεται για να γίνει κατανοητή η διαφορά της γραμμικής και της λογαριθμικής κλίμακας.