Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΠΙΣΤΗΜΟΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΜΟΥΣ Βασικές Έννοιες και Μαθηματικές Συναρτήσεις Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
MATLAB Προέρχεται από τις λέξεις MATrix LABoratory Είναι ένα λογισμικό περιβάλλον προγραμματισμού αριθμητικών μεθόδων, προσομοίωσης και γραφικής αναπαράστασης. Πρωτοεμφανίστηκε τη δεκαετία του 70. Πρώτη εμπορική έκδοση: 1984 Νέα έκδοση κάθε εξάμηνο Τελευταία έκδοση: 9.5 (2018b) Εταιρεία: MathWorks (https://www.mathworks.com/) Αντίστοιχο Open Source πρόγραμμα: Οctave (https://octave.sourceforge.io/)
Περιβάλλον Εργασίας Τρέχων Φάκελος Εργασίας Παράθυρο Εντολών Μεταβλητές στη Μνήμη
Βοήθεια - Πληροφορίες version ver help helpwin lookfor doc demo quit, exit Έκδοση MATLAB Έκδοση MATLAB και όλων των Toolboxes Εμφάνιση σύντομης βοήθειας μέσα στο παράθυρο εντολών Εμφάνιση σύντομης βοήθειας σε ξεχωριστό παράθυρο Αναζήτηση όρου στο σύστημα βοήθειας Αναλυτική Τεκμηρίωση Εμφάνιση παραδειγμάτων Έξοδος από το MATLAB
Αριθμητικές Πράξεις + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση \ Αριστερή Διαίρεση ^ Ύψωση σε Δύναμη Η αριστερή διαίρεση χρησιμοποιείται στην επίλυση γραμμικών συστημάτων
Μαθηματικές Συναρτήσεις - Σταθερές Συναρτήσεις exp log Εκθετική Νεπέριος Λογάριθμος log10 Λογάριθμος με βάση 10 log2 Λογάριθμος με βάση 2 sqrt nthroot abs sing factorial gcd lcm Τετραγωνική Ρίζα n-οστή Ρίζα Απόλυτη τιμή Πρόσημο Παραγοντικό Μέγιστος κοινός διαιρέτης Ελάχιστο κοινό πολλαπλάσιο Σταθερές pi inf nan π Άπειρο Απροσδιόριστος αριθμός i, j Φανταστική μονάδα eps realmin realmax intmin intmax Έψιλον Μηχανής Μικρότερος θετικός Πραγματικός Μεγαλύτερος Πραγματικός Μικρότερος Ακέραιος Μεγαλύτερος Ακέραιος
Τριγωνομετρικές Συναρτήσεις Τριγωνομετρικές Αντίστροφες Ακτίνια Μοίρες Ακτίνια Μοίρες Ημίτονο sin sind asin asind Συνημίτονο cos cosd acos acosd Εφαπτομένη tan tand atan, atan2 atand, atan2d Συνεφαπτομένη cot cotd acot acotd Τέμνουσα sec secd asec asecd Συντέμνουσα csc cscd acsc acscd 1 1 1 sec =, csc =, cot = cos sin tan deg2rad rad2dec Μετατροπή από μοίρες σε ακτίνια Μετατροπή από ακτίνια σε μοίρες
Διαφορά μεταξύ atan και atan2 H atan(y/x) επιστρέφει τιμές στο διάστημα (-π/2,π/2) Η atan2(y,x) επιστρέφει τιμές στο διάστημα (-π,π] Πρόβλημα: atan(-1/-1)=atan(1/1)=π/4 Λάθος!! Ορισμός atan2: atan(y/x) y > 0, x> 0 atan(y/x) + π y 0, x< 0 atan(y/x) π y< 0, x< 0 atan2( yx, ) = + π / 2 y > 0, x= 0 π / 2 y< 0, x= 0 απροσδιόριστη y = 0, x= 0
Υπερβολικές Συναρτήσεις Υπερβολικές Αντίστροφες Ημίτονο sinh asinh Συνημίτονο cosh acosh Εφαπτομένη tanh atanh Συνεφαπτομένη coth acoth Τέμνουσα sech asech Συντέμνουσα csch acsch sinh x e e e + e =, cosh x= 2 2 x x x x
Στρογγυλοποίηση fix floor ceil round Προς το μηδέν Προς το μείον άπειρο Προς το συν άπειρο Προς τον πλησιέστερο ακέραιο fix floor ceil round 2.6 2 2 3 3 2.4 2 2 3 2-2.6-2 -3-2 -3-2.4-2 -3-2 -2
Ευκλείδεια Διαίρεση Α Υ Β P Α = Β * P + Υ P = Πηλίκο Υ = Υπόλοιπο Πηλίκο = fix (A / B) Yπόλοιπο = rem (A, B)
Συναρτήσεις για Μιγαδικούς Αριθμούς x = 3+ 4i ή x= 3+ 4 j complex abs angle real imag conj Δημιουργία μιγαδικού Μέτρο Όρισμα Πραγματικό μέρος Φανταστικό μέρος Συζυγής
Βασικές Εντολές Μορφοποίησης Εμφάνιση αριθμών Έλεγχος κενών γραμμών format Επαναφορά στο default format (short) loose Με κενές γραμμές (default) format short format shorte Με λίγα ψηφία (default) short Εκθετικό compact Χωρίς κενές γραμμές format shorteng format long format longe format longeng format rat get(0,'format') short Engineering Με πολλά ψηφία long Εκθετικό long Engineering Ρητή μορφή Τρέχουσα επιλογή format Η κάθε μορφοποίηση διατηρείται και ισχύει για όλες τις επόμενες εντολές, μέχρι να κληθεί ξανά η εντολή format.
Μεταβλητές Το MATLAB κάνει διάκριση μεταξύ πεζών και κεφαλαίων To όνομα μιας μεταβλητής μπορεί να περιέχει γράμματα, ψηφία ή την κάτω παύλα, πρέπει να αρχίζει με γράμμα και να έχει μέγιστο μήκος 63 χαρακτήρες. Αν δεν χρησιμοποιήσουμε κάποια δική μας μεταβλητή, το MATLAB αποθηκεύει τα αποτελέσματα των εντολών στην προκαθορισμένη μεταβλητή ans. Το βασικό είδος μεταβλητής είναι ο πίνακας (array). Το MATLAB επιτρέπει τα ονόματα των εγγενών συναρτήσεων να χρησιμοποιηθούν ως ονόματα μεταβλητών. ΝΑ ΑΠΟΦΕΥΓΕΤΑΙ!
Εντολές Ελέγχου Ύπαρξης Ονομάτων exist Ελέγχει αν ένα όνομα υπάρχει είτε ως όνομα συνάρτησης είτε ως μεταβλητής. Βασικοί Κωδικοί Επιστροφής 0: Δεν βρέθηκε 1: Μεταβλητή 2:.m Αρχείο 5: Εγγενής Συνάρτηση which Για συναρτήσεις, επιστρέφει την πλήρη διαδρομή στο δίσκο του αρχείου ορισμού τους. Επίσης κάνει αναζήτηση και μεταβλητών.
Βασικοί Τύποι Δεδομένων Πραγματικοί Ακέραιοι Χαρακτήρες Λογικοί single, double int8, uint8, int16, uint16, int32, uint32, int64, uint64 char, string logical Στο MATLAB δεν απαιτείται δήλωση του τύπου των μεταβλητών. Ο προκαθορισμένος αριθμητικός τύπος είναι ο double. Οι σταθερές χαρακτήρων char περικλείονται σε απλά εισαγωγικά: ', ενώ οι τύπου string σε διπλά εισαγωγικά: " ". Οι σταθερές λογικού τύπου είναι οι true και false. Γενικά, ως false μπορούμε να χρησιμοποιήσουμε το μηδέν, ενώ ως true οποιονδήποτε αριθμό διάφορο του μηδενός.
Διαχείριση Περιβάλλοντος Εργασίας who whos inmem inmem('-completenames') clc clear x clear clear all memory Εμφάνιση όλων των μεταβλητών που βρίσκονται στη μνήμη Εμφάνιση των μεταβλητών και των τύπων τους Εμφάνιση των φορτωμένων συναρτήσεων Εμφάνιση των φορτωμένων συναρτήσεων μαζί με το path τους στο δίσκο Καθαρισμός οθόνης Διαγραφή μεταβλητής Διαγραφή όλων των μεταβλητών Καθαρισμός όλης της μνήμης (μεταβλητές, συναρτήσεις κτλ) Εμφάνιση πληροφοριών για τη μνήμη RAM και Swap File
Αποθήκευση / Ανάκτηση του Workspace save load save myfile load myfile save('myfile','a','c, ) load('myfile','a','c, ) Σώζει το workspace στο default αρχείο matlab.mat. Αν το αρχείο υπάρχει επικαλύπτεται (δεν γίνεται προσάρτηση) Φορτώνει τις μεταβλητές από το αρχείο matlab.mat. Οι υπάρχουσες μεταβλητές με το ίδιο όνομα αντικαθίστανται ενώ οι υπόλοιπες δεν επηρεάζονται. Χρησιμοποιεί το αρχείο 'myfile.mat' Αποθηκεύει και ανακτά μόνο συγκεκριμένες μεταβλητές save('myfile','-append','a, ) Κάνει προσάρτηση στο αρχείο
Αποθήκευση εντολών σε diary Καταγράφεται ό,τι εμφανίζεται στο παράθυρο εντολών δηλ. οι εντολές καθώς και τα αποτελέσματά τους. diary diary('filename') ή diary filename diary off diary on get(0, diary ) Ξεκινά η καταγραφή στο αρχείο με default όνομα «diary». Αν το αρχείο υπάρχει γίνεται προσάρτηση. Ξεκινά η καταγραφή στο αρχείο με όνομα «filename». Αν το αρχείο υπάρχει γίνεται προσάρτηση. Σταματάει η καταγραφή των εντολών. Ξανά ξεκινάει (μετά από diary off) η διαδικασία καταγραφής με προσάρτηση στο αρχείο. Επιστρέφει το status του diary (on, οff).
Ειδικοί Χαρακτήρες ; Το ερωτηματικό στο τέλος μιας εντολής αποκρύπτει την εμφάνιση του αποτελέσματος στο Παράθυρο Εντολών, Αν επιθυμούμε να δώσουμε περισσότερες εντολές σε μία γραμμή τις διαχωρίζουμε με κόμμα ή με ερωτηματικό. Με το κόμμα το αποτέλεσμα της εντολής είναι εμφανές ενώ με το ερωτηματικό όχι. Με 3 τελείες στο τέλος μιας γραμμής δηλώνουμε ότι η εντολή συνεχίζεται στην επόμενη γραμμή
Βασικοί Τελεστές Σειρά Προτεραιότητας Αριθμητικοί ^ * / + - Σχεσιακοί ή Συγκριτικοί (Χωρίς προτεραιότητα μεταξύ τους) < <= == ~= >= > Λογικοί ~ && Παρατήρηση: Οι λογικοί τελεστές && και λειτουργούν ως short-circuit τελεστές. Υπάρχουν αντίστοιχα και οι τελεστές & και που δεν είναι short-circuit και εφαρμόζονται κυρίως σε λογικούς πίνακες στοιχείο προς στοιχείο. Τέλος υπάρχει και η συνάρτηση xor για την αποκλειστική διάζευξη.
Πίνακας Αληθείας λογικών πράξεων (Άλγεβρα του Bool) P Q P && Q P Q xor(p,q) ~ P true true true true false false true false false true true false false true false true true true false false false false false true Κανόνες του De Morgan ~ (P Q) (~ P) && (~ Q) ~ (P && Q) (~ P) (~ Q)
Βασικοί τύποι αρχείων.mat Αρχείο σε δυαδική μορφή στο οποίο αποθηκεύονται μεταβλητές από το Workspace.m Αρχείο κειμένου. Χρησιμοποιείται: α) για αποθήκευση σεναρίων (scripts) β) για αποθήκευση των δικών μας συναρτήσεων. Σε αυτή την περίπτωση πρέπει να ξεκινά με τη λέξη function Για να εκτελέσουμε μεμονωμένες εντολές από ένα αρχείο.m, που έχουμε ανοίξει στον editor του MATLAB, τις επιλέγουμε και με δεξί κλικ δίνουμε «Evaluate Selection» ή πατάμε F9