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

Σχετικά έγγραφα
Εισαγωγικές σημειώσεις στο Matlab

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

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

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

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

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

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

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

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

Ανάπτυξη και Σχεδίαση Λογισμικού

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

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

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

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

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

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

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Οι εντολές ελέγχου της ροής ενός προγράμματος.

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

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

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

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

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

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

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

7.1 Αλφάβητο. 7.2 Τύποι δεδομένων. 7.3 Σταθερές. 7.4 Μεταβλητές. 7.5 Αριθμητικοί τελεστές. 7.6 Συναρτήσεις. 7.7 Αριθμητικές εκφράσεις. 7.

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

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

Προγραμματισμός ΙI (Θ)

Βασικές έννοιες προγραμματισμού

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

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

Η γλώσσα προγραμματισμού Strange

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

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

Θέματα Προγραμματισμού Η/Υ

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

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

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


Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Υπολογισμός αθροισμάτων

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

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

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

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Transcript:

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

Εισαγωγή Στα εργαστήρια θα ασχοληθούμε με την υλοποίηση των αριθμητικών μεθόδων που βλέπουμε στο θεωρητικό μέρος του μαθήματος, ώστε να δούμε την πρακτική τους εφαρμογή. Μιας και το θεωρητικό με το πρακτικό μέρος της Αριθμητικής Ανάλυσης πρέπει και είναι αλληλένδετα. Απαραίτητα εφόδια για το εργαστηριακό κομμάτι, είναι η καλή γνώση της θεωρίας καθώς και οι στοιχειώδεις γνώσεις προγραμματισμού. Βασικό μας εργαλείο θα είναι το Matlab, ένα διαδραστικό περιβάλλον που μας παρέχει τη δυνατότητα αριθμητικών υπολογισμών με την χρήση της δικής του γλώσσας προγραμματισμού. Δημιουργήθηκε από τον Cleve Moler την δεκαετία του 70 και έχει εξελιχθεί σε ένα πολύ πετυχημένο εμπορικό πακέτο λογισμικού, που συνεχώς βελτιώνεται. Η πληθώρα των έτοιμων συναρτήσεων αλλά και η ευκολία να δημιουργεί ο χρήστης τις δικές του, είναι ο κύριος λόγος που το Matlab είναι ισχυρό εργαλείο για όσους ασχολούνται με την Αριθμητική Ανάλυση. Στο 1 ο εργαστήριο θα ασχοληθούμε με βασικές λειτουργίες και εντολές του Matlab, οι οποίες θα μας χρειαστούν στην πορεία των εργαστηρίων. Στην εισαγωγή αυτή θα θεωρηθεί δεδομένο ότι ο φοιτητής έχει γνώση εννοιών όπως οι διαδικασίες επανάληψης ή διαδικασίες ελέγχου και θα ασχοληθεί καθαρά με το συντακτικό κομμάτι της γλώσσας που χρησιμοποιεί το πακέτο. Matlab Desktop Το παράθυρο με το οποίο έρχεται σε πρώτη επαφή ο χρήστης όταν εκκινεί το πρόγραμμα, ονομάζεται Matlab desktop. Μέρος του είναι και το command window, το βασικό μέρος αλληλεπίδρασης του με το software. Επιλέγοντας από το menu την επιλογή view και στην συνέχεια την επιλογή Desktop Layout μπορούμε να παραμετροποιήσουμε το παράθυρο ανάλογα με τις ανάγκες μας. Μπορεί το command window να είναι το μέρος που εκτελούμε τους υπολογισμούς μας με το πακέτο, αλλά βασικό εργαλείο για εμάς θα αποτελέσει ο ενσωματωμένος editor του Matlab,στον οποίο θα γράφουμε, χρησιμοποιώντας την γλώσσα προγραμματισμού, τις μεθόδους που θα υλοποιήσουμε στα πλαίσια των εργαστηρίων. Εκεί θα δημιουργούμε τον βασικό τύπο αρχείων που υποστηρίζει το πρόγραμμα. Τα λεγόμενα m-files. Τα m-files χωρίζονται σε 2 μεγάλες κατηγορίες: 1. Τα script files 2. Τα function files

Τα πρώτα μπορούμε απλοϊκά να πούμε ότι είναι όπως ένα σενάριο σε ένα θέατρο, όπου ο διερμηνέας του Matlab (interpreter) διαβάζει μια μια τις εντολές που περιέχει και τις εκτελεί. Ένα script file αλληλοεπιδρά με το περιβάλλον του πακέτου και δημιουργεί ή μεταβάλει μεταβλητές Ενώ τα δεύτερα αποτελούν μαύρα κουτιά και ο μόνος τρόπος που έχουν για να επικοινωνήσουν με το υπόλοιπο σύστημα είναι μέσω των μεταβλητών εισόδου και εξόδου που έχουν ορισθεί. Βασικά Χαρακτηριστικά Μεταβλητές Το Matlab παρέχει ένα σύνολο πρωτογενών δομών δεδομένων. Όπως floating point πίνακες και συμβολοσειρές. Αυτά είναι τα βασικά στοιχεία για να φτιάξουμε σύνθετες δομές με μέσα που μας παρέχει το πρόγραμμα. Επειδή λοιπόν το βασικό δομικό στοιχείο του Matlab είναι ο πίνακας, οι σχεδιαστές του βελτιστοποίησαν τους υπολογισμούς με πίνακες κάνοντας το έργο των προγραμματιστών ευκολότερο. Πριν χρησιμοποιήσουμε μια μεταβλητή θα πρέπει πρώτα να την αρχικοποιήσουμε. Αυτό στο Matlab γίνεται πολύ απλά. Αρκεί να της αναθέσουμε μια τιμή. Για παράδειγμα αρκεί να πληκτρολογήσουμε στο command window το παρακάτω : >> a = 1; Το αποτέλεσμα αυτής της πράξης μας είναι η δημιουργία της μεταβλητής a η οποία έχει την τιμή 1. Η μεταβλητή a είναι ένας 1x1 πίνακας. Με τον ίδιο τρόπο μπορούμε να δημιουργήσουμε μεταβλητές που θα έχουν ως τιμές : o Κενή τιμή >> b = [ ]; (πίνακας 0x0) o Συμβολοσειρά >> c = 'yes'; o Διάνυσμα >> d = [ 1 2 3]; o Δισδιάστατο πίνακα >> e = [1 0;0 1]; Όπως μπορούμε πολύ εύκολα να αντιληφθούμε για να κάνουμε ανάθεση τιμής σε μια μεταβλητή αρκεί να βάλουμε στην αριστερή πλευρά την μεταβλητή στην συνέχεια = και δεξιά την τιμή που θέλουμε. Το ελληνικό ερωτηματικό στο τέλος κάθε γραμμής λέει στο Matlab να υπολογίσει την έκφραση κάθε φορά, αλλά να μην εμφανίσει το αποτέλεσμα.

Όπως όλες οι γλώσσες προγραμματισμού, έτσι και εδώ υπάρχουν κανόνες σχετικά με τα ονόματα που μπορούμε να χρησιμοποιήσουμε. 1. Στα ονόματα των μεταβλητών γίνεται διάκριση πεζών/κεφαλαίων. Δηλαδή οι μεταβλητές Value, value, VaLuE, VALUE είναι διαφορετικές μεταξύ τους. 2. Τα ονόματα των μεταβλητών μπορούν να περιέχουν μέχρι 63 χαρακτήρες. Οι χαρακτήρες μετά τον 63 αγνοούνται 3. Τα ονόματα των μεταβλητών πρέπει να αρχίζουν με γράμμα, ακολουθούμενο από οποιοδήποτε αριθμό γραμμάτων, ψηφίων ή _ (τα κενά δεν επιτρέπονται) 4. Τα σημεία στίξης δεν επιτρέπονται 5. Όλα τα γράμματα πρέπει να ανήκουν στο λατινικό αλφάβητο Ενώ γενικά μπορούμε να χρησιμοποιήσουμε όποιο όνομα θέλουμε για τις μεταβλητές μας υπάρχει μια μικρή λίστα λέξεων που το Matlab έχει δεσμεύσει (keywords) και δεν μας επιτρέπει να τις χρησιμοποιούμε σαν ονόματα και μας εμφανίζει σφάλμα. Για να δείτε ποιες είναι αυτές οι λέξεις απλά πληκτρολογήστε την εντολή iskeyword Επιπλέον διαθέτει ένα σύνολο ειδικών μεταβλητών που έχουν μια προκαθορισμένη αρχική τιμή. Μερικές από αυτές είναι οι ακόλουθες: ans Προεπιλεγμένο όνομα που χρησιμοποιείται για αποτελέσματα pi Το π inf Αντιπροσωπεύει το άπειρο NaN Αντιπροσωπεύει μη αριθμό πχ το 0/0 i ή j Αντιπροσωπεύει την φανταστική μονάδα realmin Ο μικρότερος χρησιμοποιήσιμος θετικός πραγματικός αριθμός realmax Ο μεγαλύτερος χρησιμοποιήσιμος θετικός πραγματικός αριθμός bitmax Ο μικρότερος χρησιμοποιήσιμος ακέραιος, σε μορφή διπλής ακρίβειας (σε μετέπειτα εκδόσεις χρησιμοποιούμε την flintmax) Όλες αυτές οι μεταβλητές αν τους εκχωρήσουμε μια νέα τιμή θα κρατήσουν την καινούρια. Αν θέλουμε να επανέλθει η προκαθορισμένη τιμή, είτε θα κάνουμε χρήση της εντολής clear είτε θα κλείσουμε το Matlab. Πράξεις Το Matlab μας δίνει την δυνατότητα να κάνουμε βασικές μαθηματικές πράξεις όπως θα κάναμε με μια αριθμομηχανή, είτε χρησιμοποιώντας μόνο αριθμούς είτε και μεταβλητές που τις έχουμε αρχικοποιήσει με μια τιμή, τέτοια ώστε να έχει νόημα η πράξη.

Οι γνωστές μας πράξεις γίνονται με την χρήση των τελεστών (+, -, *, /, ^), ενώ η σειρά υπολογισμού των πράξεων καθορίζεται από τους συνήθεις κανόνες προτεραιότητας. Εκτός από τις παραδοσιακές πράξεις το Matlab υποστηρίζει σχεσιακές και λογικές πράξεις. Ως είσοδοι σε όλες τις σχεσιακές και λογικές παραστάσεις, οι μη μηδενικές τιμές θεωρούνται αληθείς και οι μηδενικές ψευδείς. Τα αποτελέσματα τέτοιων πράξεων παίρνουν τιμές 1 και 0. Σχεσιακοί Τελεστές Matlab Μαθηματικό Σύμβολο > > < < >= <= == = ~= Πολύ προσοχή, όταν θέλουμε να συγκρίνουμε 2 τιμές χρησιμοποιούμε το == το = είναι ΜΟΝΟ για ανάθεση τιμών σε μια μεταβλητή Λογικοί Τελεστές ~ ΝOT && AND OR Εντολές Εισόδου & Εξόδου Εντολή Εισόδου Για να δώσουμε στον χρήστη ενός προγράμματος την δυνατότητα να εισάγει δεδομένα όταν χρειάζεται από το πληκτρολόγιο, χρησιμοποιούμε την εντολή input. Η σύνταξη της input είναι Μεταβλητή = input('μήνυμα προς τον χρήστη') Όταν εκτελεστεί η συγκεκριμένη εντολή βλέπουμε στο command window το μήνυμα που έχουμε μέσα στην παρένθεση και περιμένει το πρόγραμμα να εισάγει ο χρήστης δεδομένα και να πατήσει enter.

Εντολές Εξόδου Για την έξοδο δεδομένων έχουμε πιο πολλές επιλογές. Αρχικά ας μιλήσουμε για την χρήση του ελληνικού ερωτηματικού ( ; ) στο τέλος των πράξεων και των εντολών. Αν δεν βάλουμε ; στο τέλος των εντολών αυτό έχει σαν αποτέλεσμα την εκτύπωση των δεδομένων μας στην οθόνη. Ακόμα και όταν κάνουμε απλά μια ανάθεση μεταβλητών. Για αυτό καλό είναι να βάζουμε πάντα ερωτηματικό και αν θέλουμε να εμφανιστεί κάτι στην οθόνη να χρησιμοποιήσουμε κάποια από τις 2 εντολές που ακολουθούν. o disp disp('μήνυμα') ή disp(μεταβλητή) Στην πρώτη περίπτωση εμφανίζεται το μήνυμα που βρίσκεται μέσα στην παρένθεση της disp. Στην δεύτερη εμφανίζεται η τιμή που έχει η μεταβλητή. Η disp δέχεται μόνο ένα όρισμα ανά κλήση, αν θέλουμε πιο σύνθετη εκτύπωση αποτελεσμάτων στην οθόνη χρησιμοποιούμε την επόμενη εντολή εξόδου. o fprintf fprintf('φόρμα ελέγχου',έκφραση1, έκφραση2,...) Η φόρμα ελέγχου καθορίζει αριθμό ορισμάτων και εκτύπωσης. Περιέχει 3 τύπους αντικειμένων. Παράδειγμα Χαρακτήρες που σχηματίζουν μηνύματα που θέλουμε να εμφανιστούν. Κώδικες μετατροπής/εκτύπωσης που εκτυπώνουν κατάλληλα την επόμενη διαθέσιμη έκφραση. Εισάγονται με % (είναι η μόνη περίπτωση που ότι ακολουθεί το % δεν θεωρείται σχόλιο). Συνηθέστεροι οι %f (κανονική μορφή), %e (εκθετική μορφή). Γενικά με %α.βf γίνεται η εκτύπωση σε α θέσεις με β δεκαδικά ψηφία Τον χαρακτήρα αλλαγής γραμμής \n a = input( Πληκτρολόγησε έναν ακέραιο ); b = input( Πληκτρολόγησε άλλον έναν ακέραιο ); disp( To αποτέλεσμα της διαίρεσης είναι ) c = a/b; disp(c) fprintf( Το αποτέλεσμα της διαίρεσης %f / %f είναι %5.3f \n,a,b,c)

Έλεγχος Ροής For Οι βρόγχοι for επιτρέπουν την επανάληψη μιας ομάδας εντολών, έναν προκαθορισμένο αριθμό φορών. Η γενική μορφή ενός for είναι for μτβ = διάνυσμα εντολές Παράδειγμα 1 Ο υπολογισμός του αθροίσματος 100 xx=1 ως εξής s=0; xx μπορεί να γίνει με τη χρήση Matlab for x = 1:100 s=s+x; Η μεταβλητή μπορεί να εμφανίζεται στην ομάδα των εντολών που θέλουμε να επαναληφθούν αλλά μπορεί και απλά να παίζει τον ρόλο του μετρητή. Παράδειγμα 2 Να εκτυπωθεί πέντε φορές η φράση Hello World for i = 1:5 disp( Hello World ) Γιατί όμως στην γενική μορφή μιλήσαμε για διάνυσμα αλλά εμείς βλέπουμε να γράφουμε παραστάσεις της μορφής αρχική τιμή : τελική τιμή ; Πολύ απλά γιατί όταν στο Matlab γράφουμε : 1:5 δημιουργούμε το διάνυσμα [1 2 3 4 5]

Οπότε η συνηθέστερη μορφή στην οποία συναντάμε την for είναι η : for μτβ = αρχική τιμή : βήμα : τελική τιμή εντολές While Άλλος ένας βρόχος που χρησιμοποιούμε όταν θέλουμε να δημιουργήσουμε μια δομή επανάληψης σε ένα πρόγραμμά μας, είναι το while. Η διαφορά του από το for είναι στο πλήθος των επαναλήψεων, οι οποίες δεν είναι προκαθορισμένες αλλά εξαρτώνται κατά πόσο παραμένει αληθής η λογική σχέση η οποία γράφεται δίπλα στο while. Πρέπει να είμαστε, προσεκτικοί όταν επιλέγουμε την λογική σχέση, γιατί μια λανθασμένη επιλογή μπορεί να οδηγήσει σε ατέρμονη επανάληψη και μη τερματισμό του βρόχου. Η γενική μορφή ενός βρόχου while είναι η ακόλουθη: while λογική παράσταση εντολές Παράδειγμα Να υπολογισθεί το άθροισμα 1 + 1 + 1 + 1 + για όσο οι όροι που 10 100 1000 προστίθενται είναι μεγαλύτεροι από το μηδέν της μηχανής s=0; x=1; while x > eps s = s + x; x = x/10; disp(s) if elseif - else Χρησιμοποιούμε τις δομές ελέγχου, όταν το ποιες εντολές θέλουμε να υλοποιηθούν στον αλγόριθμό μας, εξαρτώνται από το τι σχέσεις ισχύουν.

Παράδειγμα 1 n=input('give a number'); if n > 0 disp('positive) elseif n < 0 disp('negative') else disp('zero') Στο παράδειγμα αυτό βλέπουμε ένα πρόγραμμα πού αφού ο χρήστης δώσει έναν αριθμό, το πρόγραμμά ελέγχει αν το νούμερο που δόθηκε είναι θετικός, αρνητικός ή μηδέν και τυπώνει το αντίστοιχο μήνυμα. Πρέπει να είμαστε όμως προσεκτικοί στην σύνταξη γιατί μπορεί το πρόγραμμα που ακολουθεί στο επόμενο παράδειγμα να δίνει το ίδιο αποτέλεσμα αλλά διαφέρει και στην σύνταξη και στο νόημα. Παράδειγμα 2 n=input('give a number'); if n > 0 disp('positive) else if n < 0 disp('negative') else disp('zero') Από αυτό καταλαβαίνουμε ότι άλλο το elseif και άλλο το else if Η διαφορά γίνεται ορατή με την βοήθεια των παρακάτω διαγραμμάτων ροής, που μας επιτρέπει να αντιληφθούμε καλύτερα την διαφορά. Παράδειγμα 1 Παράδειγμα 2

Παράδειγμα 3 Να γραφεί script file που να δέχεται έναν ακέραιο και να τυπώνει την απόλυτη τιμή του. a=input( Δώσε ακέραιο ); if a >= 0 disp(a) else disp(-a) A=input( Δώσε ακέραιο ); if a < 0 a = -a; disp(a) Script Files / Functions Script Files Ενώ μπορούμε να εκτελούμε τις εντολές που θέλουμε στο command window, για περιπτώσεις που έχουμε μεγάλο πλήθος εντολών ή στην περίπτωση που θέλουμε να αλλάξουμε κάποια δεδομένα και να τρέξουμε ξανά τον κώδικά μας το Matlab προσφέρει την δυνατότητα να γράψουμε το σύνολο των εντολών μας σε ένα αρχείο κειμένου και αυτό να το διαβάσει και να τις εκτελέσει με την σειρά που θα τις εκτελούσαμε και εμείς αν τις βάζαμε μια μία στο command window. Αυτά τα αρχεία είναι τα λεγόμενα script files. Και έχουν κατάληξη.m Για να εκτελέσουμε ένα script file αρκεί στην γραμμή εντολών να γράψουμε το όνομά του χωρίς την κατάληξη.m και να πατήσουμε enter. Οι μεταβλητές που χρησιμοποιούμε σε ένα script file αλληλοεπιδρούν με το χώρο εργασίας (workspace) και είναι global μεταβλητές. Σε περίπτωση που υπάρχει μεταβλητή με το ίδιο όνομα με το αρχείο μας ο interpreter θα καλέσει την μεταβλητή και όχι το αρχείο. Το ίδιο ισχύει και στην περίπτωση που το όνομα που χρησιμοποιήσαμε είναι ενσωματωμένη συνάρτηση. Απαραίτητη προϋπόθεση να βρίσκεται στο τρέχον φάκελο του Matlab. Functions o Διαφορές συναρτήσεων με script files Μια συνάρτηση (function) στο Matlab διαφέρει με ένα script file, γιατί μπορεί να έχει παραμέτρους εισόδου και εξόδου καθώς επίσης μπορεί να κάνει χρήση τοπικών μεταβλητών. Επίσης έχει μια καλύτερα καθορισμένη δομή. o Παράμετροι Συναρτήσεων Το Matlab αυστηρά ορίζει τον μηχανισμό μέσα από τον οποίο μπορεί να μπει ή να βγει μια πληροφορία από μια συνάρτηση. Ονομάζει την πληροφορία που μπαίνει σε μια συνάρτηση Παράμετρο Εισόδου της Συνάρτησης και αντίστοιχα την πληροφορία

που επιστρέφει η συνάρτηση την ονομάζει Παράμετρο Εξόδου της Συνάρτησης. o Τοπικές Μεταβλητές Ως τοπικές μεταβλητές ορίζουμε τις μεταβλητές που βρίσκονται εντός της συνάρτησης. Κάθε συνάρτηση έχει το δικό της τοπικό name-space. Αυτό σημαίνει ότι οι μεταβλητές που ορίζουμε μέσα στην συνάρτηση δεν μπορούμε να τις δούμε και να τις επεξεργαστούμε εκτός αυτής. Αυτό έχει σαν αποτέλεσμα, να μπορούμε να δημιουργήσουμε μια τοπική μεταβλητή αλλά και μια μεταβλητή του workspace του Matlab, που θα έχουν και οι δύο το ίδιο όνομα. Μια συνάρτηση αποτελείται από 3 βασικά μέρη 1. Την γραμμή ορισμού συνάρτησης 2. Την Η1 γραμμή και το τμήμα βοήθειας 3. Το κύριο σώμα της συνάρτησης 1. Γραμμή ορισμού συνάρτησης Η πρώτη γραμμή που δεν είναι σχόλιο μιας συνάρτησης καλείται γραμμή ορισμού της. Αποτελείται από function [out1,,outm] = όνομα συνάρτησης (inp1,,inpk) Την δεσμευμένη λέξη function Τις παραμέτρους εξόδου Το όνομα της συνάρτησης Τις παραμέτρους εισόδου Το όνομα με το οποίο καλούμε την συνάρτηση καθορίζεται από το όνομα του m-file. Συνηθίζεται να δίνουμε στο m-file το ίδιο όνομα με το όνομα που χρησιμοποιούμε στην γραμμή ορισμού. 2. Η1 γραμμή και τμήμα βοήθειας Η πρώτη γραμμή σχολίων μετά την γραμμή ορισμού καλείται HELP1 ή H1.Είναι η περίληψη της συνάρτησης. Όλα τα σχόλια από την Η1 γραμμή μέχρι την πρώτη γραμμή χωρίς σχόλια είναι το τμήμα βοήθειας, και εμφανίζονται στην περίπτωση που πληκτρολογήσουμε στο command window την help ακολουθούμενη από το όνομα της συνάρτησης. 3. Κύριο σώμα συνάρτησης Το κομμάτι της συνάρτησης που περιέχει τον κώδικα με τον αλγόριθμό που υλοποιεί τη συνάρτηση μας είναι το κύριο σώμα της. Παράδειγμα Να γραφεί συνάρτηση που θα έχει σαν είσοδο έναν ακέραιο και να επιστρέφει αν την τιμή 1 αν ο ακέραιος είναι πρώτος και 0 διαφορετικά.

% Η συνάρτηση δέχεται έναν αριθμό και επιστρέφει 1 αν ο αριθμός % είναι πρώτος και 0 αν είναι σύνθετος. function p = prwtos(x) if x ~= fix(x) error('x must be integer') p = 1; if x == 1 p = 0; elseif x > 2 && rem(x,2) == 0 p = 0; else i = 3; while i < sqrt(x) + 1 if rem(x,i) == 0 p = 0; return i = i + 2; Ένα αρχείο συνάρτησης τερματίζεται με την εκτέλεση της τελευταίας γραμμής του αρχείου ή αν συναντήσουμε την εντολή return. Μια συνάρτηση μπορεί να καλέσει ένα script file αλλά οι υπολογισμοί του, γίνονται στο χώρο εργασίας της συνάρτησης και όχι σε αυτό του Matlab. Σε μια συνάρτηση μπορούμε να έχουμε και πρόσθετες συναρτήσεις (subfunctions) οι οποίες βρίσκονται στο τέλος της κύριας συνάρτησης και ακολουθούν όλους τους κανόνες των συναρτήσεων. Οι δευτερεύουσες συναρτήσεις μπορούν να κληθούν είτε από την κύρια συνάρτηση είτε από άλλη δευτερεύουσα συνάρτηση του ίδιου αρχείου αλλά όχι από άλλο m-file. Χρήσιμες Ενσωματωμένες Συναρτήσεις του Matlab abs(x) sqrt(x) sin(x) cos(x) tan(x) exp(x) log(x) rand fix(x) floor(x) ceil(x) round(x) rem(x,y) Η απόλυτη τιμή του x Η τετραγωνική ρίζα του χ Ημίτονο του χ (το χ είναι σε radians) Συνημίτονο του χ Εφαπτομένη του χ Η τιμή της ee xx Επιστρέφει τον φυσικό λογάριθμο του χ (Το ln(x)) Παράγει τυχαίο αριθμό στο [0,1], ακολουθώντας την ομοιόμορφη κατανομή Το ακέραιο μέρος του χ Ο κοντινότερος ακέραιος που είναι μικρότερος από x Ο κοντινότερος ακέραιος που είναι μεγαλύτερος από x Στρογγυλοποίηση στον κοντινότερο ακέραιο Το ακέραιο υπόλοιπο της διαίρεσης x/y

Η Εντολή plot Ο ευκολότερος τρόπος σχεδιασμού καμπύλων στο Matlab, είναι χρησιμοποιώντας τις εντολή plot. Η plot σχεδιάζει σημεία του επιπέδου. Αυτό όμως που την κάνει πολύτιμο εργαλείο σχεδιασμού γραφικών, είναι η δυνατότητα να ενώνει δοσμένα διαδοχικά σημεία. Οπότε μπορούμε να σχεδιάσουμε όποια καμπύλη επιθυμούμε, με μόνη προϋπόθεση να έχουμε κατάλληλο πλήθος σημείων προς σχεδίαση. Για παράδειγμα αν θέλουμε να σχεδιάσουμε την γραφική παράσταση της συνάρτησης ff(xx) = sin xx στο διάστημα [0 8π] αρκεί να εκτελέσουμε τα επόμενα βήματα. Καλύτερα είναι να δημιουργήσουμε function γιατί θα μας προσφέρει ευελιξία στις επιλογές μας. function draw_sinx(pedio,shmeia) % 1 h = (pedio(2)-pedio(1))/(shmeia-1); % 2 x = pedio(1):h:pedio(2); % 3 y = sin(x); % 4 plot(x,y) % 5 axis equal % 6 Στη πρώτη γραμμή δηλώνουμε ότι το m-file που δημιουργούμε είναι function και θα τη καλούμε με το όνομα draw_sinx. Επίσης δηλώνουμε ότι έχει δύο ορίσματα. Από τη δεύτερη γραμμή καταλαβαίνουμε ότι το πρώτο όρισμα είναι ένας πίνακας 1χ2, ενώ το δεύτερο είναι αριθμός. Με το πίνακα εκφράζουμε το διάστημα στο οποίο θέλουμε να σχεδιάσουμε τη καμπύλη μας, ενώ το δεύτερο δηλώνει το πλήθος των σημείων που θα χρειαστεί να υπολογισθούν για το σχεδιασμό της. Στη δεύτερη γραμμή λοιπόν υπολογίζουμε το βήμα της διαμέρισης του διαστήματος. Στη τρίτη γραμμή σχηματίζουμε όλα τα χ ενώ στην τέταρτη υπολογίζουμε τα αντίστοιχα y. Στην πέμπτη γραμμή χρησιμοποιούμε την plot για να σχεδιάσουμε τα σημεία που υπολογίσαμε πιο πάνω. Η έκτη γραμμή τους άξονες ίσους. Για draw_sinx([0,4*pi],28) Όταν πάμε να σχεδιάσουμε οτιδήποτε στη Matlab, από ένα σημείο έως ένα πολύπλοκο σχήμα, πρέπει να γνωρίζουμε ότι κάθε φορά που δίνουμε μια εντολή σχεδίασης αν υπάρχει προηγουμένως κάποιο γράφημα θα σβηστεί. Σε περίπτωση που εμείς θέλουμε να παραμείνει πρέπει να δώσουμε την εντολή hold on. Εάν δεν θέλουμε να διατηρούνται από κάποιο σημείο και πέρα τα παλιά μας σχέδια δίνουμε την εντολή hold off.