Σημειώσεις Εργαστηρίου Εφαρμοσμένου Προγραμματισμού

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

Download "Σημειώσεις Εργαστηρίου Εφαρμοσμένου Προγραμματισμού"

Transcript

1 Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ανατολικής Μακεδονίας και Θράκης Σχολή Τεχνολογικών Εφαρμογών Τμήμα Ηλεκτρολόγων Μηχανικών Σημειώσεις Εργαστηρίου Εφαρμοσμένου Προγραμματισμού Τραμαντζάς Α. Κωνσταντίνος Καβάλα 24

2 Πρόλογος Το MATLAB είναι ένα σύγχρονο ολοκληρωμένο μαθηματικό λογισμικό πακέτο της εταιρείας math works Inc που χρησιμοποιείται σε πανεπιστημιακά μαθήματα αλλά και ερευνητικές και άλλες εφαρμογές με επιστημονικούς υπολογισμούς (scientific computing). Το όνομά του προέρχεται από τα αρχικά γράμματα των λέξεων MATtrix LABoratory (εργαστήριο πινάκων). Το MATLAB είναι ένα διαδραστικό (interactive) πρόγραμμα για αριθμητικούς υπολογισμούς και οπτικοποίηση δεδομένων (data visualization) με δυνατότητες προγραμματισμού που το καθιστούν ένα ισχυρό και χρήσιμο εργαλείο στις μαθηματικές και φυσικές επιστήμες. Όπως υποδηλώνεται και από το όνομά του, το MATLAB είναι ειδικά σχεδιασμένο για υπολογισμούς με πίνακες, όπως η επίλυση γραμμικών συστημάτων, η εύρεση ιδιοτιμών και ιδιοδιανυσμάτων, η αντιστροφή τετραγωνικών πινάκων κλπ. Επιπλέον το πακέτο αυτό είναι εφοδιασμένο με πολλές επιλογές για γραφικά (δηλ. την κατασκευή γραφικών παραστάσεων) και προγράμματα γραμμένα στη δική του γλώσσα προγραμματισμού. Συχνά θα γράφουμε η MATLAB (εννοώντας τη γλώσσα προγραμματισμού) και όχι το (πακέτο) MATLAB. Το MATLAB είναι σχεδιασμένο για την αριθμητική επίλυση προβλημάτων σε αριθμητική πεπερασμένης ακρίβειας (finite - precision arithmetic), δηλαδή δεν βρίσκει την ακριβή, αλλά μια προσεγγιστική λύση ενός προβλήματος. Ας σημειωθεί ότι ο καλύτερος (και ουσιαστικά ο μόνος) τρόπος εκμάθησης της MATLAB είναι η συστηματική ενασχόληση με αυτή και η διερεύνησή της από τον ίδιο τον χρήστη. Το πακέτο είναι εφοδιασμένο με ένα εκτενές σύστημα βοήθειας όπου κάθε εντολή επεξηγείται αναλυτικά και με αντιπροσωπευτικά παραδείγματα. Η πιο σημαντική εντολή της MATLAB είναι η help (βοήθεια)! Επίσης, στην επίσημη ιστοσελίδα της MATLAB: μπορεί κάποιος να βρει μια πληθώρα πληροφοριών τόσο για αρχάριους όσο και προχωρημένους. Μια ελεύθερη εναλλακτική του MATLAB είναι το μαθηματικό πακέτο Octave. Προορίζεται για αριθμητικούς υπολογισμούς και πολλά άλλα. Βασικό στοιχείο του είναι η ευκολία με την οποία χειρίζεται κανείς πίνακες και διατίθεται υπό ελεύθερη άδεια χρήσης. Πριν ξεκινήσετε τη χρήση του μπορείτε να ρίξτε μια ματιά στο σχετικό άρθρο της Wikipedia. Το πρόγραμμα πήρε το όνομά του από τον Καθηγητή χημικής μηχανικής Octave Levenspiel, λόγω της ικανότητάς του να εκετελεί γρήγορους "υπολογισμούς σε χαρτοπετσέτα". Μέσω κάποιου web browser πηγαίνουμε στη σελίδα του Octave, στο Source Forge. Πατάμε το "Windows installer (Octave and Octave-Forge)" και κατεβαίνει το αρχείο εγκατάστασης.

3 η Εργαστηριακή Άσκηση Γνωριμία με το περιβάλλον της MATLAB. Βασικές πράξεις. Επιστημονικός συμβολισμός. Προτεραιότητα πράξεων.. Ξεκινώντας με τη MATLAB Για να χρησιμοποιήσουμε το MATLAB πρέπει να το εγκαταστήσουμε πρώτα στον υπολογιστή μας. Το εικονίδιο του πακέτου για την έκδοση 6.5 φαίνεται πιο κάτω: Μπορούμε να ξεκινήσουμε το πρόγραμμα με διπλό κλικ πάνω στο εικονίδιο αυτό. Μετά από λίγο, αφού το πρόγραμμα φορτώσει, θα εμφανιστεί στην οθόνη μας το παράθυρο έναρξης της MATLAB (MATLAB opening window): Γενικά εμφανίζονται τέσσερα παράθυρα: 2

4 ) Το μεγάλο παράθυρο εντολών (Command Window) στα δεξιά. Οι εντολές της MATLAB εισάγονται σ αυτό το παράθυρο μετά την προτροπή (prompt) >>. Τα αποτελέσματα επίσης τυπώνονται στο παράθυρο αυτό (προεπιλογή). 2) Ένα μικρό παράθυρο πάνω αριστερά που δείχνει τον τρέχοντα φάκελο (Current Directory) και τα αρχεία που εμφανίζονται σ αυτόν. Αν το παράθυρο είναι κρυμμένο, επιλέξτε Current Directory. 3) Ένα παράθυρο που εναλλάσσεται με το παράθυρο τρέχοντα φακέλου ανάλογα με την επιλογή Workspace ή Current Directory είναι το παράθυρο του χώρου εργασίας (workspace). Αν το παράθυρο είναι κρυμμένο, επιλέξτε Workspace. 4) Ένα παράθυρο κάτω αριστερά που δείχνει το ιστορικό εντολών (Command History). Αν δεν εμφανιστεί το παράθυρο αυτό επιλέξτε Command History στην επιλογή View. Με τον ίδιο τρόπο μπορείτε να κλείσετε το παράθυρο αυτό. Κατά τη διάρκεια μιας εργασίας στη MATLAB μπορεί να εμφανιστούν αυτόματα και άλλα παράθυρα όταν αυτό απαιτείται όπως παράθυρα κειμένου (document windows), παράθυρα γραφικών (graphics windows) και παράθυρα σύνταξης αρχείων (editing windows). Σημειώνεται ότι μπορείτε να αλλάξετε τον τρέχοντα φάκελο επιλέγοντας τον προσωπικό σας φάκελο κάνοντας την κατάλληλη επιλογή στο τετραγωνίδιο που δείχνει το βέλος στο ακόλουθο σχήμα: Η έξοδος από το πρόγραμμα μπορεί να γίνει με τους εξής τρόπους: με την εντολή quit ή την εντολή exit στο παράθυρο εντολών, με κλικ στο τετραγωνίδιο [x] που βρίσκεται πάνω δεξιά στο παράθυρο της MATLAB, και με την επιλογή File Exit MATLAB στο παράθυρο εργασίας. 3

5 Οι εφαρμογές έχουν γίνει με την έκδοση 6.5 της MATLAB. Με την εντολή version μπορούμε να μάθουμε την έκδοση της MATLAB που χρησιμοποιούμε. >> version (R3) Service Pack Με την εντολή ver παίρνουμε περισσότερες πληροφορίες, όπως το λειτουργικό σύστημα (operating system), την εκδοχή του μεταγλωττιστή (compiler) και τις εκδοχές των εργαλειοθηκών (toolboxes) του πακέτου: >> ver MATLAB Version (R3) Service Pack MATLAB License Number: 2749 Operating System: Microsoft Windows XP Version 5. (Build 26: Service Pack 2) Java VM Version: Java.3._ with Sun Microsystems Inc. Java HotSpot(TM) Client VM MATLAB Version 6.5. (R3SP) Financial Toolbox Version 2.3 (R3SP) MATLAB Compiler Version 3.. (R3SP) Optimization Toolbox Version 2.3 (R3SP) Signal Processing Toolbox Version 6. (R3SP) Statistics Toolbox Version 4. (R3SP) Symbolic Math Toolbox Version 3.. (R3SP) 2. Βασικές πράξεις Το MATLAB μπορεί να χρησιμοποιηθεί σαν απλή αριθμομηχανή. Για τις βασικές πράξεις χρησιμοποιούνται τα σύμβολα που φαίνονται στον πιο κάτω πίνακα: 4

6 Εφαρμογή >> +2 3 >> >> 8/ >> 3*4 2 >> 3^4 8 Επειδή τα αποτελέσματα γράφονται αραιά στη συνέχεια θα χρησιμοποιήσουμε την εντολή format compact για εξοικονόμηση χώρου. Την εντολή format θα τη συζητήσουμε αναλυτικά στην παράγραφο.5. Αν επαναλάβουμε λοιπόν το παράδειγμά μας σε format compact θα διαπιστώσουμε ότι δεν εμφανίζονται οι ενδιάμεσες κενές γραμμές στο παράθυρο εντολών: >> format compact >> +2 3 >> >> 8/

7 >> 3*4 2 >> 3^ Ο επιστημονικός συμβολισμός Εκτός από το δεκαδικό συμβολισμό (decimal notation) η MATLAB (όπως και μια αριθμομηχανή) χρησιμοποιεί το λεγόμενο επιστημονικό συμβολισμό (scientific notation). Ας πάρουμε σαν παράδειγμα τους (σε δεκαδική μορφή) αριθμούς.234 και Στον επιστημονικό συμβολισμό γράφουμε τους πιο πάνω αριθμούς σαν και Στη MATLAB γράφουμε τους δύο αριθμούς ως εξής:.234e-4 και e3 δηλ. χρησιμοποιούμε το γράμμα e για να δείξουμε ότι ακολουθεί ο εκθέτης του. Θα μπορούσαμε ακόμα να γράψουμε.234e-3 και e4 Ο επιστημονικός συμβολισμός είναι ιδιαίτερα βολικός όταν χρησιμοποιούμε πολύ μεγάλους ή πολύ μικρούς αριθμούς. Για παράδειγμα, για τον αριθμό Avogadro είναι προτιμότερο να γράψουμε ότι αυτός είναι ίσος με και όχι 622! Εφαρμογή 2 Θα υπολογίσουμε το άθροισμα των και.2345 οι οποίοι σε επιστημονικό συμβολισμό γράφονται 6

8 και >> e e e+4 Παρατηρούμε ότι δεν έχουμε επαρκή αριθμό δεκαδικών για να δούμε το πραγματικό αποτέλεσμα της πράξης. Για να δούμε περισσότερα δεκαδικά ψηφία χρησιμοποιούμε την εντολή format long: >> format long >> e e e+4 Είναι σημαντικό να μην υπάρχει κενό μεταξύ του δεκαδικού αριθμού και του e ή μεταξύ του e και του εκθέτη. Αν αφήσουμε κενό η MATLAB θα διαβάσει δύο αριθμούς (αντί για ένα)! Εφαρμογή 3 Θα δώσουμε τον αριθμό.2 5. Αφήνοντας κενό μεταξύ του δεκαδικού αριθμού και του e και μεταξύ του e και του εκθέτη παίρνουμε μήνυμα λάθους από τη MATLAB >>.2 e-5???.2 e-5 Error: Missing operator, comma, or semicolon. >>.2e -5???.2e -5 Error: "End of Input" expected, "incomplete floating-point number" found. Θα γράψουμε τώρα σωστά τον αριθμό: >>.2e-5.2e-5 4. Προτεραιότητα πράξεων Όπως και στις γλώσσες προγραμματισμού FORTRAN και C, η MATLAB ακολουθεί τους συνήθεις αλγεβρικούς κανόνες για την σειρά εκτέλεσης πράξεων: 7

9 . Πρώτα εκτελούνται οι πράξεις μέσα σε παρενθέσεις από τα μέσα προς τα έξω. 2. Μετά εκτελούνται οι υψώσεις σε δύναμη. 3. Μετά εκτελούνται οι πολλαπλασιασμοί και διαιρέσεις από τα αριστερά προς τα δεξιά. 4. Τέλος, εκτελούνται οι προσθέσεις και αφαιρέσεις από τα αριστερά προς τα δεξιά. Εφαρμογή 4 Ο σωστός τρόπος υπολογισμού της παράστασης είναι ο εξής: >> (.^(2+3)-)/(3*2).8 Ας δούμε τώρα και μερικούς πιθανούς λάθος τρόπους: >> (.^2+3-)/(3*2).535 >> (.^(2+3)-)/3*2.47 8

10 2η Εργαστηριακή Άσκηση Εκχώρηση τιμών σε μεταβλητές. Τύποι μεταβλητών.. Μεταβλητές Η εκχώρηση τιμής σε μια μεταβλητή γίνεται με το σύμβολο =. Εφαρμογή >> x= x = >> y=2 y = 2 >> z=x^y z = Για τα ονόματα μεταβλητών χρησιμοποιούνται κυρίως γράμματα του αγγλικού αλφαβήτου. Η MATLAB κάνει διάκριση μεταξύ κεφαλαίων και μικρών γραμμάτων. Για παράδειγμα οι μεταβλητές y και Y είναι διαφορετικές μεταξύ τους. Για τα ονόματα μεταβλητών ισχύουν οι πιο κάτω κανόνες: Το όνομα αρχίζει με γράμμα (του αγγλικού αλφαβήτου). Το όνομα περιέχει μόνο γράμματα, αριθμούς και υποπαύλες (underscore). Δεν χρησιμοποιούνται ονόματα που έχουν δεσμευτεί από τη MATLAB (π.χ. συναρτήσεις βιβλιοθήκης και εργαλειοθηκών). Προτιμούνται μικρά ονόματα για πρακτικούς λόγους αν και δεν υπάρχει περιορισμός στο μήκος των ονομάτων. Εφαρμογή 2 >> Y=2.2 9

11 Y = 2.2 >> y=2; >> Y+y 22.2 Παρατηρούμε ότι η MATLAB επιστρέφει μετά από κάθε εντολή το αποτέλεσμά της. Αν δεν θέλουμε να εμφανίζεται στο παράθυρο εργασίας το αποτέλεσμα μιας εντολής γράφουμε στο τέλος της εντολής το ερωτηματικό ; (semicolon). Οποτεδήποτε θέλουμε να δούμε στο παράθυρο εργασίας την τιμή μιας ενεργής μεταβλητής, γράφουμε απλώς το όνομά της. Εφαρμογή 3 >> x= x =.2346 >> y=26; >> z=x/y; >> y y = 26 >> z z = 6.544e-4 Μπορούμε να γράψουμε περισσότερες από μια εντολές σε μια γραμμή τις οποίες χωρίζουμε είτε με κόμματα είτε με ερωτηματικά (αν δεν θέλουμε να τυπωθεί το αποτέλεσμα στο παράθυρο εντολών). Εφαρμογή 4 >> x=; y = 2 sum = 6 y=2, (συνέχεια) z=3; sum=x+y+z, w=x*y*z; Παρατηρούμε ότι στο παράθυρο εντολών τυπώθηκαν μόνο τα y και sum αφού μετά τις αντίστοιχες εντολές χρησιμοποιήσαμε κόμμα και όχι ερωτηματικό. Θα έχετε ήδη προσέξει ότι όταν το αποτέλεσμα μιας εντολής δεν εκχωρείται σε μια μεταβλητή, τότε αυτό εκχωρείται στην προεπιλεγμένη μεταβλητή ans. Η μεταβλητή αυτή

12 ανακυκλώνεται κάθε φορά που δίνουμε εντολή το αποτέλεσμα της οποίας δεν εκχωρείται σε κάποια άλλη μεταβλητή. Εφαρμογή 5 (συνέχεια) >> y=2; >> y-2 6 >> ans^2 36 >> ans/ 3.6 Οι μεταβλητές στη MATLAB μπορεί να είναι όχι μόνο πραγματικές αλλά και μιγαδικές ή αλφαριθμητικές, δηλ. να έχουν ως τιμές ακολουθίες χαρακτήρων (strings), ή ακόμα λογικές (logical), δηλ. να παίρνουν τις τιμές true (αληθής) και false (ψευδής). Η MATLAB επεξεργάζεται με φυσικό τρόπο και μιγαδικούς αριθμούς. Αυτοί ορίζονται απλά ως εξής: a+bi όπου οι a και b είναι πραγματικοί αριθμοί και το i συμβολίζει τη φανταστική μονάδα: i. Ο συζυγής ενός μιγαδικού αριθμού z είναι ο z'. Εφαρμογή 6 Έστω οι μιγαδικοί αριθμοί z= + 4i και z2 = 2 3i. Θα υπολογίσουμε τα εξής: z+z2, z.z2, z2/z, z, z 2, και z z2. >> z=+4i z =. + 4.i >> z2=2-3i z2 = i >> z+z i >> z*z i >> z'

13 . - 4.i >> z2' i >> (z-z2)' i Οι πίνακες και τα διανύσματα αποτελούν τις κύριες μεταβλητές της MATLAB όπως δηλώνεται και από το όνομά της. Μάλιστα στις αρχικές εκδοχές της MATLAB (μέχρι και την εκδοχή 3) όλες οι μεταβλητές ήταν πίνακες, αφού οι αριθμοί αντιμετωπίζονται σαν πίνακες και τα διανύσματα σαν n πίνακες. Οι πίνακες (και τα διανύσματα) θα μελετηθούν διεξοδικά στο Κεφάλαιο 2. Σε επόμενα κεφάλαια θα συζητήσουμε και τους νέους τύπους δεδομένων της MATLAB (που δεν είναι πίνακες). Οι πίνακες στη MATLAB εισάγονται με βάση τους εξής κανόνες:. Τα στοιχεία του πίνακα γράφονται ανάμεσα σε αγκύλες [.. ]. Μόνο στην περίπτωση πινάκων, δηλ. μόνο στην περίπτωση αριθμών (!), οι αγκύλες είναι προαιρετικές. 2. Τα στοιχεία μιας γραμμής του πίνακα χωρίζονται είτε με κόμματα είτε με κενό. 3. Η αλλαγής γραμμής στον πίνακα δηλώνεται είτε με ερωτηματικό (;) είτε με αλλαγή γραμμής στο παράθυρο εντολών της MATLAB. Τα πιο πάνω θα φανούν πολύ πιο εύκολα αν δούμε τα παραδείγματα που ακολουθούν. Εφαρμογή 7 Θα προσθέσουμε τα διανύσματα u = (4,,, 2) και v = (, 2, 3, ). >> u=[4-2]; >> v=[, 2, -3, ]; >> u+v Προσέξτε ότι στο u χωρίσαμε τα στοιχεία με κενά ενώ στο v τα χωρίσαμε με κόμματα. Οι δύο τρόποι είναι ισοδύναμοι. Εφαρμογή 8 Θα υπολογίσουμε την παράσταση 3Α + 2B όπου Α και Β οι πίνακες 2

14 >> A=[ ] A = >> B=[ -2; 3 ] B = -2 3 >> 3*A+2*B Προσέξτε ότι στον A αλλάζαμε γραμμή σε κάθε νέα γραμμή του πίνακα ενώ στον B χωρίσαμε τις γραμμές με ερωτηματικό. Οι δύο τρόποι είναι ισοδύναμοι. Εφαρμογή 9 Θα βρούμε τα γινόμενα uv και vu όπου >> u=[ - 4]; >> v=[-3;;2]; >> u*v 5 >> v*u Η MATLAB χρησιμοποιεί επίσης αλφαριθμητικές μεταβλητές οι οποίες έχουν σαν τιμές ακολουθίες χαρακτήρων οι οποίες εισάγονται ανάμεσα σε τόνους όπως φαίνεται και στο παράδειγμα που ακολουθεί. 3

15 Εφαρμογή >> stringvar='keimeno se grammi' stringvar = Keimeno se grammi >> stringvar2='lastname firstname' stringvar2 = Lastname firstname Τέλος η MATLAB χρησιμοποιεί λογικές μεταβλητές. Στην τιμή true (αληθής) η MATLAB αντιστοιχεί τη μονάδα ενώ στην τιμή false (ψευδής) αντιστοιχεί το. Έτσι οι παραστάσεις true, logical() και logical(true) μας δίνουν την τιμή, ενώ οι παραστάσεις false, logical() και logical(false) μας δίνουν την τιμή. Εφαρμογή >> x=true x = >> y=false y = >> logical(true) >> logical() >> logical(false) >> logical() 4

16 3η Εργαστηριακή Άσκηση Βαθμωτές συναρτήσεις βιβλιοθήκης Εντολές διαχείρισης του χώρου εργασίας. Βαθμωτές συναρτήσεις βιβλιοθήκης Η MATLAB είναι εφοδιασμένη με αρκετές συναρτήσεις βιβλιοθήκης oι οποίες περιλαμβάνουν τους λογαρίθμους, τις εκθετικές συναρτήσεις, τις τριγωνομετρικές, τις υπερβολικές συναρτήσεις, συναρτήσεις στατιστικής ανάλυσης και άλλες. Στον πίνακα φαίνονται μόνο μερικές από αυτές. Αρκετά από τα ονόματα των συναρτήσεων βιβλιοθήκης στην MATLAB είναι τα ίδια με αυτά που χρησιμοποιούνται στη γλώσσα C αλλά και τη FORTRAN, όπως sin, exp, sqrt, log κα. Με την εντολή help elfun η MATLAB μας δίνει τον κατάλογο των στοιχειωδών μαθηματικών συναρτήσεων (elementary math functions). Με την εντολή 5

17 help specfun παίρνουμε κατάλογο των ειδικών μαθηματικών συναρτήσεων (specialized math functions) της MATLAB. >> help rem REM Remainder after division. REM(x,y) is x - n.*y where n = fix(x./y) if y ~=. If y is not an integer and the quotient x./y is within roundoff error of an integer, then n is that integer. By convention, REM(x,) is NaN. The input x and y must be real arrays of the same size, or real scalars. REM(x,y) has the same sign as x while MOD(x,y) has the same sign as y. REM(x,y) and MOD(x,y) are equal if x and y have the same sign, but differ by y if x and y have different signs. See also mod. Σε γενικές γραμμές, η συνάρτηση rem μας δίνει το υπόλοιπο της διαίρεσης y/x. >> rem(,3) >> rem(,4) 3 >> rem(,-3) >> rem(-,4) -3 Όπως φαίνεται και στη βοήθεια πιο πάνω, οι εντολές rem και mod δίνουν τα ίδια αποτελέσματα όταν οι x και y είναι ομόσημοι. Τα αποτελέσματα διαφέρουν στην αντίθετη περίπτωση. >> mod(,3) >> mod(,4) 3 >> mod(,-3) -2 >> mod(-,4) 6

18 Εφαρμογή Η MATLAB έχει προεπιλέξει το όνομα pi για τον αριθμό π. Στο παράδειγμα αυτό θα χρησιμοποιήσουμε πρώτα την εντολή format long για να βλέπουμε 5 και όχι 4 σημαντικά ψηφία μετά την υποδιαστολή. Θα βρούμε τώρα τα sin(π/3), cos(π/6) και tan(π/4): >> format long >> pi >> sin(pi/3) >> cos(pi/6) >> tan(pi/4). Εφαρμογή 2 Οι εντολές round, floor, ceil και fix στρογγυλεύουν ένα αριθμό όπως φαίνεται στον πίνακα που δώσαμε πιο πάνω. Ας δούμε τα αποτελέσματα που παίρνουμε για τους αριθμούς x =.5 και y =.5: >> x=.5 x =.5 >> round(x) >> floor(x) >> ceil(x) >> fix(x) >> y=-.5 y = -.5 7

19 >> round(y) - >> floor(y) - >> ceil(y) - >> fix(y) - Εφαρμογή 3 >> cos(.5)^2+sin(.5)^2 >> exp() >> log(ans) >> cos(pi/2) 6.232e-7 Σημείωση: σχολιάστε το τελευταίο αποτέλεσμα. 2. Εντολές διαχείρισης του χώρου εργασίας Στην άσκηση αυτή θα δούμε χρήσιμες εντολές για τη διαχείριση του παραθύρου εργασίας και των ενεργών μεταβλητών που έχουμε δημιουργήσει. Αυτές φαίνονται στον πίνακα που ακολουθεί. 8

20 Αξίζει τον κόπο να θυμόμαστε τις εξής βασικές οδηγίες για το παράθυρο εντολών: Στην MATLAB υπάρχει διάκριση μεταξύ μικρών και κεφαλαίων γραμμάτων (οι μεταβλητές Α και a είναι διαφορετικές μεταξύ τους). Όταν γράψουμε το όνομα μιας μεταβλητής, η MATLAB τυπώνει στην οθόνη την τιμή της. Αν γράψουμε το σύμβολο ; στο τέλος μιας εντολής, το αποτέλεσμά της δεν τυπώνεται στην οθόνη. Μπορούμε να γράψουμε μια ακολουθία εντολών της MATLAB σε μια γραμμή χωρίζοντάς τις με κόμματα ή ερωτηματικά. Πατώντας τα πλήκτρα με τα πάνω και κάτω βέλη ([ ] και [ ]) μπορούμε να διατρέξουμε όλες τις προηγούμενες εντολές. Επίσης μια προηγούμενη εντολή μπορεί να επαναληφθεί αν γράψουμε τα πρώτα γράμματα και μετά πατήσουμε το πλήκτρο με το πάνω βέλος [ ]. 3. Οι εντολές quit και exit Με τις εντολές quit και exit τερματίζεται η τρέχουσα εργασία. Πολλές φορές είναι καλό να αποθηκεύσουμε την εργασία που κάναμε ή/και τις τιμές των μεταβλητών που δημιουργήσαμε στην εργασία. Το πώς γίνεται η αποθήκευση θα το συζητήσουμε στη συνέχεια. 4. Οι εντολές clear και clc Η εντολή clear var διαγράφει τη μεταβλητή var του χώρου εργασίας. Η εντολή clear διαγράφει όλες τις ενεργές μεταβλητές. Το ίδιο κάνει και η εντολή clear variables. Αν θέλουμε να διαγράψουμε μόνο τις μεταβλητές var, var2 και var3 μπορούμε να γράψουμε clear var var2 var3 (οι var, var2 και var3 χωρίζονται με κενά και όχι με κόμματα). Αν θέλουμε να διαγράψουμε όλες τις μεταβλητές που αρχίζουν από Z γράφουμε clear Z* Αν τέλος το όνομα της προς διαγραφή μεταβλητής είναι αποθηκευμένο σε αλφαριθμητικό, για παράδειγμα τη name, μπορούμε να χρησιμοποιήσουμε τη συναρτησιακή μορφή της εντολής clear(name). 9

21 Η εντολή clc καθαρίζει απλώς το παράθυρο εργασίας (δεν διαγράφονται οι μεταβλητές). 5. Η εντολή help Έχουμε ήδη χρησιμοποιήσει την εντολή αυτή (βοήθεια). Η MATLAB είναι εφοδιασμένη με ένα εκτεταμένο επιγραμμικό (on line) σύστημα βοήθειας. Η εντολή help topic μας δίνει βοήθεια για το θέμα topic. Εφαρμογή 4 Θα δούμε τη βοήθεια που παίρνουμε για την εντολή clc που είδαμε πιο πάνω. >> help clc CLC Clear command window. CLC clears the command window and homes the cursor. Κάποιος θα μπορούσε να αρχίσει με την εντολή help help η οποία εξηγεί πως λειτουργεί το σύστημα βοήθειας και αναφέρει επίσης κάποιες σχετικές εντολές. Γράφοντας απλά help παίρνουμε ένα κατάλογο θεμάτων για τα οποία υπάρχει διαθέσιμη βοήθεια. Σ αυτόν τον κατάλογο μπορούμε να βρούμε για παράδειγμα το θέμα «elfun - elementary math functions» (στοιχειώδεις μαθηματικές συναρτήσεις). Αν γράψουμε τώρα help elfun παίρνουμε τον κατάλογο των διαθέσιμων μαθηματικών συναρτήσεων. Για παράδειγμα, βλέπουμε ότι εκτός από το φυσικό λογάριθμο log και το λογάριθμο με βάση το, log, υπάρχει και ο λογάριθμος με βάση το 2, log2. : log - Natural logarithm. log - Common (base ) logarithm. log2 - Base 2 logarithm and dissect floating point number. 6. Οι εντολές who και whos Η εντολή who μας δίνει απλώς κατάλογο των ενεργών μεταβλητών (χωρίς άλλες πληροφορίες). Η εντολή whos μαζί με τον κατάλογο μας δίνει πληροφορίες για όλες τις ενεργές μεταβλητές. Υπάρχει επίσης η δυνατότητα να χρησιμοποιήσουμε τις δύο εντολές για μεμονωμένες μεταβλητές, όπως φαίνεται πιο κάτω: who var var2 var3: κατάλογος των var, var2 και var3 who ab*: κατάλογος των μεταβλητών με όνομα που αρχίζει από ab who *z: κατάλογος των μεταβλητών με όνομα που λήγει σε z. who file filename: κατάλογος των μεταβλητών που είναι αποθηκευμένες στο αρχείο filename.mat 2

22 Εφαρμογή 5 Θα εισαγάγουμε τις ακόλουθες μεταβλητές: xreal = π και zcomp = 2 3i, το πραγματικό διάνυσμα wvec = (3 2 ), το μιγαδικό πίνακα το αλφαριθμητικό varstr = xreal (είναι το όνομα της πρώτης μεταβλητής μας) και τη λογική μεταβλητή varlog = true. >> >> >> >> >> >> xreal=pi; zcomp=2-3i; wvec=[3 2 -]; A=[2+i i; 3 -i]; varstr='xreal'; varlog=true; Ας δούμε τώρα τι παίρνουμε με τις εντολές who και whos: >> who Your variables are: A varlog varstr wvec xreal zcomp >> whos Name A varlog varstr wvec xreal zcomp Size 2x2 x x5 x4 x x Bytes Class double array(complex) logical array char array double array double array double array (complex) Grand total is 6 elements using 3 bytes Παρατηρούμε ότι όλες οι μεταβλητές αντιμετωπίζονται σαν πίνακες (arrays). Στην πρώτη στήλη έχουμε το όνομα κάθε μεταβλητής, στη δεύτερη τη διάσταση κάθε πίνακα (size), στην τρίτη το πλήθος των bytes και στην τέταρτη την κλάση (class) της μεταβλητής. Η προεπιλογή για τους αριθμούς είναι η διπλή ακρίβεια (double precision). Η MATLAB μας προσδιορίζει αν ένας πίνακας είναι μιγαδικός (complex) και κατά πόσο αυτός είναι λογικός (logical) ή αλφαριθμητικός (πίνακας χαρακτήρων, char array). Η διάσταση του κάθε πίνακα 2

23 καθορίζει και τον τύπο της μεταβλητής. Έτσι ο αριθμός xreal είναι πίνακας και το διάνυσμα wvec είναι 4 πίνακας. Εφαρμογή 6 (συνέχεια) Θα διαγράψουμε πρώτα τις μεταβλητές zcomp και wvec και θα δούμε τι παίρνουμε με την εντολή whos. >> clear zcomp wvec >> whos Name A varlog varstr xreal Size 2x2 x x5 x Bytes 64 8 Class double array (complex) logical array char array double array Grand total is elements using 83 bytes Ας διαγράψουμε τώρα την μεταβλητή xreal όχι με την εντολή clear xreal αλλά με την ισοδύναμή της clear(varstr) αφού varst r = xreal : >> clear(varstr) >> whos Name A varlog varstr Size 2x2 x x5 Bytes 64 Class double array (complex) logical array char array Grand total is elements using 75 bytes Ας διαγράψουμε τέλος τις varstr και varlog με την εντολή clear var*: >> clear var* >> whos Name A Size 2x2 Bytes 64 Class double array (complex) Grand total is 4 elements using 64 bytes Εφαρμογή 7 Ας θεωρήσουμε την περίπτωση που έχουμε 9 μεταβλητές όπως φαίνεται πιο κάτω: >> who 22

24 Your variables are: a a2 a3 a2 a22 a23 a3 a32 a33 Για να δούμε τις μεταβλητές a, a22 και a33 γράφουμε: >> who a a22 a33 Your variables are: a a22 a33 Για να δούμε τις μεταβλητές με όνομα που αρχίζει από a2 γράφουμε: >> who a2* Your variables are: a2 a22 a23 Για να δούμε τις μεταβλητές με όνομα που τελειώνει σε 3 γράφουμε: >> who *3 Your variables are: a3 a23 a33 Για να δούμε τις μεταβλητές με όνομα που περιέχει το 2 μετά το πρώτο γράμμα γράφουμε: >> whos *2* Name a2 a2 a22 a23 a32 Size x x x x x Bytes Class double double double double double array array array array array Grand total is 5 elements using 4 bytes 7. Οι εντολές save, load και diary Η εντολή save filename αποθηκεύει όλες τις ενεργές μεταβλητές στο δυαδικό αρχείο filename.mat. Tο αρχείο αυτό μπορούμε να το φορτώσουμε με την εντολή load filename 23

25 (χωρίς το επίθεμα.mat) και να συνεχίσουμε την εργασία μας από το σημείο που διακόψαμε. Άλλες επιλογές που έχουμε με τις δύο εντολές φαίνονται πιο κάτω: save: αποθήκευση όλων των μεταβλητών στο αρχείο matlab.mat load: φόρτωση όλων των μεταβλητών από το αρχείο matlab.mat save filename x y z: αποθήκευση στο αρχείο filename.mat μόνο των μεταβλητών x, y και z load filename x y z: φόρτωση από το αρχείο filename.mat μόνο των μεταβλητών x, y και z save filename A*: αποθήκευση στο αρχείο filename.mat μόνο των μεταβλητών με όνομα που αρχίζει από A* load filename A*: φόρτωση από το αρχείο filename.mat μόνο των μεταβλητών με όνομα που αρχίζει από A* save filename -ascii: αποθήκευση όλων των μεταβλητών στο αρχείο filename σε μορφή ASCII με 8 σημαντικά ψηφία save filename ascii -double: αποθήκευση όλων των μεταβλητών στο αρχείο filename σε μορφή ASCII με 6 σημαντικά ψηφία save filename x y z ascii : αποθήκευση μόνο των μεταβλητών x, y και z στο αρχείο filename σε μορφή ASCII με 8 σημαντικά ψηφία Αν θέλουμε να δημιουργήσουμε ένα ASCII αρχείο που να περιέχει όλες τις πληροφορίες της εργασίας μας δίνουμε την εντολή diary filename.txt στην αρχή και το τέλος της εργασίας μας. Το αρχείο filename.txt περιέχει όλες τις εντολές μας και τα αποτελέσματα που εμφανίζονται στο παράθυρο εργασίας (εκτός από τα γραφικά) και μπορούμε να το τυπώσουμε. Αν παραλείψουμε το όνομα του αρχείου τότε η MATLAB δημιουργεί αρχείο με το όνομα diary. Άλλες επιλογές φαίνονται πιο κάτω: diary off: προσωρινή διακοπή του ημερολογίου diary on: επανέναρξη του ημερολογίου diary(stringfname): έναρξη του ημερολογίου και αποθήκευση του σε αρχείου το όνομα του οποίου έχει εκχωρηθεί στο αλφαριθμητικό stringfname Το ημερολόγιο filename.txt θα το βρείτε στο φάκελο εργασίας (Working directory). 24

26 4η Εργαστηριακή Άσκηση Άλλες χρήσιμες εντολές της MATLAB. Άλλες χρήσιμες εντολές Θα δούμε εντολές που έχουν να κάνουν με τα κείμενα βοήθειας που διαθέτει η MATLAB, τη διαχείριση του φακέλου εργασίας, την ημερομηνία και την ώρα. 2. Οι εντολές demo και doc Με την εντολή demo μπορούμε να φυλλομετρήσουμε τα αρχεία επίδειξης της MATLAB. Η εντολή doc μας οδηγεί στα html κείμενα του φυλλομετρητή βοήθειας (help browser). Σημειώνεται ότι εναλλακτικά μπορούμε να κάνουμε κλικ στην επιλογή help του παραθύρου της MATLAB και να προχωρήσουμε ανάλογα. Δεν θα αναφέρουμε περισσότερα για τις εντολές αυτές. Ο χρήστης της MATLAB θα πρέπει να τις δοκιμάσει στην πράξη για να διαπιστώσει ότι το πακέτο παρέχει ένα τεράστιο όγκο βοηθητικού υλικού. 25

27 3. Οι εντολές dir, ls και what Η εντολή dir μας δίνει κατάλογο των αρχείων που περιέχονται στον φάκελο εργασίας. Το ίδιο κάνει και η εντολή ls που αντιστοιχεί στο σύστημα unix. Η εντολή what μας δίνει κατάλογο μόνο των αρχείων της MATLAB. Ισχύουν τα γνωστά για την επιλογή μόνο κάποιων αρχείων. Για παράδειγμα, με την εντολή dir A* παίρνουμε κατάλογο των αρχείων με όνομα που αρχίζει από A. Εφαρμογή Στο παράδειγμα που ακολουθεί βλέπουμε ότι οι dir και ls μας δίνουν τον κατάλογο όλων των αρχείων που περιέχονται στο φάκελο εργασίας. H εντολή what μας δίνει ξεχωριστά τα αρχεία της MATLAB με επίθεμα m (m-files) και mat. >> dir. class.txt mandelbrot.m.. diar mandelbrot.txt cdiary.mat inputexample.m whoami.asv. class.txt mandelbrot.m.. diar mandelbrot.txt cdiary.mat inputexample.m whoami.asv whoami.m >> ls whoami.m >> what M-files in the current Documents\gg\MATLAB\work inputexample mandelbrot MAT-files in the current Documents\gg\MATLAB\work directory C:\Documents and Settings\T42\My and Settings\T42\My whoami directory 26 C:\Documents

28 cdiary 4. Εντολές ημερομηνίας και ώρας Με τις εντολές tic (έναρξη) και toc (λήξη) μπορούμε να χρονομετρήσουμε το χρόνο της εργασίας που κάνουμε στην MATLAB. Έτσι με τις εντολές tic, Αεντολή, toc μπορούμε να χρονομετρήσουμε το χρόνο που απαιτεί η Αεντολή. Εφαρμογή 2 Θα βρούμε το χρόνο που απαιτεί η αντιστροφή ενός δοσμένου πίνακα Α. Για το σκοπό αυτό θα χρησιμοποιήσουμε τη συνάρτηση inv(a). >> tic, inv(a); toc elapsed_time =. >> tic Η εντολή date μας δίνει την ημερομηνία σαν αλφαριθμητικό στην μορφή dd-mmm-yyyy. Η ημερομηνία όταν γράφονταν αυτές οι σημειώσεις ήταν η 6η Δεκεμβρίου 23: >> date 6-Dec-23 Τέλος η εντολή clock μας δίνει τόσο την ημερομηνία όσο και την ώρα σε ένα διάνυσμα της μορφής CLOCK = [year month day hour minute seconds] Εφαρμογή 3 Όταν γράφονταν αυτές οι γραμμές πήραμε >> clock 27

29 .e+3 * Επειδή τα στοιχεία του διανύσματος πολλαπλασιάζονται με.e+3 το διάνυσμα ans δεν διαβάζεται εύκολα. Με τη συνάρτηση fix μπορούμε να στρογγυλεύσουμε τα στοιχεία του διανύσματος ans σε ακεραίους: >> fix(ans) Είσοδος και έξοδος δεδομένων Στην παράγραφο αυτή θα μελετήσουμε τρείς εντολές που έχουν να κάνουν με την απεικόνιση των μεταβλητών και των τιμών τους στην οθόνη, δηλαδή στο παράθυρο εντολών (Command window) της MATLAB. Αυτές φαίνονται στον πιο κάτω πίνακα: 6. Η εντολή disp Γνωρίζουμε ήδη ότι αν θέλουμε να δούμε την τιμή μιας μεταβλητής var στην οθόνη αρκεί να γράψουμε το όνομα της. Εμφανίζεται τότε στην οθόνη σε μια γραμμή var = και μετά ακολουθεί η τιμή της var που μπορεί να είναι αριθμός ή πίνακας ή αλφαριθμητικό. Η εντολή disp(var) απεικονίζει την τιμή της μεταβλητής var (χωρίς το όνομα) στην οθόνη ενώ η εντολή disp var απεικονίζει το όνομα της μεταβλητής (χωρίς την τιμή). Επίσης η εντολή disp('.') τυπώνει στην οθόνη το αλφαριθμητικό που περιέχεται μεταξύ των τόνων. 28

30 Εφαρμογή 4 Έστω ότι έχουμε τον πίνακα >> A=[ 2; 3 4]; >> A A = >> disp(a) >> disp A A Εφαρμογή 5 Έστω ότι έχουμε το αλφαριθμητικό x = 'my name': >> x='my name'; >> x x = my name >> disp(x) my name >> disp x x 29

31 7. Η εντολή format Έχουμε ήδη συναντήσει την εντολή format την οποία χρησιμοποιήσαμε στα προηγούμενα παραδείγματα για εξοικονόμηση χώρου. Η προεπιλογή της MATLAB στην απεικόνιση των αποτελεσμάτων στο παράθυρο εντολών είναι να αφήνει κενές ενδιάμεσες γραμμές, έχουμε δηλαδή αραιή απεικόνιση. Με την εντολή format compact παίρνουμε πυκνή απεικόνιση αφού οι ενδιάμεσες κενές γραμμές παραλείπονται. Με την εντολή format loose επανερχόμαστε στην αραιή απεικόνιση. Εφαρμογή 6 Θα υπολογίσουμε το άθροισμα των διανυσμάτων u = (, 2, ) και v = (, 4, 5) πρώτα σε αραιή (προεπιλογή ή format loose) και μετά σε πυκνή απεικόνιση (format compact): >> u=[-, 2, ]; >> v=[, -4, 5]; >> u+v >> format compact >> u+v >> format loose >> u+v 3

32 Η εντολή format καθορίζει επίσης τον τρόπο με τον οποίο απεικονίζονται οι πραγματικοί αριθμοί καθώς και το πλήθος των σημαντικών ψηφίων που θα εμφανιστούν στο παράθυρο εντολών. Όλες οι πράξεις στη MATLAB γίνονται με διπλή ακρίβεια (double precision). Για την εκτύπωση ενός αριθμού στην οθόνη η προεπιλογή της MATLAB είναι αυτή της σταθερής υποδιαστολής με 4 σημαντικά ψηφία μετά την υποδιαστολή. Αν ένας μη ακέραιος αριθμός είναι πολύ μεγάλος τότε η MATLAB χρησιμοποιεί τον εκθετικό συμβολισμό, δηλ. ο αριθμός εμφανίζεται σε μορφή κινητής υποδιαστολής, πάλι με 4 σημαντικά ψηφία μετά την υποδιαστολή. Αυτό φαίνεται καθαρά στο παράδειγμα που ακολουθεί. Εφαρμογή 7 >> x= x =.235 >> y= y =.2346e+7 Η προεπιλογή της MATLAB είναι να εμφανίζει 4 σημαντικά ψηφία μετά την υποδιαστολή. Με την εντολή format long η MATLAB μας δίνει 5 σημαντικά ψηφία. Με την εντολή format short ή απλώς format μπορούμε να επανέλθουμε στην προεπιλογή των 4 σημαντικών ψηφίων μετά την υποδιαστολή. Εφαρμογή 8 >> x= x =.2346e+6 >> y= y =.2346e-7 3

33 >> z=x+y z =.2346e+6 >> format long >> z z = e+6 >> x= x = >> epsilon=.e-2 epsilon =.e-2 >> x+epsilon Σχολιάστε το τελευταίο αποτέλεσμα. Με την εντολή help format μπορούμε να δούμε όλες τις επιλογές που μας παρέχει η MATLAB. Για ευκολία, αυτές φαίνονται και στον πίνακα που ακολουθεί. 32

34 Οι επιλογές της εντολής format. Εφαρμογή 9 Στον πιο κάτω πίνακα φαίνονται οι επιλογές της εντολής format και πως τυπώνεται σε κάθε περίπτωση ο αριθμός ππ. Ο αριθμός pi^pi σε διάφορα format. 33

35 5η Εργαστηριακή Άσκηση Η εντολή input. Ειδικές σταθερές και μεταβλητές.. Η εντολή input Η εντολή input έχει τη γενική μορφή R=input('prompt') όπου prompt ένα αλφαριθμητικό. Με την εντολή αυτή εμφανίζεται στην οθόνη η προτροπή prompt και το σύστημα αναμένει από τον χρήστη να εισαγάγει την τιμή της μεταβλητής R που μπορεί να είναι αριθμός ή αλφαριθμητικό ή διάνυσμα ή πίνακας ή ακόμα το αποτέλεσμα μιας ολόκληρης παράστασης σε γλώσσα MATLAB. Αν η R είναι διάνυσμα ή πίνακας τότε τα στοιχεία του εισάγονται κατά τα γνωστά μέσα σε αγκύλες. Αν η R είναι αλφαριθμητικό τότε η τιμή της πρέπει να δοθεί μέσα σε τόνους '.. '. Ένας τρόπος να αποφύγουμε τους τόνους είναι να δηλώσουμε μέσω της εντολής ότι η μεταβλητή είναι αλφαριθμητικό. Αυτό γίνεται ως εξής: R=input('prompt', 's') Εφαρμογή >> R=input('Enter variable: ') Enter variable: R = >> R=input('Enter variable: ') Enter variable: 3/7 R =.4286 >> R=input('Enter complex variable: ') Enter complex variable: -3 +2i 34

36 R = i >> u=input('enter an x4 vector: ') Enter an x4 vector: [ -2 5] u = -2 5 >> B=input('Enter a 2x3 array: ') Enter a 2x3 array: [ ] B = >> S=input('Enter a string: ') Enter a string: 'My name' S = My name Εφαρμογή 2 >> Lastname=input('Enter lastname: ','s') Enter lastname: Papadopoulos Lastname = Papadopoulos >> Firstname=input('Enter firstname: ','s') Enter firstname: Andreas Firstname = Andreas >> disp(firstname) Andreas 35

37 Έχουμε ήδη δει ότι η προτροπή prompt μπορεί να αποτελείται από διάφορες λέξεις. Η input μας δίνει την επιλογή να αλλάξουμε και γραμμή χρησιμοποιώντας το σύμβολο \n. Αν θέλουμε να γράψουμε μια πρόταση σε 3 γραμμές τότε η εντολή μας θα πρέπει να είναι της μορφής: R=input('line \n line 2 \n line3') Εφαρμογή 3 >> X=input('Enter \n Full name: ', 's') Enter Full name: Matlabiou Matlabios X = Matlabiou Matlabios 2. Ειδικές σταθερές και μεταβλητές Στη παράγραφο αυτή θα δούμε σε συντομία σταθερές ή μεταβλητές που έχουν προεπιλεχθεί από τη ΜΑΤLAB. Αυτές φαίνονται στον πιο κάτω πίνακα. Τις περισσότερες τις έχουμε ήδη συναντήσει στα προηγούμενα παραδείγματα. Η μεταβλητή ans (από τη λέξη ANSwer) περιέχει την πιο πρόσφατη απάντηση της MATLAB (μπορεί δηλ. να είναι αριθμός ή πίνακας ή αλφαριθμητικό κοκ), όταν αυτή δεν έχει εκχωρηθεί σε κάποια άλλη μεταβλητή. Εφαρμογή 4 >> sin(.5)+cos(2.5) 36

38 .964 >> [ 2 3 ]+ [ -2-3] - 2 Η σταθερά eps είναι η σχετική ακρίβεια κινητής υποδιαστολής της MATLAB, δηλ. η απόσταση του από τον αμέσως επόμενο αριθμό που διακρίνει η MATLAB. Η eps είναι η προεπιλεγμένη ανοχή (tolerance) για διάφορα προγράμματα της ΜΑΤLAB. Μπορούμε να πούμε ότι ένας αριθμός μικρότερος κατ απόλυτη τιμή από την eps είναι για τη MATLAB ίσος με μηδέν. Εφαρμογή 5 >> format long g >> eps e-6 >> +eps Τα σύμβολα i και j συμβολίζουν και τα δύο τη φανταστική μονάδα και χρησιμοποιούνται για την εισαγωγή μιγαδικών αριθμών. Για παράδειγμα, ο αριθμός 2-5i μπορεί να γραφεί με τους εξής τρόπους: 2-5i ή 2-5*i ή 2-5*sqrt(-) ή 2-5j ή 2-5*j Τα σύμβολα i και j μπορούν να αξιοποιηθούν από τον χρήστη για άλλους σκοπούς (π.χ. σε βρόχους ή για απαρίθμηση). Σ αυτή την περίπτωση η παράσταση 2-5i είναι προτιμότερη από την 2-5*i όπως φαίνεται και στο πιο κάτω παράδειγμα. Εφαρμογή 6 >> i +.i 37

39 >> j +.i >> z=5-2i z = i >> w=4+3*j w = i >> >> w+i i >> i=.3 i =.3 >> w+i i >> +2i. + 2.i >> +2*i 3.26 Το σύμβολο Ιnf (από τη λέξη infinity) έχει δεσμευτεί για να δηλώνει το +. Αυτό μπορεί να προκύψει με διάφορους τρόπους όπως /, exp() κα. To σύμβολo inf είναι ισοδύναμο με το Inf. Το σύμβολο ΝαΝ παριστάνει ένα μη αριθμό (not a number). Αυτός 38

40 μπορεί να προκύψει από πράξεις όπως οι / και inf inf. Tο σύμβολο nan είναι ισοδύναμο με το ΝαΝ. Εφαρμογή 7 >> / Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) Inf >> /- Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) -Inf >> log() Warning: Log of zero. -Inf >> / Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) NaN >> Inf-Inf NaN 39

41 Τέλος το pi συμβολίζει τον αριθμό π = Εφαρμογή 8 >> format long >> pi >> cos(pi) - >> tan(pi/6) >> cos(pi/2) 6.232e-7 Παρατηρούμε ότι η ΜΑTLAB δεν δίνει ακριβώς μηδέν για το cos(π/2). Η τιμή που παίρνουμε είναι πάντως μικρότερη από τη σταθερά eps. 4

42 6η Εργαστηριακή Άσκηση M-FILES Για να εκμεταλλευτούμε πλήρως τις ικανότητες της MATLAB, πρέπει να μάθουμε πώς να δημιουργούμε μεγάλες και συχνά πολύπλοκες ακολουθίες εντολών. Ο καλύτερος τρόπος για να επιτύχουμε αυτό το στόχο είναι με τη χρήση αρχείων που καλούνται m-files αφού έχουν ως επίθεμα (extension) το.m, π.χ. script.m, gausse.m και function2.m Τα m-files της MATLAB είναι τα αντίστοιχα των συναρτήσεων (functions) και των υπορουτινών (subroutines) που συναντούμε σε άλλες γλώσσες προγραμματισμού όπως η C και η FORTRAN. Τα m-files που δημιουργεί ο χρήστης συμπληρώνουν τις συναρτήσεις βιβλιοθήκης της MATLAB που είναι επίσης m-files. Τα m-files διακρίνονται σε Αρχεία script ή αρχεία εντολών (script m-files or command files) τα οποία δεν έχουν ορίσματα εισόδου και εξόδου αλλά εκτελούν μια ακολουθία εντολών σε μεταβλητές του χώρου εργασίας, και σε Αρχεία συναρτήσεων (function m-files) τα οποία περιλαμβάνουν μια γραμμή ορισμού συνάρτησης, δέχονται ορίσματα εισόδου και επιστρέφουν μεταβλητές εξόδου, και των οποίων οι εσωτερικές μεταβλητές είναι τοπικές (εκτός αν δηλωθούν ως ολικές με την εντολή global). Τόσο τα αρχεία script όσο και τα αρχεία συναρτήσεων Δημιουργούνται ξεχωριστά με κάποιο συντάκτη (editor) όπως ο notepad ή ο wordpad ή ακόμα με το συντάκτη της MATLAB: Για νέο αρχείο: Για υπάρχον αρχείο: File New M-file File Open Μπορούμε, επίσης, να ανοίξουμε τον editor της MATLAB και με την εντολή >> edit Πρέπει να βρίσκονται στον φάκελο εργασίας (working directory) ή στον φάκελο (directory) της MATLAB ή στον δρόμο αναζήτησης (research path) της MATLAB. Μπορούν να καλούν άλλα m-files ή ακόμα τον ίδιο τον εαυτό τους (αναδρομικά m-files). 4

43 . Αρχεία script Τα αρχεία τύπου script περιέχουν μια ακολουθία εντολών της MATLAB η οποία εκτελείται αν γράψουμε το όνομα του αρχείου (χωρίς το επίθεμα.m), π.χ. >> script Τα script files είναι χρήσιμα για την εισαγωγή δεδομένων (π.χ. μεγάλων πινάκων) και για την επανάληψη μεγάλων ακολουθιών εντολών για διαφορετικά δεδομένα Εφαρμογή Έστω ότι καταχωρήσαμε τις εξής εντολές σε ένα αρχείο (χρησιμοποιώντας τον editor της MATLAB) το οποίο ονομάσαμε ex_.m A = [2 ; 2 ; 2]; b = [;;]; disp('o pivakas A divetai apo') A disp('h orizousa tou pivaka A eivai') deta=det(a) disp('to diavusma b divetai apo') b disp('h lush tou susthmatos Ax=b eivai') x = A\b Το αρχείο φαίνεται πιο κάτω: 42

44 Τότε, αν γράψουμε το όνομα του αρχείου (χωρίς το επίθεμα.m) θα εκτελεστούν όλες οι εντολές και θα πάρουμε τα εξής: >> ex_ O pivakas A divetai apo A = H orizousa tou pivaka A eivai deta = 4 To diavusma b divetai apo b = H lush tou susthmatos Ax=b eivai x =.5..5 Εφαρμογή 2 Μετατροπή θερμοκρασίας από Κελσίου σε Φαρέναϊτ. Το εξής script θα το καταχωρήσουμε στο αρχείο C2F.m. Ζητά από τον χρήστη να δώσει την θερμοκρασία σε βαθμούς Κελσίου και την μετατρέπει σε βαθμούς Φάρεναϊτ. %Metatroph ermokrasias apo Kelsiou se Farenheit format compact C = input('dwste th ermokrasia se bamous Kelsiou: '); disp('h ermokrasia se bamous Farenheit eivai ') F = 9*C/ %Telos tou C2F.m Αν το τρέξουμε για διάφορες τιμές θα έχουμε: >> C2F Dwste th ermokrasia se bamous Kelsiou: 4 H ermokrasia se bamous Farenheit eivai F = 4 >> C2F 43

45 Dwste th ermokrasia se bamous Kelsiou: H ermokrasia se bamous Farenheit eivai F = 32 >> C2F Dwste th ermokrasia se bamous Kelsiou: 8 H ermokrasia se bamous Farenheit eivai F = Αρχεία συναρτήσεων Τα αρχεία συναρτήσεων (function m-files) περιέχουν μια ολοκληρωμένη ακολουθία εντολών της MATLAB με μεταβλητές εισόδου, input, input2,. με την οποία υπολογίζονται νέες μεταβλητές εξόδου output, output2,.. Η δομή τους είναι η εξής:. Επικεφαλίδα (header) Μια γραμμή της μορφής: function [output, output2,.] = filename (input, input2,.) To filename είναι το όνομα του function το οποίο αποθηκεύεται (υποχρεωτικά) στο mfile με όνομα filename.m. Προσέξτε ότι οι μεταβλητές εισόδου είναι σε παρενθέσεις ενώ οι μεταβλητές εξόδου βρίσκονται σε αγκύλες. Οι τελευταίες δεν είναι απαραίτητες αν έχουμε μόνο μια μεταβλητή εξόδου. Για παράδειγμα αντί function [out] = parad(x, y) μπορούμε να γράψουμε function out = parad(x, y) 2. Σχόλια (comments) Αυτά ξεκινούν αναγκαστικά με το σύμβολο % και είναι προαιρετικά. Τα σχόλια μετά την επικεφαλίδα αποτελούν και το κείμενο βοήθειας για το function. Με διαφορετικά λόγια, αυτά εμφανίζονται αν γράψουμε: 44

46 >> help filename 3. Εντολές (statements) Ακολουθία εντολών της MATLAB με την οποία υπολογίζονται οι μεταβλητές εξόδου Προκαταρκτικές εντολές output =. output2 =. κλπ 4. Υποσυναρτήσεις (subfunctions) Αυτές είναι εσωτερικές συναρτήσεις functions που περιέχονται στο αρχείο filename.m. Αναγνωρίζονται μόνο από τα functions που περιέχονται στο αρχείο αυτό. Ορίζονται με τον ίδιο ακριβώς τρόπο, π.χ. function [out, out2,] = subfname (x, y, z) Οι συναρτήσεις βιβλιοθήκης της MATLAB, όπως οι sin, max, exp και size, είναι function m-files. Το όνομα μιας νέας function δεν πρέπει να συμπίπτει με όνομα συνάρτησης βιβλιοθήκης. Γενικά για την ονομασία μιας m-συνάρτησης ακολουθούμε τους κανόνες ονοματολογίας που ισχύουν και για τις μεταβλητές: Το όνομα αρχίζει με γράμμα (του αγγλικού αλφαβήτου). Το όνομα περιέχει μόνο γράμματα, αριθμούς και υποπαύλες (underscore). Δεν χρησιμοποιούνται ονόματα που έχουν δεσμευτεί από τη MATLAB (π.χ. συναρτήσεις βιβλιοθήκης και εργαλειοθηκών). Προτιμούνται μικρά ονόματα για πρακτικούς λόγους αν και δεν υπάρχει περιορισμός στο μήκος των ονομάτων. Έστω για παράδειγμα ένα function με επικεφαλίδα function [sum, prod] = onoma( a, b, c) όπου οι μεταβλητές εισόδου a, b και c είναι αριθμοί. Μπορούμε να καλέσουμε την onoma με διαφορετικούς τρόπους όπως: >> onoma(3,2,) ή >> [x,y]=onoma(3,2,) 45

47 Αν για κάποιο λόγο γράψουμε >> z=onoma(3,2,) τότε στο z θα εκχωρηθεί η τιμή της πρώτης μεταβλητής εξόδου, δηλ. της sum. Ακολουθεί η βοήθεια που παίρνουμε για το function. Το δεύτερο παράδειγμα παρουσιάζει ενδιαφέρον αφού περιλαμβάνει μια υποσυνάρτηση (subfunction). >> help function FUNCTION Add new function. New functions may be added to MATLAB's vocabulary if they are expressed in terms of other existing functions. The commands and functions that comprise the new function must be put in a file whose name defines the name of the new function, with a filename extension of '.m'. At the top of the file must be a line that contains the syntax definition for the new function. For example, the existence of a file on disk called STAT.M with: function [mean,stdev] = stat(x) %STAT Interesting statistics. n = length(x); mean = sum(x) / n; stdev = sqrt(sum((x - mean).^2)/n); defines a new function called STAT that calculates the mean and standard deviation of a vector. The variables within the body of the function are all local variables. See SCRIPT for procedures that work globally on the workspace. A subfunction that is visible to the other functions in the same file is created by defining a new function with the FUNCTION keyword after the body of the preceding function or subfunction. For example, avg is a subfunction within the file STAT.M: function [mean,stdev] = stat(x) %STAT Interesting statistics. n = length(x); mean = avg(x,n); stdev = sqrt(sum((x-avg(x,n)).^2)/n); % function mean = avg(x,n) %MEAN subfunction mean = sum(x)/n; Subfunctions are not visible outside the file where they are defined. 46

48 Normally reached. return. See also NARGOUT, functions return when the end of the function is A RETURN statement can be used to force an early SCRIPT, RETURN, VARARGIN, VARARGOUT, NARGIN, INPUTNAME, MFILENAME. Ας δούμε ορισμένα παραδείγματα. Εφαρμογή 3 sumprod.m function [sum, prod] = sumprod (x, x2, x3) % function [sum, prod] = sumprod (x, x2, x3) % % Paradeigma function m-file % Ypologizei to aroisma kai to ginomeno triwn arimwn % % Onoma function : sumprod % Onoma m-file : sumprod.m % Metablhtes eisodou: x, x2, x3 % Metablhtes exodou : sum (aroisma twn x, x2, x3) % prod (ginomeno twn x, x2, x3) % sum = x+x2+x3; prod = x*x2*x3; % Telos tou sumprod.m Παρατηρούμε ότι ο editor της MATLAB χρησιμοποιεί διαφορετικά χρώματα για τις διάφορες δομές του αρχείου μπλε για τη λέξη function, πράσινο για τα σχόλια και μαύρο για τις εντολές. Ας δούμε τώρα τι γίνεται όταν ζητήσουμε βοήθεια για την εντολή (ή αρχείο) που δημιουργήσαμε: >> help sumprod Paradeigma function m-file Ypologizei to aroisma kai to ginomeno triwn arimwn Onoma function : sumprod Onoma m-file : sumprod.m Metablhtes eisodou: x, x2, x3 Metablhtes exodou : sum (aroisma twn x, x2, x3) prod (ginomeno twn x, x2, x3) Τώρα, ας καλέσουμε το αρχείο με δεδομένα εισόδου, π.χ., 3 και 4: >> sumprod(, -3, 4) 2 47

49 Μια και δεν καλέσαμε το αρχείο ζητώντας και τις δύο μεταβλητές εξόδου, πήραμε μόνο την πρώτη, δηλ. x + x2 + x3 = 3+ 4 = 2. Για να πάρουμε και τις δύο μεταβλητές εξόδου, πρέπει να γράψουμε >> [s,p] = sumprod(, -3, 4) s = 2 p = -2 Σημειώνουμε ότι αν και μπορούμε να πάρουμε μόνο τη πρώτη μεταβλητή εξόδου (όπως είδαμε πιο πάνω) δεν μπορούμε να πάρουμε μόνο τη δεύτερη το ίδιο ισχύει ακόμα και αν έχουμε περισσότερες από δύο μεταβλητές εξόδου. Αν καλέσουμε το αρχείο μας με κάποια άλλα δεδομένα εισόδου, π.χ. 2, και 5, τότε θα πάρουμε >> [s,p] = sumprod(-2,, 5) s = -7 p = Εφαρμογή 4 miscop.m function [deta, ranka, Atrans, Ainv, A2] = miscop(a) % function [deta, ranka, Atrans, Ainv, A2] = miscop(a) % % Briskei (a) thn orizousa % (b) ton bamo % (c) ton anastrofo % (d) ton antistrofo kai % (e) to tetragwno enos tetragwnikou pinaka. % % Shmeiwsh: den ginetai elegxos an o pinakac einai tetragwnikos % kai antistreyimos % deta = det(a) ranka = rank(a) Atr A' Ainv = inv(a) A2 = A*A % Telos miscop.m Ας δοκιμάσουμε να τρέξουμε το αρχείο μας με ένα τυχαίο 5 5 πίνακα Α τον οποίο θα κατασκευάσουμε μέσω της εντολής rand, και θα δώσουμε σαν μεταβλητή εισόδου: 48

50 49

51 7η Εργαστηριακή Άσκηση Ορισμός μαθηματικών συναρτήσεων σε αρχεία M-FILES, Ανώνυμες συναρτήσεις, Βασικές εντολές γραφικών παραστάσεων. Μαθηματικές συναρτήσεις Τα m-files είναι ιδιαίτερα χρήσιμα στον ορισμό (μαθηματικών) συναρτήσεων, όπως για παράδειγμα η Γράφουμε ένα m-file που ορίζει αυτή τη συνάρτηση, όπως φαίνεται πιο κάτω, και το αποθηκεύουμε σε ένα αρχείο με το όνομα f.m το οποίο πρέπει να βρίσκεται στον φάκελο εργασίας (working directory) ή στον φάκελο (directory) της MATLAB ή στον δρόμο αναζήτησης (research path) της MATLAB. function [F] = f(x) F = 4*x.^2./(x.^4+2); % Telos tou f.m Για να πάρουμε την τιμή της f για x =, γράφουμε απλά >> f().3333 Πράγματι, >> 4*()^2/(()^4+2).3333 Με τον ίδιο τρόπο παίρνουμε και άλλες τιμές: >> f() >> f(-3)

52 >> f(5).595 Παρατήρηση Η f δουλεύει και στην περίπτωση που το x είναι διάνυσμα αφού στο πιο πάνω m-file ορίσαμε τις πράξεις κατά τα στοιχεία του (δηλ. βάλαμε. πριν από τα ^ και / ). Για παράδειγμα, για το διάνυσμα x = ( 3, 2.5, 2,.5,,.5,,.5,,.5,2,2.5,3) T έχουμε >> x=[-3:.5:3]'; >> f(x) Αυτή η δυνατότητα θα μας φανεί πολύ χρήσιμη για την κατασκευή γραφημάτων. Αν, για παράδειγμα, θέλουμε να κατασκευάσουμε τη γραφική παράσταση της πιο πάνω συνάρτησης για x [,], τότε διαμερίζουμε ομοιόμορφα το διάστημα αυτό με σημεία ( ίσα υποδιαστήματα) με την εντολή >> x=linspace(-,,); και μετά χρησιμοποιούμε την εντολή >> plot(x,f(x)) Παίρνουμε έτσι την γραφική παράσταση της f: 5

53 2. Ανώνυμες συναρτήσεις Η MATLAB περιλαμβάνει ένα απλό τύπο συνάρτησης η οποία καλείται ανώνυμη συνάρτηση (anonymous function) η οποία ορίζεται είτε στο παράθυρο εντολών είτε σ ένα αρχείο script και είναι διαθέσιμη όσο διαρκεί η εργασία μας στο παράθυρο εντολών. Ας πάρουμε σαν παράδειγμα τη συνάρτηση f =sin(2π x) Η ανώνυμη συνάρτηση ορίζεται με την εντολή f sin(2*pi*x) όπου Το δηλώνει στη MATLAB ότι η f είναι συνάρτηση. Αμέσως μετά το ακολουθεί η μεταβλητή εισόδου της συνάρτησης. Τέλος ορίζεται η συνάρτηση. Το όνομα της συνάρτησης εμφανίζεται στο παράθυρο των μεταβλητών με τον χαρακτηρισμό function_handle. Αν καθαρίσουμε το χώρο εργασίας (με την εντολή clear) η ανώνυμη συνάρτηση θα διαγραφεί. Όπως και κάθε άλλη ενεργή μεταβλητή μια ανώνυμη 52

54 συνάρτηση μπορεί να αποθηκευτεί σ ένα αρχείο.mat με την εντολή save και να φορτωθεί εκ νέου με την εντολή load. Οι ανώνυμες συναρτήσεις χρησιμοποιούνται όπως κάθε άλλη συνάρτηση. Για παράδειγμα, αφού ορίσουμε την f όπως είδαμε πιο πάνω, τότε μπορούμε να πούμε >> f() >> f(.25) Η εντολή fplot H fplot είναι παράδειγμα συνάρτησης βιβλιοθήκης που έχει σαν όρισμα μια άλλη συνάρτηση. Η fplot έχει δύο ορίσματα εισόδου: μια συνάρτηση και το διάστημα στο οποίο θα κάνει το γράφημά της. Αν τη χρησιμοποιήσουμε με την ανώνυμη συνάρτηση που μόλις ορίσαμε fplot(f, [ 4]) παίρνουμε το ακόλουθο γράφημα: 3. Βασικές Εντολές Γραφικών Παραστάσεων H MATLAB έχει εξαιρετικές δυνατότητες για γραφικά και είναι εφοδιασμένη με αρκετές συναρτήσεις για εύκολο και ευέλικτο σχεδιασμό επίπεδων καμπυλών, τρισδιάστατων επιφανειών, ισοϋψών, παραμετρικών δισδιάστατων αλλά και τρισδιάστατων καμπυλών κα. Σε αυτή την ενότητα θα εξετάσουμε τις σημαντικότερες γραφικές συναρτήσεις της MATLAB. 53

55 Η εντολή plot Η συνάρτηση plot χρησιμοποιείται για την κατασκευή του γραφήματος μιας επίπεδης καμπύλης τα σημεία της οποίας είναι αποθηκευμένα στα ισομήκη διανύσματα x και y. Αν για παράδειγμα, έχουμε τα διανύσματα >> x=[ ] x = >> y=[ ] y = με την εντολή >> plot(x,y) εμφανίζεται αυτόματα ένα παράθυρο γραφικών με το πιο κάτω γράφημα: Παρατηρούμε ότι η plot ενώνει τα 5 σημεία που ορίζουν τα x και y με συνεχείς γραμμές. Υπάρχουν φυσικά και άλλες επιλογές τις οποίες θα δούμε στη συνέχεια. Αν τώρα θέλουμε να κατασκευάσουμε το γράφημα μιας συνάρτησης y = f(x) κατασκευάζουμε πρώτα το διάνυσμα x στο διάστημα που μας ενδιαφέρει με ομοιόμορφα ή λογαριθμικά κατανεμημένα σημεία και με μικρό βήμα. Στη συνέχεια υπολογίζουμε το y και γράφουμε την εντολή >> plot(x,y) Τα διανύσματα x και y πρέπει να έχουν το ίδιο μήκος. Αυτή είναι η πιο απλή εκδοχή 54

56 της εντολής. Στη συνέχεια θα δούμε πως χρησιμοποιούνται άλλες δυνατότητες όπως η επιλογή χρώματος και είδους γραμμής, η κατασκευή πολλαπλών γραφημάτων κα. Μπορείτε βέβαια να μάθετε περισσότερα με την εντολή help plot. Εφαρμογή Θα κατασκευάσουμε το γράφημα της y = cos(x) στο διάστημα [ π, π]. Ακολουθούμε τα εξής βήματα: (α) Διαμερίζουμε το διάστημα [ π, π] σε υποδιαστήματα μήκους. και αποθηκεύουμε τα σημεία xi στο διάνυσμα x: >> x=-pi:.:pi; Αν αντί για το μήκος του κάθε υποδιαστήματος μας ενδιαφέρει το πλήθος των σημείων xi στο διάνυσμα x, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση linspace. Αν n είναι το επιθυμητό πλήθος σημείων γράφουμε >> x=linspace(-pi,pi, n); Αν παραλείψουμε το n, >> x=linspace(-pi,pi); η linspace θεωρεί ότι n = και μας δίνει αυτόματα σημεία (δηλ. χωρίζει το διάστημα σε υποδιαστήματα). (β) Ορίζουμε το διάνυσμα y με τιμές τα yi = cos(xi) : >> y=cos(x); (γ) Κατασκευάζουμε το γράφημα της y = cos(x) στο διάστημα [ π, π]: >> plot(x,y) Με αυτή την εντολή εμφανίζεται ένα νέο παράθυρο με ένα πλούσιο μενού επιλογών και με το γράφημα της y = cos(x): 55

57 Παρατήρηση Συνοψίζοντας, μπορούμε να πάρουμε το πιο πάνω γράφημα είτε με τις εντολές >> x=-pi:.:pi; y=cos(x); plot(x,y) είτε με τις >> x=linspace(-pi,pi,3); y=cos(x); plot(x,y) Θα μπορούσαμε πάντως να γράψουμε απευθείας >> x=-pi:.:pi; plot(x,cos(x)) ή σε μια εντολή >> plot(-pi:.:pi,cos(-pi:.:pi)) ή ακόμα >> plot(linspace(-pi,pi,3),cos(linspace(-pi,pi,3))) 4. Χρήσιμες συναρτήσεις για γραφικά Το γράφημα που πήραμε πιο πάνω είναι απλό αφού δεν έχει ετικέτες στους άξονες, τίτλο και λεζάντα. Όλα αυτά μπορούν να προστεθούν και να τροποποιηθούν είτε απευθείας με το μενού του παραθύρου γραφικών είτε με συναρτήσεις βιβλιοθήκης στο παράθυρο εντολών. Με τις πιο κάτω εντολές: >> xlabel('x') >> ylabel('y=cos(x)') 56

58 >> title('graph of cosine in [-pi, pi]') >> legend('cos(x)') το γράφημα που παίρνουμε τώρα είναι το πιο κάτω: Όπως ήδη αναφέραμε, οι ετικέτες των αξόνων, ο τίτλος και η λεζάντα μπορούν να εισαχθούν απευθείας στο παράθυρο του γραφήματος. Κάντε απλώς κλικ στην επιλογή Insert και θα δείτε το σχετικό μενού. Αυτό περιλαμβάνει και άλλες επιλογές όπως την εισαγωγή κειμένου (text) ή βέλους (arrow) κα. Κάνοντας διπλό κλικ στους άξονες εμφανίζεται παράθυρο επιλογών για τα χαρακτηριστικά τους τα οποία μπορούμε να αλλάξουμε. Για παράδειγμα μπορούμε να αλλάξουμε τα όρια του άξονα των y σε [.2,.2]. Μπορούμε επίσης να δημιουργήσουμε πλέγμα με την εντολή: >> grid Παίρνουμε τότε το γράφημα: 57

59 58

60 8η Εργαστηριακή Άσκηση Χρώματα, σύμβολα και γραμμές σε διαγράμματα. Πολλαπλά γραφήματα. Λογαριθμικοί άξονες. Χρώματα, σύμβολα και γραμμές Η εντολή plot παρέχει μια ευρεία επιλογή χρωμάτων, συμβόλων και τύπων γραμμών. Ενώ η εντολή >> plot(x,y) μας δίνει γράφημα με μπλε συνεχή γραμμή, η εντολή >> plot(x,y, ' [color][stype][ltype]' ) μας επιτρέπει να επιλέξουμε το χρώμα του γραφήματος και τους τύπους συμβόλου και γραμμής. Το χρώμα [color] ορίζεται με ένα από τα πιο κάτω γράμματα: Για τον τύπο [stype] του συμβόλου έχουμε τις εξής επιλογές: 59

61 Για τον τύπο [ltype] της γραμμής έχουμε τις εξής επιλογές: Για παράδειγμα, η εντολή >> plot (x, y, 'g--') μας δίνει πράσινη αδρή διακεκομμένη γραμμή, ενώ η εντολή >> plot (x, y, 'm:') μας δίνει μοβ λεπτή διακεκομμένη γραμμή. Η εντολή >> plot (x, y, 'c+:') σχεδιάζει μια κυανή λεπτή διακεκομμένη γραμμή και το σύμβολο + σε κάθε σημείο. Δεν είναι απαραίτητο να προσδιορίσουμε το χρώμα και τον τύπο γραμμής. Σ αυτή την περίπτωση η MATLAB χρησιμοποιεί τις προεπιλογές (defaults): Για το χρώμα [color] το b (μπλε). Για τον τύπο [type] το (συνεχής γραμμή). 6

62 Έτσι η εντολή >> plot (x, y, 'g') μας δίνει πράσινη συνεχή γραμμή ενώ η εντολή >> plot (x, y, 'o') μας δίνει μπλε κύκλους σε κάθε σημείο. Εφαρμογή Ορίζουμε τα πιο κάτω σημεία και τις αντίστοιχες τιμές της exp(x): >> x = -:.2:; >> y=exp(x); Οι εντολές >> plot(x, y) ή >>plot(x, y, 'b- ') μας δίνουν το ίδιο γράφημα (μπλε συνεχής γραμμή): Η εντολή 6

63 >> plot(x, y, 'k--') μας δίνει μαύρη αδρή διακεκομμένη γραμμή: Η εντολή >> plot( x, y, 'rs') μας δίνει κόκκινα τετράγωνα: 62

64 2. Πολλαπλά γραφήματα Με την εντολή plot μπορούμε να έχουμε διαφορετικές καμπύλες στο ίδιο γράφημα. Για παράδειγμα, αν y = f(x), y2 = f2(x), μπορούμε να δώσουμε την εντολή >> plot( x, y, ' [colour][stype][ltype]', x2, y2, ' [colour][stype][ltype]',. ) Στην περίπτωση πολλαπλών γραφημάτων η λεζάντα (legend) ορίζεται με ανάλογο τρόπο: >> legend ('legend y', 'legend y2', ) όπου το 'legend y' είναι η λεζάντα για την y κοκ. Εφαρμογή 2 Θα σχεδιάσουμε στο διάστημα [, 2] τις εξής καμπύλες: την καμπύλη y = sin(x) με κόκκινη συνεχή γραμμή την καμπύλη z = exp(x) με μπλε αδρή διακεκομμένη γραμμή. 63

65 Θα δημιουργήσουμε επίσης πλέγμα και θα έχουμε λεζάντα. Ακολουθούν οι σχετικές εντολές: >> >> >> >> >> >> x=:.2:2; y=sin(x); z=exp(x); plot( x, y, 'r', x, z, '--') grid legend ( 'sin(x)', 'exp(x)' ) Παίρνουμε με τις εντολές αυτές το πιο κάτω γράφημα: Εφαρμογή 3 Η εντολή >> plot( x, y, 'b', x, y, 'ro') σχεδιάζει τα ίδια δεδομένα δύο φορές. Την πρώτη με μπλε συνεχή γραμμή και τη δεύτερη με (ασύνδετους) κόκκινους κύκλους στα δεδομένα σημεία. Με τις εντολές >> x=:.5:2; 64

66 >> >> >> >> y=exp(x); plot( x, y, 'b', x, y, 'ro') xlabel('x') ylabel('e^x') παίρνουμε το ακόλουθο γράφημα: 3. Λογαριθμικοί άξονες Οι εντολές του πίνακα που ακολουθεί χρησιμοποιούνται για την κατασκευή λογαριθμικών ή ημιλογαριθμικών γραφημάτων (συμπεριλαμβάνοντας και την plot για λόγους πληρότητας). Θα πρέπει να έχουμε υπόψη μας ότι μπορούμε να αλλάξουμε ένα άξονα από γραμμικό σε λογαριθμικό ή αντίστροφα χρησιμοποιώντας τις επιλογές στο παράθυρο του γραφήματος. Τις επιλογές αυτές μπορούμε να τις πάρουμε επίσης με διπλό κλικ στον άξονα. 65

67 Εφαρμογή 4 Θα σχεδιάσουμε το γράφημα της y = + 2x5 με τέσσερις διαφορετικούς τρόπους. Ορίζουμε πρώτα τα διανύσματα x και y στο διάστημα [, ]: >> x=:.:; >> y=+2*x.^5; (α) Κανονικό γράφημα >> plot(x,y), grid, xlabel('x'), ylabel('y') >> title('linear/linear') (β) Λογαριθμικό γράφημα >> loglog(x,y), grid, xlabel('x'), ylabel('y') >> title('log/log') 66

68 (γ) Ημιλογαριθμικά γραφήματα >> semilogy(x,y), grid, xlabel('x'), ylabel('y') >> title('linear/log') >> semilogx(x,y), grid, xlabel('x'), ylabel('y') >> title('log/linear') 67

69 9η Εργαστηριακή Άσκηση Διανύσματα και πίνακες. Βασικές Πράξεις. Γενικά Οι πράξεις μεταξύ πινάκων γίνονται με τα σύμβολα που φαίνονται στον πίνακα: Εννοείται βέβαια ότι οι χρησιμοποιούμενοι πίνακες πρέπει να είναι συμβιβαστοί ως προς την πράξη που κάνουμε. Έτσι, η ύψωση σε δύναμη είναι δυνατή μόνο για τετραγωνικούς πίνακες. Σημειώνουμε επίσης τα εξής: ο ανάστροφος ΑΤ ενός πραγματικού πίνακα Α, συμβολίζεται με A'. Οι εντολές A*A*A και A^3 όπου Α τετραγωνικός πίνακας είναι ισοδύναμες. Μπορούμε να πολλαπλασιάσουμε όλα τα στοιχεία ενός πίνακα Α και ενός διανύσματος u με ένα αριθμό x (βαθμωτός πολλαπλασιασμός) x*a και x*u Με τον ίδιο τρόπο μπορούμε να διαιρέσουμε όλα τα στοιχεία με κάποιο μη μηδενικό αριθμό x: A/x και u/x Μπορούμε να προσθέσουμε ή να αφαιρέσουμε ένα αριθμό x από όλα τα στοιχεία ενός πίνακα Α και ενός διανύσματος u: A x και u + x 68

70 Εφαρμογή Έστω ότι ορίζουμε το διάνυσμα a 3, το διάνυσμα στήλης b 4 και τον πίνακα Α 4 4. >> a=[-3 4 ]; >> b=[ ; 2 ; -4; 3]; >> A=[ 2 3 4; ; ; 4 ]; Θα βρούμε πρώτα τους ανάστροφους at, bt και AT. Στη συνέχεια θα υπολογίσουμε το συμμετρικό και το αντισυμμετρικό τμήμα του Α: (Α + ΑΤ)/2 και (Α ΑΤ)/2. >> a' -3 4 >> b' >> A' >> (A+A')/ >> (A-A')/ Ας εκτελέσουμε τώρα τους πιο κάτω πολλαπλασιασμούς: ( 3) a, 4A, b bt, btb, >> (-3)*a 69 Ab, bta, ΑΑ, Α3

71 9-2 >> 4*A >> b*b' >> b'*b 3 Παρατηρούμε ότι το γινόμενο b'*b αντιστοιχεί στο εσωτερικό γινόμενο και μας δίνει ένα αριθμό, ενώ το b*b' αντιστοιχεί στο λεγόμενο εξωτερικό γινόμενο και μας δίνει ένα n n πίνακα. >> A*b >> b'*a >> A*A >> A^

72 Ας αφαιρέσουμε τέλος τον αριθμό από όλα τα στοιχεία του πίνακα a και ας προσθέσουμε τον αριθμό 5 σε όλα τα στοιχεία του πίνακα Α: >> a a = -3 4 >> a >> A A = - 4 >> A Είδαμε πιο πάνω ότι η απόστροφος ' δηλώνει τον ανάστροφο (transpose) ενός πραγματικού πίνακα (ή διανύσματος). Στην περίπτωση μιγαδικού πίνακα η απόστροφος δηλώνει τον αναστροφοσυζυγή. Έτσι αν ο Α είναι ένας μιγαδικός πίνακας : O A' είναι ο αναστροφοσυζυγής του Α O A.' είναι ο ανάστροφος του Α (δεν παίρνουμε τα συζυγή στοιχεία) O A.'' είναι ο συζυγής του Α (χωρίς αναστροφή) Εφαρμογή 2 Θα βρούμε τον αναστροφοσυζυγή, τον (απλό) ανάστροφο και το συζυγή του μιγαδικού πίνακα >> A=[-2i 2+3i 3 4i -2+i 4-3i] A =. - 2.i + 4.i i i i

73 >> A'. + 2.i i 3. >> A.'. - 2.i i 3. >> A.''. + 2.i - 4.i i i i + 4.i i i i i i Αριστερή και δεξιά διαίρεση Η MATLAB είναι ένα αρκετά προχωρημένο λογισμικό και επιτρέπει την επίλυση γραμμικών συστημάτων με πολλούς τρόπους. Αν ο A είναι ένας αντιστρέψιμος πίνακας έχουμε τις πιο κάτω διαιρέσεις πινάκων: A\b μας δίνει τη λύση του συστήματος (αριστερή διαίρεση) Ax = b A/b xa = b μας δίνει τη λύση του συστήματος (δεξιά διαίρεση) όπου οι πίνακες A, x και b έχουν συμβιβαστές διαστάσεις. Η διαφορά της αριστερής από τη δεξιά διαίρεση φαίνεται στον πίνακα: 72

74 Εφαρμογή 3 Έστω ότι έχουμε τους πίνακες A και b της παρακάτω εφαρμογής. Θα λύσουμε τα συστήματα Ax = b και xa = bt. >> A A = 2 2 >> b b = >> A\b 2 3 >> b'/a Εφαρμογή 4 Έστω ότι θέλουμε να βρούμε τον πίνακα C για τον οποίο ισχύει AC = B, όπου >> format rat >> A=[ ; 2 ; -3 4]; >> B=[6 5 4; 3-2; 4 ]; >> C=A\B C = / /5 9/ 4/ 3/5 29/ 4/5-7/5 /5 Μπορούμε να επαληθεύσουμε το αποτέλεσμα γράφοντας: 73

75 >> A*C Η Εντολή rand Η rand(m,n) μας δίνει ένα m n πίνακα με τυχαία στοιχεία επιλεγμένα από μια ομοιόμορφη κατανομή στο διάστημα [, ]. Με αυτή την κατανομή, το ποσοστό των αριθμών που βρίσκονται στο διάστημα [a, b], όπου < a < b <, είναι b a. Η randn(m,n) μας δίνει ένα m n πίνακα με τυχαία στοιχ εία επιλεγμένα από τη συνήθη κανονική κατανομή με μέση τιμή το, διασπορά και τυπική απόκλιση. Καλώντας τις δύο συναρτήσεις με ένα όρισμα n, π.χ. rand(n), παίρνουμε ένα n n τυχαίο πίνακα. Καλώντας τις χωρίς όρισμα παίρνουμε ένα τυχαίο αριθμό, π.χ. >> rand.53 >> randn.6457 Εφαρμογή 5 Θα κατασκευάσουμε ένα ψευδοτυχαίο 4 4 πίνακα: >> rand(4) Τα στοιχεία του πίνακα είναι ψευδοτυχαίοι αριθμοί μεταξύ και. Θα κατασκευάσουμε τώρα ακόμα ένα ψευδοτυχαίο 4 4 πίνακα. >> rand(4)

76 Αν ξεκινήσουμε εκ νέου τη MATLAB και πάμε να κατασκευάσουμε ένα τυχαίο 4 4 πίνακα θα πάρουμε ακριβώς τον πρώτο πίνακα, οπότε ο πίνακας μας δεν είναι εντελώς τυχαίος. Γι αυτό το λόγο χρησιμοποιήσαμε τον όρο ψευδοτυχαίος. 75

77 η Εργαστηριακή Άσκηση Ορισμός διανυσμάτων και πινάκων με βήμα. Πράξεις κατά τα στοιχεία διανύσματος ή πίνακα. Ορισμός διανυσμάτων και πινάκων με βήμα Η MATLAB μας δίνει τη δυνατότητα να ορίσουμε τα στοιχεία ενός διανύσματος με κάποιο βήμα: Αν το βήμα b είναι ίσο με τη μονάδα, τότε αυτό μπορεί να παραλειφθεί: u = [ u : ulast ] Εφαρμογή Θα κατασκευάσουμε το διάνυσμα u = (,,, 2, 3, 4, 5, 6, 7, 8, 9, ) με δύο τρόπους: >> u=[-::] u = >> u=[-:] u = Θα κατασκευάσουμε τώρα το διάνυσμα u = (,, 3, 5, 7, 9). >> u=[-:2:9] u = Το ίδιο αποτέλεσμα το παίρνουμε και ως εξής: >> u=[-:2:] u = 76

78 Θα κατασκευάσουμε τέλος το u = (, 2, 5, 8). >> u=[-:3:] u = Όπως φαίνεται στην εφαρμογή που ακολουθεί η ίδια ιδέα μπορεί να χρησιμοποιηθεί για την κατασκευή πινάκων. Εφαρμογή 2 Θα κατασκευάσουμε τους πίνακες >> A=[:5;:-2:2] A = >> B=[:5;2:2:;3:3:5] B = Αν το u είναι ένας n ή n πίνακας τότε το u(i) όπου i n μας δίνει το στοιχείο ui. Επίσης αν το u είναι ένας n πίνακας το 77

79 u(i : k : j ) μας δίνει το υποδιάνυσμα Αν το βήμα k είναι ίσο με τη μονάδα, μπορούμε να το παραλείψουμε. Έτσι το u( i : j ) μας δίνει το υποδιάνυσμα Εφαρμογή 3 Θα πάρουμε ομοιόμορφα κατανεμημένα σημεία στο [,] με βήμα.: >> u=[:.:] u = Columns through Columns 8 thro ugh >> u(3).2 >> u(:3)..2 >> u(2:6) >> u(:2:) >> b=u(:5) b =

80 Tο βήμα μπορεί να είναι και αρνητικό: >> u=[:-3:-] u = Πράξεις κατά τα στοιχεία διανύσματος ή πίνακα Η MATLAB μας δίνει τη δυνατότητα να κάνουμε τις ίδιες πράξεις σε όλα τα στοιχεία ενός διανύσματος ή ενός πίνακα. Οι προκύπτουσες τιμές αποθηκεύονται αντίστοιχα σε διάνυσμα ή πίνακα. Για παράδειγμα αν θέλουμε να υπολογίσουμε τα ημίτονα όλων των στοιχείων του διανύσματος ui του u αρκεί να γράψουμε sin(u) Με τον ίδιο τρόπο μπορούμε να χρησιμοποιήσουμε όλες τις συναρτήσεις βιβλιοθήκης της MATLAB (exp, abs κα). Εφαρμογή 4 >> u=[:.2:] u = >> sin(u) >> exp(u) Η MATLAB έχει προβλέψει τη δυνατότητα μια πράξη, όπως ο πολλαπλασιασμός (*), η διαίρεση (/) και η ύψωση σε δύναμη (^) να γίνεται κατά τα στοιχεία ενός πίνακα ένα προς ένα αρκεί πριν από το σύμβολο της πράξης να εμφανίζεται μια τελεία. Έτσι αν το u είναι ένα διάνυσμα και ο Α ένας n n πίνακας, τότε u.^2 είναι το διάνυσμα με γενικό στοιχείο το u(i)^2. Η παράσταση είναι ισοδύναμη με την u.*u. Α.^3 είναι ο πίνακας με γενικό στοιχείο το A(i,j)^3 u.*4 είναι το διάνυσμα με γενικό στοιχείο το u(i)*4 που μπορούμε να πάρουμε πιο απλά με u*4. 79

81 u./5 είναι το διάνυσμα με γενικό στοιχείο το u(i)/5 που μπορούμε να πάρουμε πιο απλά με u/5 κοκ. Αν το k είναι ένας αριθμός και A ένας m n πίνακας τότε στις εντολές k+a, A+k, A-k, -k+a, A*k, k*a, A/k οι πράξεις γίνονται ξεχωριστά σε κάθε στοιχείο του Α. Έτσι η μόνη εξαίρεση στον κανόνα αυτό είναι η ύψωση σε δύναμη: A^k. Εφαρμογή 5 >> u=[:6] u = Υψώνουμε τώρα κάθε στοιχείο του u στο τετράγωνο με την u.^2 αλλά και την ισοδύναμή της u.*u: >> a=u.^2 a = >> b=u.*u b = Παίρνοντας τις τετραγωνικές ρίζες των στοιχείων του b βρίσκουμε ξανά το u. >> c=sqrt(b) c = Αν έχουμε δύο διανύσματα u και v ίσου μήκους τότε μπορούμε να κάνουμε πράξεις μεταξύ των ομοθέσιων στοιχείων τους εφόσον βάλουμε τελεία πριν από το σύμβολο της πράξης. Έτσι w = u.*v είναι το διάνυσμα με γενικό στοιχείο το w(i) = u(i)*v(i). Η παράσταση είναι ισοδύναμη με την v.*u. w = u./v είναι το διάνυσμα με γενικό στοιχείο το w(i) = u(i)/v(i). 8

82 w = u.\v είναι το διάνυσμα με γενικό στοιχείο το v(i)/u(i). Είναι φανερό ότι η εντολή είναι ισοδύναμη με την w = v./u. w = 2.^v είναι το διάνυσμα με γενικό στοιχείο το w(i) = 2^v(i). w = u.^v είναι το διάνυσμα με γενικό στοιχείο το w(i) = u(i)^v(i) κοκ. Εντελώς ανάλογα εκτελούνται πράξεις κατά τα ομοθέσια στοιχεία δύο m n πινάκων Α και Β: C = A.*B είναι ο πίνακας με γενικό στοιχείο το C(i,j) = A(i,j)*B(i,j). Η παράσταση είναι ισοδύναμη με την B.*A. C = A./B είναι ο πίνακας με γενικό στοιχείο το C(i,j) = A(i,j)/B(i,j). C = A.\B είναι ο πίνακας με γενικό στοιχείο το C(i,j) = B(i,j)/A(i,j). Είναι φανερό ότι η εντολή είναι ισοδύναμη με την C = B./A. C = 2.^B είναι ο πίνακας με γενικό στο ιχείο το C(i,j) = 2^B(i,j). C = A.^B είναι ο πίνακας με γενικό στοιχείο το C(i,j) = A(i,j)^B(i,j). Εφαρμογή 6 Θα δοκιμάσουμε τις 5 πράξεις που φαίνονται πιο πάνω με τα διανύσματα u = (, 2, 3, 4) και v = (8, 6, 4, 2). >> u=:4 u = >> v=8:-2:2 v = >> u.*v 8 2 >> u./v >> u.\v 8

83 8. 3. >> 2.^v >> u.^v Εφαρμογή 7 Θα επαναλάβουμε τις πράξεις με τους πίνακες >> A=[ ; 2 2 2; 3 3 3]; >> B=2*eye(3)+; >> A.*B >> A./B >> A.\B >> 2.^B >> A.^B 82

84 Είναι φανερή η διαφορά μεταξύ του Α^2 και του Α.^2. Ενώ το Α^2 (=Α*Α) είναι το τετράγωνο του πίνακα, το Α.^2 είναι ο πίνακας με στοιχεία τα τετράγωνα των στοιχείων του Α. Εφαρμογή 8 Θα δούμε τη διαφορά μεταξύ Α^2 και του Α.^2 όταν >> A=[ -2+i; 3 i]; >> A^ i i i i >> A.^ i -. 83

85 η Εργαστηριακή Άσκηση ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB Bρόχοι for, Bρόχοι while, εντολή if Για να μπορέσουμε να γράψουμε δικά μας προγράμματα (δηλ. m-files που θα παίζουν το ρόλο νέων εντολών στη MATLAB) πρέπει να μελετήσουμε καλά τις τέσσερις δομές ελέγχου ροής (flow control structures) που διαθέτει η MATLAΒ: βρόχοι for (for loops) βρόχοι while (while loops) εντολή if (if statement) εντολή switch (switch statement) Πριν πάμε στις δομές ελέγχου ροής θα πρέπει να συζητήσουμε πρώτα τους λεγόμενους σχεσιακούς (relational operators) και λογικούς τελεστές (logical operators). Ένας από τους τύπους δεδομένων της MATLAB είναι ο λογικός (logical data type) με πιθανές τιμές τη λογική μονάδα (αληθής, true) και το λογικό (ψευδής, false). Οι λογικές μεταβλητές παράγονται από σχεσιακούς και λογικούς τελεστές ή συναρτήσεις και από τις συναρτήσεις true και false. Για παράδειγμα, ας πάρουμε τις πραγματικές μεταβλητές x και y και τις λογικές μεταβλητές a και b: >> x= x = >> y= y = >> a=true a = >> b=false b = >> whos Name a b x y Size x x x x Bytes 8 8 Class logical array logical array double array double array 84

86 Grand total is 4 elements using 8 bytes Παρατηρούμε ότι ενώ οι πραγματικές μεταβλητές καταλαμβάνουν 8 bytes, οι λογικές μεταβλητές καταλαμβάνουν byte.. Σχεσιακοί τελεστές Οι σχεσιακοί τελεστές (relational operators) της MATLAB είναι οι πιο κάτω: Παρατηρούμε ότι σε αντίθεση με την εκχώρηση τιμής όπου χρησιμοποιείται το =, για την ισότητα στις λογικές προτάσεις χρησιμοποιείται το = =. Η σύγκριση μεταξύ δύο αριθμών μας δίνει τη λογική μονάδα αν αυτή είναι αληθής και το λογικό μηδέν αν είναι ψευδής: >> ==2 >> +==2 >> 3<5 >> 3>6 >> >= 85

87 >> <=5 >> ~=5 Θα πρέπει να σημειώσουμε ότι στην περίπτωση που συγκρίνουμε μιγαδικούς αριθμούς τότε στην περίπτωση ισότητας ( = = ) και ανισότητας ( ~= ) συγκρίνονται τόσο τα πραγματικά όσο και τα φανταστικά μέλη. Σε όλες τις άλλες περιπτώσεις η σύγκριση γίνεται ως προς τα πραγματικά μέλη. Έτσι για παράδειγμα η σχέση +5i < 2 + i είναι αληθής όπως επίσης και η +5i >= -i Εφαρμογή >> x=+4i; y=3-2i; z=+i; w=+4i; >> x ~=y >> x == z >> x == w >> x > z >> y > z >> x >= z Μπορούμε επίσης να συγκρίνουμε δύο πίνακες ίσων διαστάσεων ή τα στοιχεία ενός πίνακα με ένα αριθμό. Παράγεται τότε ένας πίνακας με λογικά στοιχεία: 86

88 στη σύγκριση πίνακα με πίνακα συγκρίνονται τα ομοθέσια στοιχεία, ενώ στη σύγκριση πίνακα με αριθμό συγκρίνεται κάθε στοιχείο του πίνακα με τον αριθμό αυτό. Εφαρμογή 2 >> A=[ 2; - ] A = 2 - >> B=[3 2; - 4] B = >> A==B >> A>B >> A>=B >> A== >> A>= Οι πίνακες που παράγονται με σύγκριση είναι λογικοί πίνακες, δηλ. τα στοιχεία τους είναι λογικές μεταβλητές. 87

89 Εφαρμογή 3 >> A=[ 2 3; 2 3 ; 3 2] A = >> B=[3 2 ; 2 3; 3 2] B = Ας βρούμε τώρα το λογικό πίνακα που μας δείχνει ποια στοιχεία των Α και Β είναι ίσα: >> C=A==B C = Ο D είναι ο λογικός πίνακας που μας δείχνει ποια στοιχεία του Α είναι μεγαλύτερα των αντίστοιχων στοιχείων του Β: >> D=A>B D = Ο Ε είναι ο λογικός πίνακας που μας δείχνει ποια στοιχεία του Α είναι μεγαλύτερα ή ίσα του 2: >> E=A>=2 E = Με την εντολή whos βλέπουμε ότι κατασκευάσαμε δύο πίνακες διπλής ακρίβειας (Α και Β) και τρεις λογικούς πίνακες, τους C, D και E: >> whos Name A B Size 3x3 3x3 Bytes Class double double Attributes 88

90 C D E 3x3 3x3 3x logical logical logical Στις νέες εκδοχές της MATLAB έχουμε τη δυνατότητα να χρησιμοποιήσουμε ισοδύναμες σχεσιακές συναρτήσεις αντί των λογικών τελεστών. Για παράδειγμα, οι παραστάσεις A==B και eq(a,b) είναι ισοδύναμες. Οι συναρτήσεις που αντιστοιχούν στους λογικούς τελεστές φαίνονται στον πιο κάτω πίνακα: Εφαρμογή 4 Οι πιο κάτω παραστάσεις είναι ισοδύναμες: x=y >= 5 A~=B (a+b)<c/d eq(x,y) ge(,5) ne(a,b) lt(a=b,c/d) 2. Βρόχοι for Οι βρόχοι for έχουν την εξής δομή: for index = initial value (: step) : final value statements end Οι λέξεις for και end χρησιμοποιούνται στην αρχή και στο τέλος του βρόχου, ο μετρητής index παίρνει τις τιμές από initial value μέχρι final value με βήμα step, και οι εντολές (statements) εκτελούνται για όλες τις τιμές του μετρητή index. Αν παραλείψουμε το βήμα, τότε η MATLAB χρησιμοποιεί το σαν βήμα. Σημειώνουμε επίσης ότι το βήμα μπορεί να είναι αρνητικό. Για παράδειγμα, αν θέλουμε να υπολογίσουμε την παράσταση 89

91 j+2, j=, 2, 3, 4 μπορούμε να γράψουμε: >> for j=:4 j+2 end Εφαρμογή 5 Θα χρησιμοποιήσουμε ένα βρόχο για να υψώσουμε τα στοιχεία του διανύσματος x = [, 2,3, 4,5] στο τετράγωνο. >> for i=:5 x(i) = i^2; end >> x x = Βρόχοι while Οι βρόχοι while είναι της μορφής: while relation statements end Οι λέξεις while και end χρησιμοποιούνται στην αρχή και στο τέλος του βρόχου. Η ακολουθία εντολών «statements» εκτελούνται εφόσον η συνθήκη relation ικανοποιείται (δηλ. είναι αληθής) και σταματούν όταν αυτή παύει να ισχύει. Για να γράψουμε τη συνθήκη relation χρησιμοποιούμε τους σχεσιακούς και λογικούς τελεστές που γνωρίσαμε πιο πάνω. 9

92 Εφαρμογή 6 Το function m-file xlgmin.m, που φαίνεται πιο κάτω, βρίσκει τον ελάχιστο ακέραιο για τον οποίο ισχύει log n x όπου x δοσμένος αριθμός. function [n] = xlgmin(x) % function [n] = xlgmin(x) % % Briskei ton elaxisto akeraio n gia ton opoio isxuei % log n >= x % O x prepei na einai gnhsia etikos % n = ; while log(n) < x n = n+; end % Telos tou xlgmin.m Τρέχουμε το πιο πάνω m-file για διάφορες τιμές του x: >> xlgmin() 3 >> xlgmin(3) 2 >> xlgmin(8) Η εντολή if Η εντολή if μας επιτρέπει να ελέγξουμε αν μια (ή περισσότερες) συνθήκες ισχύουν και να εκτελέσουμε σε κάθε περίπτωση την επιθυμητή ακολουθία εντολών και πράξεων. Η εντολή έχει την γενική μορφή: if relation_ statement(s) elseif relation_2 statement(s) else statement(s) end 9

93 Οι συνθήκες ελέγχονται με τη χρήση σχεσιακών και λογικών τελεστών. Σημειώνουμε επίσης ότι η εντολή elseif γράφεται σαν μια λέξη (δεν πρέπει να υπάρχει κενό μεταξύ του else και του if). Η απλούστερη μορφή της εντολής if είναι η πιο κάτω: if relation statement(s) end Οι εντολές εκτελούνται μόνο αν ικανοποιείται η συνθήκη relation. Διαφορετικά δεν εκτελείται καμιά εντολή στο σημείο αυτό του προγράμματος και η ροή του τελευταίου συνεχίζει κανονικά. Αν θέλουμε να γράψουμε στην ίδια γραμμή άλλες εντολές χρησιμοποιούμε κόμμα ή ερωτηματικό για να χωρίσουμε την εντολή if από την επόμενη. Για παράδειγμα αντί if x> x=sqrt(x) end γράφουμε if x>, x=sqrt(x); end Εφαρμογή 7 Το script m-file workerpay.m, που φαίνεται πιο κάτω, υπολογίζει τον μισθό ενός εργαζομένου βάσει των ωρών που έχει εργαστεί. Αφού ζητήσει από τον χρήστη να δώσει τις ώρες εργασίας και το ωρομίσθιο, το πρόγραμμα υπολογίζει το μισθό ως εξής: Μέχρι τις 4 ώρες εργασίας, ο μισθός είναι το γινόμενο των ωρών επί το ωρομίσθιο, ενώ πάνω από τις 4 ώρες (υπερωρίες), οι απολαβές είναι κατά 5% μεγαλύτερες. % Script file workerpay.m t = input('poses wres exei ergastei to atomo? '); h = input('poios eivai o misos ava wra? '); Pay = t*h; if t > 4 Pay = Pay + (t-4)*.5*h; end disp('to eisodeima tou ergazomevou eivai ') format bank disp(pay) % Telos tou workerpay.m 92

94 Ας τρέξουμε το πρόγραμμα μερικές φορές: >> workerpay Poses wres exei ergastei to atomo? 46 Poios eivai o misos ava wra? 4.25 To eisodeima tou ergazomevou eivai >> workerpay Poses wres exei ergastei to atomo? 35 Poios eivai o misos ava wra? 4 To eisodeima tou ergazomevou eivai 4. 93

95 2η Εργαστηριακή Άσκηση ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB Eντολή switch, Συνάρτηση menu, Συνάρτηση beep. Η εντολή switch Η εντολή switch-case μας δίνει τη δυνατότητα να επιλέξουμε για εκτέλεση μια ομάδα εντολών από άλλες πιθανές ομάδες. Η γενική της δομή έχει ως εξής: switch switch_expression case value_ statement(s) case value_2 statement(s) case value_3 statement(s) otherwise statement(s) end Σημειώνουμε τα εξής γι αυτή την εντολή: Η πρώτη γραμμή περιέχει την λέξη κλειδί switch, ακολουθούμενη από το όνομα switch_expression, που θα δώσουμε εμείς, το οποίο μπορεί να είναι βαθμωτή ποσότητα, αλφαριθμητικό, ή ακόμα και μαθηματική παράσταση με προκαθορισμένες μεταβλητές που μπορεί να πάρει μια τιμή. Μετά από το switch, ακολουθούν οι διάφορες εντολές case. Η κάθε μια έχει ένα όνομα (π.χ. value _, value_2 κλπ) το οποίο μπορεί να είναι βαθμωτή ποσότητα ή αλφαριθμητικό, και μετά ακολουθούν οι εντολές που θα εκτελεστούν αν βρεθούμε στη συγκεκριμένη περίπτωση. 94

96 Μετά την τελευταία περίπτωση/εντολή case, ακολουθεί η προαιρετική περίπτωση/εντολή otherwise της οποίας οι εντολές θα εκτελεστούν αν καμιά από τις προηγούμενες περιπτώσεις δεν ισχύει. Σε αντίθεση με άλλες γλώσσες προγραμματισμού (όπως, π.χ. η C), στη MATLAB δεν χρειάζεται να διακόψουμε τη ροή της δομής μετά από κάθε case, μια και αυτό θα γίνει αυτόματα αφού μια από τις περιπτώσεις έχει επαληθευτεί. Εφαρμογή convertcm.m Το πιο κάτω script m-file μετατρέπει μήκη από διάφορες μονάδες σε cm: % Metatrepei mia posothta apo inches h milimeters, se ekatosta x = input('dwste th timh ths metablhths pou xreiazetai metatroph: '); units = input('dwste tis movades metrhshs ths (mesa se apostrofous): '); switch units case {'in','inch'} y = 2.54*x; % converts to centimeters disp(' ') disp('se ekatosta (cm), h timh ths metablhths disp(y) case {'m','meter'} y = x*; % converts to centimters disp(' ') disp('se ekatosta (cm), h timh ths metablhths disp(y) case { 'millimeter','mm'} y = x/; disp(' ') disp('se ekatosta (cm), h timh ths metablhths disp(y) case {'cm','centimeter'} y = x; disp(' ') disp('se ekatosta (cm), h timh ths metablhths disp(y) otherwise disp(' ') disp(['unknown units:' units]) y = nan; end Τρέχουμε το πιο πάνω script για διάφορες τιμές: 95 eivai') eivai') eivai') eivai')

97 >> convertcm Dwste th timh ths metablhths pou xreiazetai metatroph: 3 Dwste tis movades metrhshs ths (mesa se apostrofous): 'in' Se ekatosta (cm), h timh ths metablhths eivai 7.62 >> convertcm Dwste th timh ths metablhths pou xreiazetai metatroph: 5 Dwste tis movades metrhshs ths (mesa se apostrofous): 'mm' Se ekatosta (cm), h timh ths metablhths eivai.5 >> convertcm Dwste th timh ths metablhths pou xreiazetai metatroph: 9 Dwste tis movades metrhshs ths (mesa se apostrofous): 'cm' Se ekatosta (cm), h timh ths metablhths eivai 9 >> convertcm Dwste th timh ths metablhths pou xreiazetai metatroph: 7 Dwste tis movades metrhshs ths (mesa se apostrofous): 'feet' unknown units:feet Εφαρμογή 2 To function m-file που ακολουθεί βρίσκει την τιμή του αεροπορικού εισιτηρίου ανάλογα με τον προορισμό. function []=ticketp() % TICKETP % Returns the cost of an airfair depending on the % destination % city=input('enter destination city: ', 's') switch city case 'Paphos' disp('5 EUROS') case 'Athens' disp('5 EUROS ') case 'Heraklion' disp(' EUROS ') case 'Thessaloniki' disp('2 EUROS ') otherwise sprintf('no flights for %s',city) end 96

98 Ακολουθούν κάποια αποτελέσματα που παίρνουμε με το ticketp.m. >> ticketp Enter destination city: Athens city = Athens 5 EUROS >> ticketp Enter destination city: Paphos city = Paphos 5 EUROS >> ticketp Enter destination city: Paris city = Paris No flights for Paris 2. Η συνάρτηση menu Η συνάρτηση menu παράγει ένα μενού επιλογών για τον χρήστη. Η δομή της είναι choice=menu(header, item, item2,.) όπου header είναι η επικεφαλίδα item είναι η πρώτη επιλογή, item2 η δεύτερη κοκ. Η σύνταξη choice=menu(header, itemlist) όπου itemlist είναι ένας αλφαριθμητικός πίνακας κελίων είναι επίσης αποδεκτή. Η menu επιστρέφει τον αριθμό της επιλογής του χρήστη στη μεταβλητή choice. Εφαρμογή 3 Με την εντολή choice=menu('destination city', 'Paphos', 'Athens', 'Heraklion', 'Thessaloniki') 97

99 εμφανίζεται ένα ξεχωριστό παράθυρο με τις 4 επιλογές. Ο χρήστης επιλέγει με ένα απλό κλικ την προτίμησή του. Το ίδιο αποτέλεσμα παίρνουμε αν ορίσουμε τις επιλογές σε ένα αλφαριθμητικό πίνακα κελίων: >> list=[{'paphos'} {'Athens'} {'Heraklion'} {'Thessaloniki'}] list = 'Paphos' 'Athens' 'Heraklion' 'Thessaloniki' >> choice=menu('destination city',list) 3. Η συνάρτηση beep Η συνάρτηση beep κάνει ένα προειδοποιητικό beep και χρησιμοποιείται συνήθως μαζί με μηνύματα σφάλματος. Εφαρμογή 4 >> x=-2; >> if x >= y=sqrt(x); else beep disp('x should be positive!') end >> x should be positive! 98

100 Εφαρμογές MATLAB σε Ηλεκτρικά Κυκλώματα. Σύντομη θεωρητική εισαγωγή Σε αυτή τη παράγραφο, θα δούμε εν συντομία τους τρεις βασικούς τύπους παθητικών ηλεκτρικών στοιχείων: αντίσταση, πηνίο και πυκνωτή. Στοιχεία αντίστασης: Νόμος του Ωμ: Η πτώση τάσης VR σε ένα γραμμικό αντιστάτη είναι ανάλογη προς την τρέχουσα ροή ρεύματος ir της αντίστασης, όπου η σταθερά της αναλογικότητας είναι η αντίσταση R όπως φαίνεται στο σχήμα R ir + VR Σχήμα Οι αντιστάσεις δεν αποθηκεύουν την ηλεκτρική ενέργεια με οποιαδήποτε μορφή αλλά την καταναλώνουν ως θερμότητα. Το ποσοστό ενέργειας που απελευθερώνεται (ενέργεια που καταναλώνεται) δίνεται από τον τύπο Αντιστάσεις σε σειρά: Το τρέχον ρεύμα i περνά μέσα από κάθε στοιχείο όπως φαίνεται στο σχήμα 2 (α). Η συνολική πτώση τάσης δίνεται από το σύνολο των πτώσεων τάσεων σε κάθε στοιχείο, ή V = V + V2 Εφαρμόζοντας τον Νόμο του Ωμ, έχουμε ireq = ir + ir2 ή Req = R + R2 Η πτώση τάσης πάνω σε κάθε αντίσταση δίνεται από τον τύπο Και 99

101 Σχήμα 2(α) Αντιστάσεις σε σειρά Σχήμα 2(β) Αντιστάσεις παράλληλα Αντιστάσεις παράλληλα: Όλα τα στοιχεία σε αυτήν την περίπτωση έχουν την ίδια τάση όπως στο σχήμα 2.2 (β). i = i + i2 Εφαρμόζοντας τον Νόμο του Ωμ, παίρνουμε ή Εάν έχουμε n αντιστάσεις, μπορούμε να γράψουμε Λύνοντας για τα ρεύματα i και i 2, έχουμε Στοιχεία αυτεπαγωγής: Η τάση VL στα άκρα ενός πηνίου L δίνεται από τον τύπο Σχήμα 3 Όπου il είναι το ρεύμα του πηνίου. Η ενέργεια που αποθηκεύεται σε ένα πηνίο δίνεται από τον τύπο

102 όπου q είναι το ηλεκτρικό φορτίο. Η πτώση τάσης σε μια αυτεπαγωγή είναι Πηνία σε σειρά: Δεδομένου ότι η πτώση τάσης σε ένα πηνίου είναι ανάλογη ως προς την αυτεπαγωγή L, έχουμε (Σχήμα 4 (a)) (α) Αυτεπαγωγή σε σειρά (β) Αυτεπαγωγή παράλληλα Σχήμα 4 Αυτεπαγωγή Πηνία σε παραλληλία: Αναφερόμενοι στο σχήμα 4(β), έχουμε Ομοίως, ισχύει για n πηνία Στοιχεία χωρητικότητας: Η χωρητικότητα C, είναι ένα μέτρο της ποσότητας του φορτίου που μπορεί να αποθηκευτεί για μια δεδομένη τάση, στα άκρα των πλακών ενός πυκνωτή. Η χωρητικότητα C ενός πυκνωτή δίνεται από τον τύπο Όπου q είναι η ποσότητα του φορτίου που αποθηκεύεται, και Vc είναι η τάση στα άκρα του πυκνωτή Εφόσον και έχουμε ή οπότε

103 Αυτό φαίνεται στο Σχήμα 5 Σχήμα 5 Η ενέργεια που αποθηκεύεται σε έναν πυκνωτή δίνεται από τον τύπο Η πτώση τάσης του πυκνωτή δίνεται από Πυκνωτές σε σειρά: Αναφερόμενοι στο Σχήμα 6(α), έχουμε Για πυκνωτές n έχουμε, Πυκνωτές σε παραλληλία: Για πυκνωτές σε παραλληλία Σχήμα 6(β) έχουμε (α) Πυκνωτές σε σειρά (β) Πυκνωτές σε παραλληλία Σχήμα 6 Χωρητικότητα 2. Ηλεκτρικά κυκλώματα Στην ενότητα αυτή, εφαρμόζουμε τον νόμο του Ωμ σε κυκλώματα που είναι συνδεμένα σε σειρά και παράλληλα για να προσδιοριστεί η αντίστασης του υπάρχοντος κυκλώματος. Κυκλώματα σε σειρά: Η συνολική αντίσταση, αντιστάσεων συνδεδεμένων σε σειρά, ενός απλού κυκλώματος σειράς δίνεται από το σύνολο των μεμονωμένων αντιστάσεων. Η τάση μεταξύ των σημείων Α και Β του κυκλώματος απεικονίζεται στο σχήμα 7. 2

104 Σχήμα 7 Κύκλωμα σε σειρά Και δίνεται από τον τύπο Όπου και Οπότε Άρα, η συνολική αντίσταση R του κυκλώματος δίνεται από τη σχέση Κυκλώματα εν παράλληλο: Για το παράλληλο κύκλωμα που φαίνεται στο Σχήμα 8 μπορούμε να γράψουμε και Σχήμα 8 Κύκλωμα σε παραλληλία Τώρα το ρεύμα θα είναι Επομένως, Όπου R είναι η συνολική αντίσταση του κυκλώματος. Άρα 3

105 Οπότε 3. Νόμοι του Kirchhoff Οι νόμοι του Kirchhoff είναι δύο από τους πιο χρήσιμους φυσικούς νόμους για την μοντελοποίηση των ηλεκτρικών κυκλωμάτων. Είναι απαραίτητο να σημειωθεί ότι οι νόμοι του Kirchhoff εφαρμόζονται στην επίλυση κυκλωμάτων που εμπλέκονται πολλά διαφορετικά ηλεκτρικά στοιχειά, όπως η αντίσταση, η χωρητικότητα και η αυτεπαγωγή. Οι νόμοι του Kirchhoff ξεκινούν ως εξής: Πρώτος Κανόνας του Kirchhoff: Το αλγεβρικό άθροισμα των ρευμάτων που ρέουν σε μία σύνδεση ( ή κόμβο) είναι μηδέν ( ανάλυση κόμβων).. Με άλλα λόγια, το σύνολο των ρευμάτων που μπαίνουν στον κόμβο είναι ίσο με το σύνολο των ρευμάτων που βγαίνουν από τον ίδιο κόμβο. Ένας κόμβος στο ηλεκτρικό κύκλωμα είναι ένα σημείο στο οποίο τρία ή περισσότερα καλώδια ενώνονται μεταξύ τους. Τα ρεύματα που πηγαίνουν προς τον κόμβο θεωρούνται θετικά ενώ τα ρεύματα που φεύγουν από τον κόμβο θεωρούνται αρνητικά. Το αλγεβρικό άθροισμα όλων των ρευμάτων μέσα στον κόμβο είναι μηδέν. Βλέποντας το Σχήμα 9 ισχύει Σχήμα 9 Σχήμα. 9 (a) i+i2+i3 = Σχήμα. 9 (β) (i+i2+i3) = Σχήμα. 9 (γ) i+i2 i3= Σχήμα. 9 (δ) i i2 i3+i4 i5 i6= 4

106 Δεύτερος κανόνας του Kirchhοff: Το αλγεβρικό σύνολο όλων των πιθανών πτώσεων τάσεων γύρο από έναν κλειστό βρόχο (ή κλειστό κύκλωμα) είναι μηδέν. (ανάλυση βρόχων). Με άλλα λόγια, το σύνολο των πτώσεων τάσης είναι ίσο με το σύνολο της τάσης που βρίσκεται στο βρόχο. Δηλαδή το σύνολο των πτώσεων τάσης γύρω από ένα βρόχο είναι μηδέν. Οπότε: 2. ή Οι πτώσεις τάσης ή η τάση των πηγών θα πρέπει να υποδεικνύεται με το κατάλληλο πρόσημο στην ανάλυση βρόχων. Στο Σχήμα φαίνονται διάφορα χρήσιμα παραδείγματα για τον τρόπο επιλογής του πρόσημου. Σχήμα Η εφαρμογή της MATLAB στην ανάλυση ηλεκτρικών κυκλωμάτων και οι αριθμητικές μέθοδοι, παρουσιάζονται σε αυτό το παράρτημα, με μια σειρά από επεξηγηματικά παραδείγματα. Παρουσιάζετε η υπολογιστική προσέγγιση του προβλήματος και ο τρόπος εφαρμογής σε γλώσσα MATLAB βήμα προς βήμα. Τα παραδείγματα αυτά περιλαμβάνουν έναν σημαντικό αριθμό ασκήσεων, ώστε να καθοδηγήσουν τον φοιτητή, να καταλάβει την ανάλυση πάνω στα ηλεκτρικά κυκλώματα και τις αριθμητικές μεθόδους που χρησιμοποιούμε στη MATLAB. 5

107 4. Παραδείγματα Προβλημάτων και Λύσεις Εφαρμογή Στο Σχήμα Ε φαίνετε ένα ηλεκτρικό κύκλωμα με αντιστάσεις και πηγές συνεχούς τάσης. Γράψτε ένα πρόγραμμα στη MATLAB, που να βρίσκει το ρεύμα που περνά μέσα από κάθε αντίσταση, χρησιμοποιώντας τους Νόμους του Kirchhoff. Δίνονται: V = 22 V, V2 = 2 V, V3 = 44 V, R = 2, R2 = 2, R3 = 5, R4 = 7, R5 = 6, R 6 =, R7 =, R8 = 5 Σχήμα E Λύση: Έστω ότι i, i2, i3 και i4 είναι τα ρεύματα βρόχων όπως φαίνονται στο σχήμα. Σύμφωνα με το νόμο του Kirchhoff για την τάση: το σύνολο της τάσης στο κλειστό κύκλωμα είναι μηδέν. Κατά συνέπεια, οι εξισώσεις βρόχων μπορούν να γραφτούν στην παρακάτω μορφή, λαμβάνοντας πάντοτε υπ όψη την φορά του ρολογιού: V Ri R3(i i3) R2(i i2)= R2(i2 i) R4(i2 i3) R7(i2 i4) R5i2= R3(i3 i) V2 R6(i3 i4) R4(i3 i2)= V3 R8i4 R7(i4 i2) R6(i4 i3)= Οι εξισώσεις μπορούν να γραφούν και σε μορφή πίνακα ως εξής: 6

108 Η λύση των εξισώσεων αυτού του συστήματος στη MATLAB δίνεται παρακάτω: %= = = = = = = = = = = = mat_script.m = = = = = = = = = = %INITIALIZING THE VARIABLES V=22; V2=2; V3=44; V=[-V;;V2;-V3]%CREATE THE VOLTAGE VECTOR R=2; R2=2; R3=5; R4=7; R5=6; R6=; R7=; R8=5; %CREATE THE RESISTANCE MATRIX R=[-(R+R2+R3) R2 R3 ; R2 -(R2+R4+R5+R7) R4 R7; R3 R4 -(R3+R4+R6) R6; R7 R6 -(R6+R7+R8)]; % GET THE CURRENT VECTOR AS SOLUTION I=inv(R)*V; %VALUES TO FOUR CURRENTS i=i() i2=i(2) i3=i(3) i4=i(4) %CALCULATE THE RESISTANCE CURRENTS IR=i; IR2=i-i2; IR3=i-i3; IR4=i2-i3; IR5=i2; IR6=i4-i3; IR7=i4-i2; IR8=i4; disp('the CURRENT IN EACH RESISTOR IN AMPER IS:') %CREATE THE CURRENT VECTOR IRESISTANCE=[IR IR2 IR3 IR4 IR5 IR6 IR7 IR8] %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Τα αποτελέσματα που θα πρέπει να πάρουμε είναι: 7

109 V = i =.8785 i2 =.754 i3 =.738 i4 =.6655 THE CURRENT IN EACH RESISTOR IN AMPER IS: IRESISTANCE = Εφαρμογή 2 Γράψτε ένα πρόγραμμα στη MATLAB που να υπολογίζει την πτώση τάσης και την ισχύ που καταναλώνετε σε κάθε αντίσταση του κυκλώματος του Σχήματος Ε2. Σχήμα E2 Το ρεύμα που περνά από τις αντιστάσεις σε σειρά δίνεται από τον τύπο Όπου i vs Req Req = Rn = η συνολική αντίσταση, vs = η τάση της πηγής. Η πτώση τάσης σε κάθε αντίσταση δίνεται από τον τύπο 8 vn Rn i

110 s Η ισχύς που καταναλώνετε σε κάθε αντίσταση δίνεται από τον τύπο Pn vni Λύση: Τα αποτελέσματα του προγράμματος πάρθηκαν με τα παρακάτω δεδομένα: Vs=2 V, R= Ω, R2=7 Ω, R3=6 Ω, R4=9 Ω, R5=4 Ω, R6=7.5 Ω, R7=5 Ω %= = = = = = = = = = = = = = = mat_script2.m = = = = = = = = = = = = % THIS PROGRAM CALCULATES THE VOLTAGE AND THE POWER ACROSS EACH RESISTOR % IN A CIRCUIT THAT HAS RESISTORS CONNECTED IN SERIES vs=input('enter the source voltage:'); rn=input('enter values of resistors as elements in a row vector\n'); req=sum(rn); % CALCULATING EQUIVALENT RESISTANCE i=vs/req; % CALCULATE CURRENT IN THE CIRCUIT vn=rn*i; % APPLY VOLTAGE DIVIDE RULE pn=vn*i; % CALCULATING POWER IN EACH RESISTOR ptotal=vs*i; % CALCULATE POWER IN THE CIRCUIT table=[rn',vn',pn'];% CREATE TABLE disp(' Resistance Voltage Power') %DISPLAY HEADINGS FOR COLUMNS disp(' (ohms) (volts) (watts)') disp(table) % DISPLAY THE VARIABLE TABLE fprintf ('The current in the circuit is %f amp',i) fprintf('\nthe total power dissipated in the circuit is %f watts\n',ptotal) %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Έξοδος στο Command Window της MATLAB: Enter the source voltage:2 Enter values of resistors as elements in a row vector [ ] Resistance Voltage Power (ohms) (volts) (watts) The current in the circuit is amp The total power dissipated in the circuit is watts Εφαρμογή 3 Προσδιορίστε την τάση σε κάθε κόμβο του κυκλώματος του Σχήματος Ε3. 9

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

112 όπου Μπορούμε να βρούμε τις άγνωστες μεταβλητές VB και VC λύνοντας την παρακάτω εξίσωση χρησιμοποιώντας την MATLAB. %= = = = = = = = = = mat_script3.m = = = = = = = = = = clear V_ = 2; R_ = 33; R_2 = 7; R_3 = 6; R_4 = 27; B = [/R_+/R_3+/R_4 -/R_3; -/R_3 /R_3+/R_2] A= [V_/R_; V_/R_2] C=inv(B)*A %= = = = = = = = = = = = = = = = = = = = = = = = = = = = Εφαρμογή 4 Προσδιορίστε την τάση σε κάθε κόμβο του κυκλώματος του Σχήματος Ε4.

113 Σχήμα Ε4 Για το κύκλωμα του Σχήματος Ε4 μπορούμε να γράψουμε τις παρακάτω εξισώσεις : και μπορούν να γραφούν ως εξής: Οι τελευταίες εξισώσεις μπορούν να γραφούν σε μορφή πινάκων όπως παρακάτω: όπου 2

114 Μπορούμε να βρούμε τις άγνωστες μεταβλητές VΑ, VB και VC λύνοντας την παρακάτω εξίσωση χρησιμοποιώντας την MATLAB. %= = = = = = = = = = = = mat_script4.m = = = = = = = = = = = clear V_= 2; I_=.2; R_= 8; R_2= 7; R_3=6; R_4=9; A=[I_;I_;V_] B=[-/R_ /R_3+/R_ -/R_3; /R_2 /R_4; -] C=inv(B)*A %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 3

115 Εφαρμογή 5 Προσδιορίστε την τάση σε κάθε κόμβο του κυκλώματος του Σχήματος Ε5. Σχήμα Ε5 Για το κύκλωμα του Σχήματος Ε5 μπορούμε να γράψουμε τις παρακάτω εξισώσεις : αυτές μπορούν να γραφούν και ως εξής: Οι τελευταίες εξισώσεις μπορούν να γραφούν σε μορφή πινάκων όπως παρακάτω: όπου 4

116 Μπορούμε να βρούμε τις άγνωστες μεταβλητές VΑ, VB, VC και VD λύνοντας την παρακάτω εξίσωση χρησιμοποιώντας την MATLAB. %= = = = = = = = = = = = mat_script5.m = = = = = = = = = = = clear V_= 2 V_2= 3 R_= 9 R_2= 68 R_3= 8 R_4= 22 A=[; ; V_; V_2;] B=[/R_ /R_3 /R_3 ; /R_4 - ; - ] -/R_3-/R_4; C=inv(B)*A %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 5

117 Εφαρμογή 6 Εύρεση της ισοδύναμη αντίστασης ενός κυκλώματος: Υπολογίστε την ισοδύναμη αντίσταση του κυκλώματος του Σχήματος Ε6 στα σημεία Α και Β. Σχήμα Ε6 Η ισοδύναμη αντίσταση του κυκλώματος του Σχήματος Ε6 μπορεί να υπολογιστεί, αναγνωρίζοντας ότι οι αντιστάσεις R+R2 είναι συνδεδεμένες παράλληλα με την αντίσταση R5 και επίσης με τις αντιστάσεις R3+R4. %= = = = = = = = = = = = mat_script6.m = = = = = = = = = = = = clear R_= 8; R_2= 7; R_3= 6; R_4= 9; R_5= ; Req_x= parallel( R_+R_2, R_5) Req= parallel( R_3+R_4, Req_x) %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Το script parallel.m είναι ένα αρχείο m-function πού υπολογίζει την ισοδύναμη αντίσταση ενός παράλληλου συνδυασμού δύο αντιστάσεων R και R2. 6

118 %= = = = = = = = = = = = = = parallel.m = = = = = = = = = = = = function R_eq=parallel(R,R2) % function R_eq=parallel(R,R2) R_eq=(R.*R2)./(R+R2); %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Εφαρμογή 7 Υπολογίστε την ισοδύναμη αντίσταση του κυκλώματος του Σχήματος Ε7 στα σημεία Α και Β. Σχήμα Ε7 Για το κύκλωμα του Σχήματος Ε7 μπορούμε να γράψουμε τις παρακάτω εξισώσεις: που μπορούν να γραφούν και ως εξής: 7

119 Οι τελευταίες εξισώσεις μπορούν να γραφούν σε μορφή πινάκων όπως παρακάτω: όπου Μπορούμε να βρούμε τις άγνωστες μεταβλητές Vt, VY και VZ λύνοντας την παρακάτω εξίσωση χρησιμοποιώντας την MATLAB. Η ισοδύναμη αντίσταση είναι: %= = = = = = = = = = = = mat_script7.m = = = = = = = = = = = = clear I_t= R_= R_2= 4 R_3= 7 R_4= 7 R_5= 5 A=[I_t; I_t; ] 8

120 B=[/R_+/R_4 -/R_ -/R_4; /R_5 /R_3; -/R_ /R_+/R_2+/R_5 -/R_2] C=inv(B)*A Req=C() %= = = =================================== Εφαρμογή 8 Υπολογίστε την ισοδύναμη αντίσταση του κυκλώματος του Σχήματος Ε8α στα σημεία Α και Β. Σχήμα Ε8α κύκλωμα αντιστάσεων. Σχήμα Ε8β Υπολογισμός της ισοδύναμης αντίστασης μεταξύ των σημείων Α και Β. Η αντίσταση μεταξύ των σημείων Α και Β είναι ίση με: όπου Vt είναι η τάση στα άκρα της πηγής ρεύματος που φαίνεται στο Σχήμα Ε8, δηλαδή It =A. Για το κύκλωμα του Σχήματος Ε8 μπορούμε να γράψουμε τις παρακάτω εξισώσεις: 9

121 Δεδομένου ότι όλες οι αντιστάσεις είναι ίσες, μπορούμε να γράψουμε την προηγούμενη σειρά των εξισώσεις ως ακολούθως: Οι τελευταίες εξισώσεις μπορούν να γραφούν σε μορφή πινάκων όπως παρακάτω: όπου 2

122 Μπορούμε να βρούμε τις άγνωστες μεταβλητές λύνοντας την παρακάτω εξίσωση: %= = = = = = = = = = = = mat_script8.m = = = = = = = = = = = = clear I_t= R= A=[I_t; I_t; ; ; ; ; ] B=[3/R -/R -/R /R /R /R ; -/R 3/R -/R -/R ; -/R -/R 3/R -/R ; -/R -/R 3/R -/R ; -/R 3/R -/R ; 2 ;

123 -/R -/R 3/R ] C=inv(B)*A Req=C() %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Εφαρμογή 9 Στο κύκλωμα του Σχήματος Ε9 η αντίσταση R= Ωhm και μεταβάλουμε την πηγή ρεύματος από -Α, αυξάνοντας κάθε φορά το ρεύμα κατά 2Α [:2:]. Να γραφεί αρχείο script στη MATLAB, που να υπολογίζει σε ένα πίνακα τις τιμές της τάσης στα άκρα της και την ισχύ που καταναλώνει κάθε φορά η αντίσταση αυτή. Δίνονται οι τύποι: Σχήμα Ε9 Λύση: MATLAB Script %= = = = = = = = = = = = mat_script9.m = = = = = = = = = = = % Voltage and power calculation R=; % Resistance value i=[:2:]; % Generate current values v=i.*r; % array multiplication to obtain voltage p=(i.^2)*r; % power calculation sol=[i v p] % current, voltage and power values are printed %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Έξοδος στο Command Window της MATLAB: sol = Columns through Columns 7 through 2 2 Columns 3 through

124 Columns through 6 : Είναι οι τρέχουσες τιμές της πηγής ρεύματος. Columns 7 through 2 : Είναι οι τιμές της τάσης στα άκρα της αντίστασης. Columns 3 through 8: Είναι οι τιμές ισχύος που καταναλώνει η αντίσταση. Εφαρμογή Να γραφτεί ένα αρχείο function στη MATLAB που να υπολογίζει την ισοδύναμη αντίσταση των αντιστάσεων, R, R2, R3,..., Rn οι οποίες συνδέονται σε σειρά. Λύση: MATLAB Script %= = = = = = = = = = = = = = = = equiv_sr.m = = = = = = = = = = = = = = = function req = equiv_sr(r) % equiv_sr is a function program for obtaining % the equivalent resistance of series % connected resistors % usage: req = equiv_sr(r) % r is an input vector of length n % req is an output, the equivalent resistance(scalar) % n = length(r); % number of resistors req = sum (r); % sum up all resistors %= = = = = = = = = = = = = = = = = = = = = = = = = = = = == = = = = = = = = Ας υποθέσουμε ότι θέλουμε να βρούμε την ισοδύναμη αντίσταση των αντιστάσεων σε σειρά με τιμές, 2, 5, 6 και 5 ohm. Αυτό που θα πρέπει να πληκτρολογήσουμε στο Command Window της MATLAB για να εκτελέσουμε το αρχείο equiv_sr είναι τα εξής: r = [ ]; Rseries = equiv_sr(r) Το αποτέλεσμα που θα πάρουμε στο Command Window της MATLAB θα είναι: Rseries = 66 Εφαρμογή Έστω ένας φορτισμένος πυκνωτής με 6V ο οποίος εκφορτίζεται σύμφωνα με τη 2 t σχέση y 6e. Να γραφεί αρχείο script στη MATLAB, που να απεικονίζει την εκφόρτιση αυτή σε χρόνο από -4sec με βήμα,5sec.το γράφημα θα έχει σαν τίτλο 'Response of an RC circuit'. Στον αξονα x θα αναγράφετε 'time in seconds' ενώ στον άξονα y 'voltage in volts'. Το γράφημα θα διαθέτει πλέγμα. 23

125 Λύση: MATLAB Script %= = = = = = = = = = = = mat_script.m = = = = = = = = = = t=:.5:4; y=6*exp(-2*t); plot(t,y) title('response of an RC circuit') xlabel('time in seconds') ylabel('voltage in volts') grid %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Σχήμα Ε Εφαρμογή 2 Έστω ένα κύκλωμα R-L με τάση v(t)=cos(377t) και ρεύμα i(t)=5cos(377t+6o). Να γραφεί αρχείο script στη MATLAB, που να απεικονίζει σε γράφημα την τάση v(t) και το ρεύμα i(t) για χρόνο από t= έως 2 msec. Επίσης να περιλαμβάνει όλες τις λεπτομέρειες που φαίνονται στο Σχήμα Ε2 όπως τίτλο, ετικέτες στους άξονες x και y, αλλά και τα σημεία που φαίνονται στο γράφημα * για την τάση ο για το ρεύμα. Τέλος να υπάρχει το διευκρινιστικό v(t) για την τάση και i(t) για το ρεύμα στα σημεία που φαίνονται στο γράφημα. 24

126 Σχήμα Ε2 Λύση: MATLAB Script %= = = = = = = = = = = = mat_script2.m = = = = = = = = = = = % RL circuit % current i(t) and voltage v(t) are generated; t is time t = :e-3:2e-3; v = *cos(377*t); a_rad = (6*pi/8); % angle in radians i = 5*cos(377*t + a_rad); plot(t,v,'*',t,i,'o') title('voltage and Current of an RL circuit') xlabel('sec') ylabel('voltage(v) and Current(mA)') text(.3,.5, 'v(t)'); text(.9,2, 'i(t)') %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Εφαρμογή 3 Στο παρακάτω κύκλωμα να βρεθούν οι κομβικές τάσεις V, V2 και V3. 25

127 Σχήμα Ε3 Λύση: Χρησιμοποιώντας τους κανόνες του Kirchhοff και υποθέτοντας ότι τα ρεύματα που εξέρχονται από ένα κόμβο είναι θετικά, έχουμε: Για τον κόμβο V V 2 V V ή (.27),5V,V2, 5V3 5 Για τον κόμβο 2 V 2 V V 2 V 2 V ή (.28),V,45V2, 25V3 Για τον κόμβο 3 V 3 V V 3 V ή, 5V, 25V2, 75V (.29)

128 Σε μορφή πινάκων θα έχουμε,,5,,45, 5, 25, 5 V, 25 V2, 75 V3 (.3) Το πρόγραμμα στη MATLAB για να βρούμε τις κομβικές τάσεις θα είναι: %= = = = = = = = = = = = mat_script3.m = = = = = = = = = = = % % % % Y program computes the nodal voltages given the admittance matrix Y and current vector I Y is the admittance matrix and I is the current vector initialize matrix y and vector I using YV=I form = [ ; ; ]; I = [5;;2]; % solve for the voltage fprintf('nodal voltages V, V2 and V3 are \n') v = inv(y)*i %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Τα αποτελέσματα στο Command Window της MATLAB θα είναι: Nodal voltages V, V2 and V3, v = Εφαρμογή 4 Να βρεθούν οι κομβικές τάσεις V, V2,V3 και V4 του κυκλώματος που ακολουθεί. Σχήμα Ε4 Κύκλωμα με Εξαρτημένες και ανεξάρτητες πηγές Λύση: 27

129 Χρησιμοποιώντας τους κανόνες του Kirchhοff και υποθέτοντας ότι τα ρεύματα που εξέρχονται από ένα κόμβο είναι θετικά, έχουμε: Για τον κόμβο V V V2 V V ή (.3), 75V, 2V2,5V4 5 Για τον κόμβο 2 V2 V3 I X Όμως IX (V V4 ) 2 Έτσι V2 V3 (V V4 ) 2 οπότε θα έχουμε 5V V2 V3 5V4 (.32) Από τους υπερκόμβους 2 & 3 έχουμε V3 V2 V V2 V3 V Άρα μπορούμε να γράψουμε, 2V, 45V2,667V3, 6667V4 (.33) Στον κόμβο 4 έχουμε V4 (.34) Σε μορφή πινάκων θα έχουμε 28

130 , 75, 2 5, 2, 45,667,5 V 5 V 2 5, 6667 V 3 V 4 (.35) Το πρόγραμμα στη MATLAB για να βρούμε τις κομβικές τάσεις θα είναι: %= = = = = = = = = = = = mat_script4.m = = = = = = = = = = = = % % % % % Y this program computes the nodal voltages given the admittance matrix Y and current vector I Y is the admittance matrix I is the current vector initialize the matrix y and vector I using YV=I = [ ; -5-5; ; ]; % current vector is entered as a transpose of row vector I = [5 ]'; % solve for nodal voltage fprintf('nodal voltages V,V2,V3,V4 are \n') V = inv(y)*i %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Τα αποτελέσματα στο Command Window της MATLAB θα είναι: Nodal voltages V,V2,V3,V4 are V = Εφαρμογή 5 Στο κύκλωμα του Σχήματος Ε5α χρησιμοποιείστε την ανάλυση βρόχων για να βρείτε, το ρεύμα που περνάει μέσα από την αντίσταση. Επιπλέον να βρεθεί η ισχύς που παρέχετε από την πηγή τροφοδοσίας των V. 29

131 Σχήμα Ε5α Κύκλωμα Λύση: Χρησιμοποιώντας την ανάλυση βρόχων και σχεδιάζοντας τα ρεύματα βρόχων I, I2, I3 στο Σχήμα 5Εβ θα έχουμε: Σχήμα Ε5β Ανάλυση βρόχων Σημειώνετε ότι Ι = Ι3 Ι2 ενώ η ισχύς της πηγής θα είναι P = I Οι εξισώσεις των βρόχων θα είναι: Βρόχος (.36) Βρόχος 2 (.37) 3

132 Βρόχος 3 (.38) Σε μορφή πινάκων θα έχουμε (.39) Το πρόγραμμα στη MATLAB που υπολογίζει τα ρεύματα των βρόχων Ι, Ι2, Ι3, του ρεύματος I και την ισχύ της πηγής τροφοδοσίας των V θα είναι: %= = = = = = = = = = = = mat_script5.m = = = = = = = = = = = = % % % % % % % Z this program determines the current flowing in a resistor RB and power supplied by source it computes the loop currents given the impedance matrix Z and voltage vector V Z is the impedance matrix V is the voltage matrix initialize the matrix Z and vector V = [4 - -3; - 3-5; ]; V = [ ]'; % solve for the loop currents I = inv(z)*v; % current through RB is calculated IRB = I(3) - I(2); fprintf('the current through R is %8.3f Amps \n',irb) % the power supplied by source is calculated PS = I()*; fprintf('the power supplied by V source is %8.4f watts \n',ps) %= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Σημείωση: Στην εντολή fprintf το %8.3f ή το %8.4f καθορίζει πόσα ψηφία θα τυπωθούν στο Command Window της MATLAB πριν και μετά την υποδιαστολή. Τα αποτελέσματα στο Command Window της MATLAB θα είναι: the current through R is.37 Amps the power supplied by V source is watts 3

133 Εφαρμογή 6 Να βρεθεί η ισχύς που καταναλώνει η αντίσταση των 8Ω και το ρεύμα που παρέχει η πηγή τάσης των V, στο κύκλωμα του Σχήματος 6Εα. Σχήμα 6Εα Κύκλωμα Λύση: Χρησιμοποιώντας την ανάλυση βρόχων και σχεδιάζοντας τα ρεύματα βρόχων I, I2, I3 στο Σχήμα 6Εβ θα έχουμε: Σχήμα 6Εβ Ανάλυση βρόχων Παρατηρώντας το κύκλωμα βλέπουμε ότι: (.4) Για τον βρόχο 32

134 (.4) Για τον βρόχο 2 Χρησιμοποιώντας την Εξίσωση (.4), η ανωτέρω εξίσωση μπορεί να γραφεί: (.4) Για τον βρόχο 3 Χρησιμοποιώντας την Εξίσωση (.4), η ανωτέρω εξίσωση μπορεί να γραφεί: (.4) Οι εξισώσεις μπορούν να εκφραστούν σε μορφή πινάκων ως εξής (.42) Η ισχύς που καταναλώνετε από την αντίσταση των 8Ω θα είναι: Το ρεύμα που παρέχεται από την πηγή τάσης των V θα είναι: Το πρόγραμμα εύρεσης της ισχύος που καταναλώνετε από την αντίσταση των 8Ω και του ρεύματος που παρέχεται από την πηγή τάσης των V στη MATLAB θα είναι: %= = = = = = = = = = = = mat_script6.m = = = = = = = = = = = = 33

Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος

Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος Εισαγωγή στη Γεώργιος Γεωργίου & Χρίστος Ξενοφώντος Τμήμα Μαθηματικών και Στατιστικής Πανεπιστήμιο Κύπρου Μάϊος 7 . ΕΙΣΑΓΩΓΗ Το MATLAB είναι ένα σύγχρονο ολοκληρωμένο μαθηματικό λογισμικό πακέτο που χρησιμοποιείται

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

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

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

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

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

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

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

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

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

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

Χρονικές σειρές 5 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ (2) Μ-Files

Χρονικές σειρές 5 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ (2) Μ-Files Χρονικές σειρές 5 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ (2) Μ-Files Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό

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

1 ΕΙΣΑΓΩΓΗ MATLAB MATtrix LABoratory διαδραστικό help

1 ΕΙΣΑΓΩΓΗ MATLAB MATtrix LABoratory διαδραστικό help 1 ΕΙΣΑΓΩΓΗ Το MATLAB είναι ένα σύγχρονο ολοκληρωμένο μαθηματικό λογισμικό πακέτο που χρησιμοποιείται σε πανεπιστημιακά μαθήματα αλλά και ερευνητικές και άλλες εφαρμογές με επιστημονικούς υπολογισμούς (scientific

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

Εισαγωγή στη MATLAB 0.5 -0.5 -1-2 Γ. ΓΕΩΡΓΙΟΥ - Χ. ΞΕΝΟΦΩΝΤΟΣ. Λευκωσία 2007

Εισαγωγή στη MATLAB 0.5 -0.5 -1-2 Γ. ΓΕΩΡΓΙΟΥ - Χ. ΞΕΝΟΦΩΝΤΟΣ. Λευκωσία 2007 Εισαγωγή στη MATLAB.5 -.5 - - - - Γ. ΓΕΩΡΓΙΟΥ - Χ. ΞΕΝΟΦΩΝΤΟΣ Λευκωσία 7 Γιώργος Γεωργίου & Χρίστος Ξενοφώντος, 7. ISBN 978-9963-644-57-5 Kantzilaris Nicosia, Cyprus 7 Αφιερώνεται στους φοιτητές και τις

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

Μπορούμε, επίσης, να ανοίξουμε τον editor της MATLAB και με την εντολή

Μπορούμε, επίσης, να ανοίξουμε τον editor της MATLAB και με την εντολή 3 M-FILES Για να εκμεταλλευτούμε πλήρως τις δυνατότητες της MATLAB, πρέπει να μάθουμε πώς να δημιουργούμε μεγάλες και συχνά πολύπλοκες ακολουθίες εντολών. Ο καλύτερος τρόπος για να επιτύχουμε αυτό το στόχο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011

Εισαγωγή στο Matlab Μέρος Α. Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Μέρος Α Κυριακίδης Ιωάννης 2011 Εισαγωγή στο Matlab Το όνομα του προέρχεται από τα αρχικά γράμματα των λέξεων MATtrix LABoratory (εργαστήριο πινάκων). To MATLAB (MathWorks Inc.) παρέχει

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 4 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

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

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

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

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα 1 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα: ΜΑΘΑΙΝΟΝΤΑΣ ΤΟ MATLAB, ΜΕΡΟΣ Α Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2)

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2) Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2) Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική σχολή, Α.Π.Θ. & Οικονομικό Τμήμα,

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

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

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

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

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

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

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

Χρονικές σειρές 6 o μάθημα: M-Files (συνέχεια) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB - Bρόγχοι for

Χρονικές σειρές 6 o μάθημα: M-Files (συνέχεια) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB - Bρόγχοι for Χρονικές σειρές 6 o μάθημα: M-Files (συνέχεια) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB - Bρόγχοι for Εαρινό εξάμηνο 2018-2019 Τμήμα Μαθηματικών ΑΠΘ Διδάσκουσα: Αγγελική Παπάνα Μεταδιδακτορική Ερευνήτρια Πολυτεχνική

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

Το παράθυρο έναρξης του Μatlab

Το παράθυρο έναρξης του Μatlab Εισαγωγή στο Matlab Το παράθυρο έναρξης του Μatlab Αν οποιοδήποτε από αυτά τα παράθυρα είναι κρυμμένο μπορείτε να το εμφανίσετε από το menu με όνομα Desktop. Desktop > Desktop Layout > Default Ένα παράθυρο

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

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

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

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

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

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

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

Αλληλεπίδραση με το Matlab

Αλληλεπίδραση με το Matlab Αλληλεπίδραση με το Matlab Περιγραφή της διαδικασίας πως εργαζόμαστε με το Matlab, και της προετοιμασίας και παρουσίασης των αποτελεσμάτων μιας εργασίας με το Matlab. Ειδικότερα θα συζητήσουμε μερικά στοιχεία

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

Εισαγωγή στο GNU Octave/MATLAB

Εισαγωγή στο GNU Octave/MATLAB Εισαγωγή στο GNU Octave/MATLAB Δρ. Βασίλειος Δαλάκας Καλώς ήρθατε στο εργαστήριο Σημάτων και Συστημάτων με το λογισμικό Octave (Οκτάβα). Οι σημειώσεις αυτές έχουν βασιστεί στις σημειώσεις του εργαστηρίου

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

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

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

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

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

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

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

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

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

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

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 2. Έστω x = [2 5 1 6] α. Προσθέστε το 16 σε κάθε στοιχείο β. Προσθέστε το 3 σε κάθε στοιχείο που βρίσκεται σε μονή θέση.

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

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

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

ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ

ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ ΗΜΥ 100 ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΤΕΧΝΟΛΟΓΊΑ Δρ. Στέλιος Τιμοθέου ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΑ ΘΕΜΑΤΑ ΜΑΣ ΣΗΜΕΡΑ Εισαγωγή στον Προγραμματισμό Λογικό

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

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

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

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

SPSS Statistical Package for the Social Sciences

SPSS Statistical Package for the Social Sciences SPSS Statistical Package for the Social Sciences Ξεκινώντας την εφαρμογή Εισαγωγή εδομένων Ορισμός Μεταβλητών Εισαγωγή περίπτωσης και μεταβλητής ιαγραφή περιπτώσεων ή και μεταβλητών ΣΤΑΤΙΣΤΙΚΗ Αθανάσιος

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

Χρονικές σειρές 9 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (3) ΓΡΑΦΗΜΑΤΑ

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

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

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

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

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

Γνωρίστε το Excel 2007

Γνωρίστε το Excel 2007 Εισαγωγή τύπων Γνωρίστε το Excel 2007 Πληκτρολογήστε το σύμβολο της ισότητας (=), χρησιμοποιήστε ένα μαθηματικό τελεστή (+,-,*,/) και πατήστε το πλήκτρο ENTER. Πρόσθεση, διαίρεση, πολλαπλασιασμός και αφαίρεση

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

Εφαρμογές Η/Υ στη Χρηματοοικονομική. Εργαστήριο ΙI. Διδάσκων Καθηγητής: Αχιλλέας Ζαπράνης. Επιμέλεια Σημειώσεων: Ευστράτιος Λιβάνης

Εφαρμογές Η/Υ στη Χρηματοοικονομική. Εργαστήριο ΙI. Διδάσκων Καθηγητής: Αχιλλέας Ζαπράνης. Επιμέλεια Σημειώσεων: Ευστράτιος Λιβάνης Εφαρμογές Η/Υ στη Χρηματοοικονομική Εργαστήριο ΙI Διδάσκων Καθηγητής: Αχιλλέας Ζαπράνης Επιμέλεια Σημειώσεων: Ευστράτιος Λιβάνης 1.1 Εισαγωγή Το αντικείμενο αυτού του εργαστηρίου είναι η δημιουργία αρχείων

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB Κολοβού Αθανασία Ε.Τ.Ε.Π. http://users.uoa.gr/~akolovou/ MATRIX LABORATORY Μαθηματικό λογισμικό πακέτο Everything is a matrix Εύκολο να ορίσουμε τους πίνακες >> A = [6 3; 5 0] A = 6

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

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

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

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 5 ο : MATLAB

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 5 ο : MATLAB Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Εργαστήριο 5 ο : MATLAB Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες

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

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

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

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

Βασικά στοιχεία στο Matlab

Βασικά στοιχεία στο Matlab Αριθμητική : + - * / ^ 3ˆ2 - (5 + 4)/2 + 6*3 >> 3^2 - (5 + 4)/2 + 6*3 22.5000 Βασικά στοιχεία στο Matlab Το Matlab τυπώνει την απάντηση και την καταχωρεί σε μια μεταβλητή που την ονομάζει ans. Αν θέλουμε

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Εργαστήριο 2: Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραμματισμού

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

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

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

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

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #5: Διαγράμματα ροής (Flow Charts), Δομές επανάληψης Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Διαγράμματα ροής (Flow Charts), Δομές επανάληψης

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

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

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

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 1 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ email: leo@mail.ntua.gr url: http://users.ntua.gr/leo Μελάς Ιωάννης Υποψήφιος

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

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ 11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ 11.1 Γενικά περί συνήθων διαφορικών εξισώσεων Μια συνήθης διαφορική εξίσωση (ΣΔΕ) 1 ης τάξης έχει τη μορφή dy d = f (, y()) όπου f(, y) γνωστή και y() άγνωστη συνάρτηση.

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α Σπυρόπουλος Α Μπουντουβής Αθήνα, 2015 v13_061015 Στον οδηγό αυτό θα χρησιμοποιηθούν

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL )Βασικά στοιχεία Αναγνωριστικά (Identifiers) Τα αναγνωριστικά είναι ονόματα με τα οποία μπορούμε να αναφερόμαστε σε αποθηκευμένες

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

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

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

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

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

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ. Δημητρακάκης Σύνοψη Μαθήματος Προηγούμενο μάθημα Αλγόριθμοι

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

Στοιχειώδης προγραμματισμός σε C++

Στοιχειώδης προγραμματισμός σε C++ Στοιχειώδης προγραμματισμός σε C++ Σύντομο Ιστορικό. Το πρόγραμμα Hello World. Ο τελεστής εξόδου. Μεταβλητές και δηλώσεις τους. Αντικείμενα, μεταβλητές, σταθερές. Ο τελεστής εισόδου. Θεμελιώδεις τύποι.

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

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS. Εισαγωγή στη JAVA Σύντομο Ιστορικό Η Java και το διαδίκτυο Το πρώτο απλό πρόγραμμα σε JAVA Μεταβλητές και σταθερές Παραστάσεις και εντολές Οι βασικοί τύποι δεδομένων στη Java Οι βασικοί Τελεστές στη Java

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Προγραμματισμός στο Matlab

Προγραμματισμός στο Matlab Κλάδοι με την εντολή if Προγραμματισμός στο Matlab Σαν ένα απλό παράδειγμα κλάδου με την εντολή if ας θεωρήσουμε το παρακάτω παράδειγμα που υπολογίζει την απόλυτη τιμή ενός πραγματικού αριθμού. function

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB) Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

1.4 Αριθμητική υπολογιστών και σφάλματα

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΠΙΣΤΗΜΟΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΜΟΥΣ Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΕΠΙΣΤΗΜΟΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΜΟΥΣ Βασικές Έννοιες και Μαθηματικές Συναρτήσεις Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD MATLAB Προέρχεται από

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

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

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Εισαγωγή στο περιβάλλον Code::Blocks

Εισαγωγή στο περιβάλλον Code::Blocks Εισαγωγή στο περιβάλλον Code::Blocks Στο παρόν εγχειρίδιο παρουσιάζεται η διαδικασία ανάπτυξης, μεταγλώττισης και εκτέλεσης ενός προγράμματος C στο περιβάλλον του Code::Blocks. Η διαδικασία αυτή παρουσιάζεται

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

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

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

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ Matlab functions Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ Μ-files Στο Matlab μπορούμε να εκτελούμε μία σειρά από εντολές οι οποίες βρίσκονται αποθηκευμένες σε αρχεία τύπου *.m

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

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

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

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

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

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

Παράδειγμα για διαχείριση strings

Παράδειγμα για διαχείριση strings Παράδειγμα για διαχείριση strings Ας υποθέσουμε ότι έχουμε ένα string που αποτελείται από μια γωνία ακολουθούμενη από ένα γράμμα ή d για μοίρες ή r για ακτίνια. Για παράδειγμα μπορεί να είναι ένα string

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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