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

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

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

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

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

4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB

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

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

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

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

Γραφικές παραστάσεις (2ο μέρος)

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

5 η ΕΝΟΤΗΤΑ Γραφήματα στο MATLAB

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

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

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

Περιεχόμενα. 26 Γραφικά δύο διαστάσεων Γραφικά τριών διαστάσεων... 45

Γραφικές παραστάσεις (1ο μέρος)

4. Εισαγωγή στο Matlab

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 14

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

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

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

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

Μαρία Λουκά. Εργαστήριο Matlab Γραφικές Παραστάσεις. Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

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

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

Το πρόγραμμα συγχρηματοδοτείται 75% από το Ευρωπαϊκό κοινωνικό ταμείο και 25% από εθνικούς πόρους.

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

Στη MATLAB τα πολυώνυμα αναπαριστώνται από διανύσματα που περιέχουν τους συντελεστές τους σε κατιούσα διάταξη. Για παράδειγμα το πολυώνυμο

Για τη δημιουργία ενός διανύσματος με στοιχεία από το 0 μέχρι το 20 με βήμα το 2 (χρησιμοποιείται συνήθως για διανύσματα χρόνου) δίνουμε

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

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

Βασικά στοιχεία του MATLAB

Το πρόβλημα. Έχουμε έναν κύκλο με μοναδιαία ακτίνα. Η εξίσωσή του θα είναι:

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

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

Ηβασική δοµή δεδοµένων είναι ο πίνακας που δεν χρειάζεται να οριστεί η διάσταση του.

8 ΕΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ

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

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

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

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

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

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

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

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

2. Δισδιάστατα γραφικά

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

Στοχαστικές Στρατηγικές. διαδρομής (2)

ΠΠΜ 501: Προχωρημένη Ανάλυση Κατασκευών με Η/Υ

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

ΠΑΡΑΡΤΗΜΑ Α Εισαγωγή στο MATLAB

10 ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

2.2.7 Τίτλος στη γραφική παράσταση

M files RCL Κυκλώματα

ΠΡΟΣΟΜΟΙΩΣΗ ΦΥΣΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ - MATLAB

Εφαρμοσμένα Μαθηματικά ΙΙ Τελική Εξέταση Ι. Λυχναρόπουλος

Συναρτήσεις και διαδικασίες

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

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

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

Εισαγωγή στο Προγραμματισμό με τη PASCAL & τη Matlab Εξαμηνιαία Εργασία 2014 Μετατρέποντας AC σε DC Τάση Μέρος Β : Πορεία Εργασίας

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

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

ηµιουργία αρχείου στον matlab editor Πληκτρολόγηση ακολουθίας εντολών

ΜΑΣ 473/673: Μέθοδοι Πεπερασμένων Στοιχείων

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

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

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

Στοχαστικές Στρατηγικές. διαδρομής (3)

Χρονικές σειρές 5 Ο μάθημα: Γραμμικά στοχαστικά μοντέλα (1) Αυτοπαλίνδρομα μοντέλα Εαρινό εξάμηνο Τμήμα Μαθηματικών ΑΠΘ

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

Λογικά Διανύσματα. >>x = -3/2*pi : pi/100 : 3/2*pi; >>y = tan(x); >>plot(x, y)

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

Ασκήσεις Ρομποτικής με την χρήση του MATLAB

Εισαγωγή στο Gnuplot. Σφυράκης Χρυσοβαλάντης

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

Γραφικά περιβάλλοντα από τον χρήστη Graphical User Interfaces (GUI)

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

ΑΣΚΗΣΗ 1: ΧΡΩΜΑΤΙΚΟΣ ΚΩΔΙΚΑΣ ΑΝΤΙΣΤΑΣΕΩΝ

Στοχαστικές Στρατηγικές. διαδρομής (1)

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

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

Στασιμότητα χρονοσειρών Νόθα αποτελέσματα-spurious regression Ο έλεγχος στασιμότητας είναι απαραίτητος ώστε η στοχαστική ανάλυση να οδηγεί σε ασφαλή

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

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

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

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

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

Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel

Γενικά. Παράδειγμα 1o

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

ΜΑΣ 191. Μαθηματικά με Υπολογιστές Ενδιάμεση εργαστηριακή εξέταση 9 Απριλίου 2009

Στοχαστικές Στρατηγικές

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

Transcript:

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

Η εντολή switch Η εντολή switch-case μας δίνει τη δυνατότητα να επιλέξουμε για εκτέλεση μια ομάδα εντολών από άλλες πιθανές ομάδες. Η γενική της δομή έχει ως εξής: switch switch_expression case value_1 statement(s) case value_2 statement(s) otherwise. statement(s) end 2

Η πρώτη γραμμή περιέχει την λέξη κλειδί switch, ακολουθούμενη από το όνομα switch_expression, που θα δώσουμε εμείς, το οποίο μπορεί να είναι βαθμωτή ποσότητα, αλφαριθμητικό, ή ακόμα και μαθηματική παράσταση με προκαθορισμένες μεταβλητές που μπορεί να πάρει μια τιμή. Μετά από το switch, ακολουθούν οι διάφορες εντολές case. Η κάθε μια έχει ένα όνομα (π.χ. value _1, value_2 κλπ) το οποίο μπορεί να είναι βαθμωτή ποσότητα ή αλφαριθμητικό, και μετά ακολουθούν οι εντολές που θα εκτελεστούν αν βρεθούμε στη συγκεκριμένη περίπτωση. Μετά την τελευταία περίπτωση/εντολή case, ακολουθεί η προαιρετική περίπτωση/εντολή otherwise της οποίας οι εντολές θα εκτελεστούν αν καμιά από τις προηγούμενες περιπτώσεις δεν ισχύει. 3

Σε αντίθεση με άλλες γλώσσες προγραμματισμού (όπως, π.χ. η C), στη MATLAB δεν χρειάζεται να διακόψουμε τη ροή της δομής μετά από κάθε case, μια και αυτό θα γίνει αυτόματα αφού μια από τις περιπτώσεις έχει επαληθευτεί. Παράδειγμα Το πιο κάτω script m-file μετατρέπει μήκη από διάφορες μονάδες σε cm. 4

% convertcm.m 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('se ekatosta (cm), h timh ths metablhths eivai') disp(y) case {'m','meter'} y = x*100; % converts to centimters disp('se ekatosta (cm), h timh ths metablhths eivai') disp(y) otherwise disp(['unknown units:' units]) y = nan; end 5

Παράδειγμα function []=checkmat(a) % Elegxei an enas pinakas einai antistrepsimos % Dedomeno eisodou: pinakas A, Dedomeno eksodou: kanena [m,n]=size(a); if m ~=n disp('matrix A is not square!') else deta=det(a); switch deta case 0 disp('matrix A is singular!') otherwise disp('matrix A is invertible!') end end 6

Παράδειγμα function []=ticketp() % Returns the cost of an airfair depending on the destination city=input('enter destination city: ', 's') switch city case 'Paphos' disp('50 CYP') case 'Athens' disp('150 CYP') case 'Heraklion' disp('110 CYP') case 'Thessaloniki' disp('200 CYP') otherwise sprintf('no flights for %s',city) end 7

Η συνάρτηση menu Η συνάρτηση menu παράγει ένα μενού επιλογών για τον χρήστη. Η δομή της είναι choice=menu(header, item1, item2,.) όπου header είναι η επικεφαλίδα item1 είναι η πρώτη επιλογή, item2 η δεύτερη κοκ. Η σύνταξη choice=menu(header, itemlist) όπου itemlist είναι ένας αλφαριθμητικός πίνακας κελίων είναι επίσης αποδεκτή. Η menu επιστρέφει τον αριθμό της επιλογής του χρήστη στη μεταβλητή choice. 8

ΓΡΑΦΙΚΑ H MATLAB έχει εξαιρετικές δυνατότητες για γραφικά και είναι εφοδιασμένη με αρκετές συναρτήσεις για εύκολο και ευέλικτο σχεδιασμό επίπεδων καμπυλών, τρισδιάστατων επιφανειών, ισοϋψών, παραμετρικών δισδιάστατων αλλά και τρισδιάστατων καμπυλών κα. Το κεφάλαιο αυτό είναι μια εισαγωγή στις σημαντικότερες γραφικές συναρτήσεις της MATLAB. 9

Η εντολή plot Η συνάρτηση plot χρησιμοποιείται για την κατασκευή του γραφήματος μιας επίπεδης καμπύλης τα σημεία της οποίας είναι αποθηκευμένα στα ισομήκη διανύσματα x και y. Αν για παράδειγμα, έχουμε τα διανύσματα >> x=[0 1 1.5 2.2 3.]; >> y=[0 1.65 1.45 1.4 1]; με την εντολή >> plot(x,y) εμφανίζεται αυτόματα ένα παράθυρο γραφικών με το γράφημα: Ενώνει τα 5 σημεία που ορίζουν τα x και y με συνεχείς γραμμές. 10

Παράδειγμα Θα κατασκευάσουμε το γράφημα της y = cos(x) στο διάστημα [ π, π]. Ακολουθούμε τα εξής βήματα: >> x=-pi:0.01:pi; >> x=linspace(-pi,pi); ή >> x=linspace(-pi,pi, n); (n: πλήθος σημείων που θέλω να διαμερίσω το x) >> y=cos(x); >> plot(x,y) ή >> x=-pi:0.01:pi; plot(x,cos(x)) ή >> plot(-pi:0.01:pi,cos(-pi:0.01:pi)) ή >> plot(linspace(-pi,pi,301),cos(linspace(-pi,pi,301))) 11

Συνάρτηση logspace Η logspace παράγει διανύσματα με συνιστώσες που ισαπέχουν λογαριθμικά. >> logspace(0,2,11) >> logspace(0,2,3) ans = ans = Columns 1 through 5 1 10 100 1.0000 1.5849 2.5119 3.9811 6.3096 Columns 6 through 10 10.0000 15.8489 25.1189 39.8107 63.0957 Column 11 100.0000 12

Χρήσιμες συναρτήσεις για γραφικά Το γράφημα που πήραμε πιο πάνω είναι απλό αφού δεν έχει ετικέτες στους άξονες, τίτλο και λεζάντα. Όλα αυτά μπορούν να προστεθούν και να τροποποιηθούν είτε απευθείας με το μενού του παραθύρου γραφικών είτε με συναρτήσεις βιβλιοθήκης στο παράθυρο εντολών. Με τις πιο κάτω εντολές: >> xlabel('x') >> ylabel('y=cos(x)') >> title('graph of cosine in [-pi, pi]') >> legend('cos(x)') το γράφημα που παίρνουμε είναι: 13

Οι κυριότερες συναρτήσεις για γραφικά είναι συγκεντρωμένες στον ακόλουθο πίνακα: Εντολή plot title xlabel ylabel legend text grid Περιγραφή Δημιουργεί το γράφημα του y συναρτήσει του x Προσθήκη τίτλου Προσθήκη ετικέτας στον οριζόντιο άξονα Προσθήκη ετικέτας στον κατακόρυφο άξονα Προσθήκη λεζάντας (legend( First, Second )) Προσθήκη κειμένου στη θέση (x i, y i ) (text(xi, yi, string )) Δημιουργία πλέγματος 14

Εντολή figure hold axis Περιγραφή Άνοιγμα (άλλου) παραθύρου γραφικών Πάγωμα του τρέχοντος παραθύρου γραφικών για το σχεδιασμό και άλλων καμπυλών (hold on/hold off) Κλείδωμα/ξεκλείδωμα αξόνων (axis) Ίσες μονάδες αξόνων (axis equal) Διαγραφή αξόνων (axis off) Όρια αξόνων (axis([xmin, xmax,ymin,ymax])) Στις ετικέτες, τον τίτλο και τη λεζάντα δεν μπορούμε να έχουμε ελληνικά με απλό τρόπο. >> title('graph of cosine in [-\pi, \pi]') 15

Η εντολή figure μας επιτρέπει να ανοίξουμε ένα νέο παράθυρο γραφικών εκτός από το προεπιλεγμένο με όνομα Figure 1. Αν έχουμε ήδη δημιουργήσει το Figure 1 και δεν θέλουμε να το διαγράψουμε, γράφουμε >> figure(2) Την επόμενη φορά που θα δημιουργήσουμε γραφικά, αυτά θα εμφανιστούν στο παράθυρο με όνομα Figure 2. Αυτό θα είναι το παράθυρο εργασίας για όλες τις γραφικές παραστάσεις μέχρι να χρησιμοποιήσουμε εκ νέου την εντολή figure. Η εντολή hold χρησιμοποιείται όταν θέλουμε να σχεδιάσουμε επιπλέον καμπύλες στο ίδιο γράφημα. 16

Αν παραλείψουμε το x, η εντολή plot(y) σχεδιάζει τα στοιχεία yi συναρτήσει των δεικτών i. Έτσι οι εντολές >> x=0:-0.1:-0.5; >> plot(exp(x), '*') δίνουν το γράφημα: Επειδή το διάνυσμα έχει μήκος 6 στον άξονα των i οι τιμές κυμαίνονται από 1 έως 6. 17

Η εντολή plot δουλεύει ακόμα και όταν τα δεδομένα εισόδου είναι μιγαδικοί αριθμοί. Σε αυτή την περίπτωση, το μιγαδικό μέρος των αριθμών αγνοείται, εκτός αν χρησιμοποιήσουμε μόνο ένα δεδομένο εισόδου οπότε το γράφημα που παίρνουμε αντιστοιχεί στη γραφική παράσταση του μιγαδικού μέρους έναντι του πραγματικού. Συγκεκριμένα, η εντολή plot(z) όταν το Z είναι μιγαδικό διάνυσμα (ή πίνακας) είναι ισοδύναμη με την plot(real(z), imag(z)). Για παράδειγμα, οι εντολές >> t=0:pi/10:2*pi; >> plot(exp(i*t),'-o') >> axis equal παράγουν το γράφημα: 18

Η εντολή axis equal αναγκάζει τους άξονες να έχουν το ίδιο μέγεθος, έτσι ώστε η γραφική παράσταση να είναι κυκλική. 19

Βιβλιογραφία 1. Γ. Γεωργίου, Χ. Ξενοφώντος. Εισαγωγή στη MATLAB. Πανεπιστήμιο Κύπρου, Λευκωσία, 2007 (ISBN 978-9963-644-57-5). 2. Matlab, High-Performance Numeric Computation and Visualization Software. The Math Works Inc, 1992. 20