Εισαγωγή στη Matlab Επιστηµονικός Υπολογισµός Γ Έτος Σπουδών Κυριάκος Πετράκος

Σχετικά έγγραφα
Εισαγωγή στη Matlab. Πανεπιστήµιο Κρήτης. Ιστοσελίδα µαθήµατος:

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

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

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

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

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

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

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

Σύστηµα επεξεργασίας πινάκων και συναρτήσεων τους για εφαρµογές αριθµητικής ανάλυσης και γραφικής παρουσίασης.

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

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

ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ. Τσιριγώτης Γεώργιος

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

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

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

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ. Ξεκινώντας µε το MATLAB. Revised by Clinton Wolfe Original by David Hart. Μ. Βάβαλη και Τ.

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

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

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 1: Εισαγωγικές έννοιες

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

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

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

µέχρι και την Τρίτη και ώρα 22:30 1η Ασκηση ΑΜΕΣΟΙ ΜΕΘΟ ΟΙ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Εργαλεία Προγραμματισμού Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

ημιουργία και διαχείριση πινάκων

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

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

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

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

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

Γραµµική Αλγεβρα. Ενότητα 1 : Εισαγωγή στη Γραµµική Αλγεβρα. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Σηµειώσεις MATLAB. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #01

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

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

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C)

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

αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C)

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ( , c Ε. Γαλλόπουλος) ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. Ε. Γαλλόπουλος. ΤΜΗΥΠ Πανεπιστήµιο Πατρών. ιαφάνειες διαλέξεων 28/2/12

Μεταφραστής (Compiler)

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

Εργαλεία προγραµµατισµού. Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox. ΤΨΣ 150 Ψηφιακή Επεξεργασία Εικόνας

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

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

Σε πολλά (κυρίως µαθηµατικά) προβλήµατα (π.χ. ανάλυση πειραµάτων, στατιστική επεξεργασία, γραφικές παραστάσεις, επίλυση γραµµικών συστηµάτων, κ.α.

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 11: MATLAB

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Πληροφορική. Ενότητα 2: Α. Μεταβλητές. Όλα είναι πίνακες. Β. Δεδομένα. Σφάλματα. Δομές. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

Προγραμματισμός σε Matlab για προβλήματα βελτιστοποίησης

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

Εισαγωγικές σημειώσεις στο Matlab

Γραµµική Αλγεβρα. Ενότητα 1 : Εισαγωγή στη Γραµµική Αλγεβρα. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

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

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

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

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

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

Transcript:

Στόχοι φροντιστηρίου Εισαγωγή στη Matlab Επιστηµονικός Υπολογισµός Γ Έτος Σπουδών Κυριάκος Πετράκος (kpp@hpclab.ceid.upatras.gr) Πανεπιστήµιο Πατρών Τµήµα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Συστηµάτων Υψηλών Επιδόσεων Τοµέας Επιστηµονικού Υπολογισµού Εξοικείωση µε τη φιλοσοφία του Matlab Εκµάθηση βασικών εντολών για αρχή Ανασκόπηση κεντρικών αρχών Γραµµικής Άλγεβρας Ανασκόπηση κεντρικών αρχών Αριθµητικής Ανάλυσης Εξοικείωση µε τα γραφικά του Matlab Ενθουσιασµός από εσάς Ιστοσελίδα µαθήµατος: http://scgroup.hpclab.ceid.upatras.gr/class/sc.html Τι είναι η Matlab ; Ολοκληρωµένο Περιβάλλον (PSE) Περιβάλλον ανάπτυξης ιερµηνευόµενη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρµογών Ευκολία διατύπωσης Cross platform (Windows, Unix, Mac) Τυπικές χρήσεις της Matlab Εξελιγµένος «υπολογιστής τσέπης» Αποδοτική υλοποίηση αλγορίθµων Επίλυση Ε Προσοµοίωση φαινοµένων Αριθµητική ανάλυση, γραµµική άλγεβρα Βελτιστοποίηση Ανάπτυξη λογισµικού (GUI) Αριθµητικά δεδοµένα Εξελιγµένα γραφικά

Τυπικές χρήσεις της Matlab (Συνέχεια...) Περιβάλλον της Matlab Εµπορικές εφαρµογές Launch Pad: Εργαλεία και εφαρµογές Workspace: Μεταβλητές Command history Current directory Editor (>> edit ) Περιβάλλον της Matlab (Συνέχεια...) Λίγη ιστορία 97 s : Ο Cleve Moler γράφει την πρώτη έκδοση σε Fortran Αρχικά, εκπαιδευτική χρήση Έγινε εµπορική το 984, Mathworks Σήµερα, γραµµένη σε C Κατάλληλη για όλες τις πλατφόρµες (Win, Unix, Mac) 2

Μαθήµατα και...matlab Γραµµική άλγεβρα (ΗΥ) Αριθµητική ανάλυση (ΗΥ24) Θεωρία σηµάτων και συστηµάτων (ΗΥ282) Επεξεργασία σηµάτων και θεωρία πληροφοριών (ΗΥ38) Επιστηµονικός υπολογισµός Ι (ΗΥ343) Επιστηµονικός υπολογισµός ΙΙ (ΗΥ443) Αριθµητική επίλυση Ε (ΗΥ545) Υπολογιστικές µέθοδοι στην οικονοµία (ΗΥ547) Ψηφιακές τηλεπικοινωνίες (ΗΥ384) Στοχαστικά σήµατα και εφαρµογές (ΗΥ48) Υπολογιστική νοηµοσύνη Ι (ΗΥ42) Υπολογιστική νοηµοσύνη ΙΙ (ΗΥ52) Επεξεργασία και ανάλυση εικόνας (ΗΥ482) Προχωρηµένα θέµατα τηλεπικοινωνιών (ΗΥ484) Περιβάλλοντα επίλυσης προβληµάτων (ΗΥ558) Και αλλού... Τι χρειάζεται για να µάθω Matlab? Όρεξη Βασική εξοικείωση µε προγραµµατισµό Εξοικείωση µε γραµµική άλγεβρα lookfor <something> help <function_name> Η Matlab στο Υπολογιστικό Κέντρο Στοιχεία της Matlab CEID Βασική δοµή της Matlab είναι το µητρώο Εν γένει µιγαδικά στοιχεία Matlab: Matrix Laboratory Οικογένεια toolboxes Toolbox: Εξειδικευµένες συναρτήσεις 3

Εναλλακτικές δυνατότητες; Πώς δουλεύει η Matlab? Octave (GNU) Maple Mathematica Βασική λειτουργία: Χειρισµός µητρώων (πινάκων, µητρείων, µητρών, matrices) Μητρώο: Ορθογώνια διάταξη αριθµών οργανωµένων σε γραµµές και στήλες Πώς δουλεύει η Matlab? (Συνέχεια...) Εισαγωγή και έξοδος από τη Matlab Τα πάντα στη Matlab είναι µητρώα! ιανύσµατα: Μητρώα ( x n) ή (n x ) Βαθµωτοί αριθµοί : Μητρώα ( x ) Έναρξη του περιβάλλοντος (double click για Windows) Εµφάνιση της προτροπής >> Έξοδος: >> quit Έξοδος: >> exit Η έξοδος είναι καταστροφική! 4

Matlab: Κύριες Λειτουργίες Matlab: Κύριες Λειτουργίες (Συνέχεια...) ηµιουργία διανυσµάτων και µητρείων >> E = eye(4) E = ηµιουργία διανυσµάτων και µητρείων >> u = E(:, ) u = Matlab: Κύριες Λειτουργίες (Συνέχεια...) Matlab: Κύριες Λειτουργίες (Συνέχεια...) Αλλαγή διανυσµάτων και µητρείων >> E(3,3) = E = Εκτέλεση λειτουργιών επί διανυσµάτων και µητρείων >> E*u ans = 5

Σύνταξη (Απλές παραστάσεις) /2 Σύνταξη (Απλές παραστάσεις) 2/2 Παραδείγµατα 2 + 3 7-5 34*22 234/5786 2^5 a = sqrt(2) Έξοδος ans = 5 ans = 2 ans = 728 ans =.273 ans = 32 a =.442 Σχόλια Το τελικό αποτέλεσµα αποθηκεύεται στην default µεταβλητή ans αν δεν το αναθέσουµε αλλού Ανάθεση στη µεταβλητή a b = a, pi,2 + 3i c = sin(pi) b =.442 ans = 3.46 ans = 2. + 3.i c =.2246e-6 Τα κόµµατα µπορούν να διαχωρίζουν διαφορετικές εντολές στην ίδια γραµµή Υπάρχουν πολλές ενσωµατωµένες συναρτήσεις Σύνταξη ( ιανύσµατα) /4 Σύνταξη ( ιανύσµατα) 2/4 ιάνυσµα : ιατεταγµένο σύνολο σηµείων Έξοδος Σχόλια u = [ 2 3] u = 2 3 ιάνυσµα µε 3 συνιστώσες, Μητρώο τύπου x 3 Σηµείο του χώρου z u u = [;2;3] u = 2 3 ιάνυσµα µε 3 συνιστώσες, Μητρώο τύπου 3x y x 6

Σύνταξη ( ιανύσµατα) 3/4 Σύνταξη ( ιανύσµατα) 4/4 d = [ 2 3 4 5 6 7] e = [:7] f = :7 g = :2: f(3) f(2:7) f(:) find(f) d = 2 3 4 5 6 7 e = 2 3 4 5 6 7 f = 2 3 4 5 6 7 g = 2 4 6 8 ans = 3 ans = 2 3 4 5 6 7 ans = 2 3 4 5 6 7 ans = 2 3 4 5 6 7 ιαφορετική αρχικοποίηση Ίδια διανύσµατα Χρήσεις του τελεστή : και εύρεση µη µηδενικών στοιχείων Προσοχή! Ο τελεστής «:» είναι ένα από τα πιο σηµαντικά χαρακτηριστικά! h = [ 2 3]; h' h * h' h.* h h + h (nothing) ans = 2 3 ans = 4 ans = 4 9 ans = 2 6 8 Το ελληνικό ερωτηµατικό αποτρέπει την εµφάνιση του υπολογιζόµενου αποτελέσµατος. Η απόστροφος οδηγεί στο ανάστροφο διάνυσµα (µητρώο). Πολλαπλασιασµός διανυσµάτων και πολλαπλασιασµός διανυσµάτων στοιχείο προς στοιχείο (Χρήσιµο!) Σύνταξη (Μητρώα) /3 Έξοδος Σχόλια Σύνταξη (Μητρώα) 2/3 g = [ 2 3; 4 5 6; 7 8 9] g = [ 2 3 4 5 6 7 8 9] g(2,3) g(3,:) g(2,3) = 4 g = 2 3 4 5 6 7 8 9 g = 2 3 4 5 6 7 8 9 ans = 6 ans = 7 8 9 g = 2 3 4 5 4 7 8 9 Εισαγωγή µητρώου (Ένα ελληνικό ερωτηµατικό διαχωρίζει τις διαφορετικές γραµµές!). Ακριβώς το ίδιο, χωρίς χρήση ελληνικού ερωτηµατικού (semicolon) Πρόσβαση σε στοιχεία µητρώου. Προσοχή: Επιλογή στηλών και γραµµών! g^2 g.^ 2 Έξοδος ans = 3 36 42 66 8 96 2 26 5 ans = 4 9 6 25 36 49 64 8 Σχόλια Ύψωση µητρώου σε δύναµη και ύψωση στοιχείων µητρώου. 7

Σύνταξη (Μητρώα) 3/3 A.K.Y στη Matlab c = g Α = rand(5,5); Α([:3],[2:4]) Α([:3],:) c = 4 7 2 5 8 3 6 9 Ανάστροφο µητρώου Πρόσβαση σε στοιχεία µητρώου. Προσοχή: Επιλογή στηλών και γραµµών! IEEE Αριθµητική διπλής ακρίβειας (8 bytes) s e f 2 2 3 64 Round-off: eps = 2-52 Έλεγχος εξόδου (όχι υπολογισµών!) format Matlab: Αριθµητική διπλής ακρίβειας Απόσταση γραµµών : format compact/loose 5 ψηφία: format long 5 ψηφία: format short Κλάσµατα: format rat help format Μεταβλητές Κατάσταση session >> who >> whos a Χρήσιµα! >> clear >> clear a >> clc Case sensitive! >> A = ones(4); >> a = eye(4); Α a!!! 8

Μετακίνηση κέρσορα: «Ιστορία» εντολών! Μετακίνηση (σειραϊκά) προς την παλαιότερη εντολή >> Μετακίνηση (σειραϊκά) προς την πιο πρόσφατη εντολή Μητρώα στη Matlab Built-in συναρτήσεις Απευθείας προγραµµατισµός Από.mat αρχεία >> Μητρώα στη Matlab /9 Built-in δοµές µητρώων Μητρώα στη Matlab 2/9 Built-in δοµές µητρώων rand(2) rand(2,3) zeros(2) ones(2) eye(2) hilb(3) Έξοδος ans =.95.668.23.486 ans =.893.4565.824.762.85.4447 ans = ans = ans = ans =..5.3333.5.3333.25.3333.25.2 Σχόλια Τιµές οµοιόµορφα κατανεµηµένες Μηδενικά Μονάδες Ι (ταυτοτικό µητρώο) Hilbert Μητρώο (cond >> ) randn(2,3) Α = sparse(n,n) toeplitz([ 2 3]) vander([ 2 3]) Έξοδος ans = -.4326.253 -.465 -.6656.2877.98 Α= All zero sparse: 3-by-3 ans = 2 3 2 2 3 2 ans = 4 2 9 3 Σχόλια Τιµές κανονικά Κατανεµηµένες Αραιή δοµή µητρώου οµή Toeplitz οµή Vandermonde 9

Μητρώα στη Matlab 3/9 Built-in δοµές µητρώων Έξοδος Μητρώα στη Matlab 4/9 Ερωτήσεις : Ποιο θα είναι το αποτέλεσµα; Σχόλια D = u = :5; D = diag(u) 2 3 4 5 ιαγώνιο µητρώο από διάνυσµα D = ones(size(d)) Μητρώα στη Matlab Α = ones(5,5); u = rand(5,); A(2,:) = u ; A(:,2) = u; A([2 3], :) = A([3 2], :); Το ίδιο µέγεθος µε το µητρώο Α 6/9 Μητρώα στη Matlab 7/9 >> A = magic(4);

Μητρώα στη Matlab 8/9 Μητρώα στη Matlab 9/9 >> A(2,3) >> A([2 4],:) >> A(3,:) >> A(:) >> A(:,3) >> A(2:4,:3) Χειρισµός µητρώων Χειρισµός µητρώων (Συνέχεια...) Παράθεση Αναδροµική κατασκευή µητρώων Έστω: a = [ 2; 3 4] a = 2 [a, a, a] [a; a; a] Έξοδος ans = 2 2 2 3 4 3 4 3 4 ans = 2 3 4 2 3 4 2 3 4 3 4 [a, zeros(2); zeros(2), a'] ans = 2 3 4 3 2 4

Χειρισµός µητρώων (Συνέχεια...) Χειρισµός µητρώων (Συνέχεια...) repmat(a,3,3) a(:, ) = [] Έξοδος Μητρώο µε: > 3 2 γραµµές > 3 2 στήλες ιαγραφή της πρώτης στήλης Απευθείας χειρισµός Με for loops for i=:, for j=:, t(i,j) = i/j; Ελληνικό ερωτηµατικό! Πράξεις µεταξύ των µητρώων Βαθµωτοί Α+Α Α-Α Α*Α (διάσταση!) Α/Β (Χ*Β = Α) Α\b (Ax = b).<operand> : Στοιχείο προς στοιχείο Όλα είναι µητρώα (ακόµα και αν είναι x )! help elfun (elementary functions) help elmat (elementary matrix functions) 2

Βαθµωτοί ιανύσµατα Παραδείγµατα Έξοδος Σχόλια b=2 b=2 Βαθµωτός a + b ans = 3 4 5 6 Στοιχείο προς στοιχείο a * b ans = 2 4 6 8 Στοιχείο προς στοιχέιο a ^ b ans = 7 5 22 ύναµη! a.^ b ans = 4 9 6 Στοιχείο προς στοιχείο ιανύσµατα /7 size(a,) = ή size(a,2) = length(a) % Πλήθος συνιστωσών Έξοδος v = [ 2 3] u = [3 2 ] v = 2 3 ιανύσµατα u = 3 2 v * u Error v * u' ans = Εσωτερικό γινόµενο dot(v,u) ans = Εσωτερικό γινόµενο (dot) max(u), min(u), sort(u) 2/7 Απόσταση διανυσµάτων (σηµείων στο Rn) Έννοια αντίστοιχη της απόλυτης τιµής στο R Νόρµα διανύσµατος Σχόλια ιαστάσεις! Μέγιστο διανύσµατος, Ελάχιστο διανύσµατος, Ταξινόµηση διανύσµατος ιανύσµατα 3/7 Έστω διανύσµατα norm(u-v,)= Απόσταση Manhattan! u v 3

ιανύσµατα 4/7 norm(u-v,2)= norm(u-v)= ιανύσµατα norm(u-v,inf)= Ευκλείδια απόσταση! u u v v ιανύσµατα 5/7 6/7 Πρόσθεση διανυσµάτων ιανύσµατα 7/7 Εσωτερικό γινόµενο (DOT) διανυσµάτων y v +u v u x v α u Καθετότητα: Συνάρτηση Matlab: >> dot(u,v) >> u * v 4

Συναρτήσεις µητρώων Γραµµικά συστήµατα Ενσωµατωµένες help matfun k = [6 2 3; 5 ; 9 7 6] inv(k) rank(k), det(k), eig(k), etc Έξοδος k = 6 2 3 5 9 7 6 ans =.294 -.662.956 -.442 -.574.662.476.692 -.226 Σχόλια Αντίστροφο Πολλές άλλες ενσωµατωµένες συναρτήσεις Αx = b x = inv(a) * b % Sloooow!!! x = A \ b % Gaussian Elimination Αποθήκευση µεταβλητών Προγραµµατισµός στη Matlab Έξοδος καταστροφική για µεταβλητές! Αποθήκευση µεταβλητών/διανυσµάτων/µητρώων για επόµενη χρήση: >> save <filename> Ανάκτηση µεταβλητών/διανυσµάτων/µητρώων: >> load <filename> M-files (κώδικας) Functions (return value-s, local workspace) Scripts Κλήση από command line Text files που αποτελούνται από απλές εντολές που έχουµε δει ως τώρα Κλήση χωρίς το.m! type <function_name> 5

Πλοήγηση στη Matlab οµή συνάρτησης dir / ls pwd cd <directory> which <function> path pathtool function [o,o2,o3, ] = name(i, i2, i3, ) % Comments.. Code.. Κοινές προγραµµατιστικές δοµές οµή if elseif else Έλεγχος ροής (if, switch) οµές επανάληψης (for, while) Εντολές διακοπής επανάληψης (break, continue) If A > B greater elseif A < B less elseif A = = B equal else error( Unexpected situation ) 6

Λογικοί και σχεσιακοί τελεστές Σχεσιακοί τελεστές (µεταξύ arrays) == (ισότητα) ~= (ανισότητα) < (µικρότερο) <= (µικρότερο ή ίσο) > (µεγαλύτερο) >= (µεγαλύτερο ή ίσο) Λογικοί τελεστές & (and) (or) ~ (not) οµή for % Hilbert matrix!! for i = :m for j = :n H(i,j) = /(i+j-) Ζητήµατα χρόνου Προσοχή στον τρόπο δόµησης του κώδικα slow.m tic; X=-25:.:25; for for ii=:length(x) if if x(ii)>=, s(ii)=sqrt(x(ii)); else s(ii)=; ; ; toc toc fast.m tic tic x=-25:.:25; s=sqrt(x); s(x<)=; toc; Ζητήµατα χρόνου (Συνέχεια...) Τι γίνεται αν ο υπολογισµός είναι πολύ γρήγορος; tic; eig(rand()) toc toc fast.m accurate.m tic; tic; for for i=: eig(rand()) Toc/ 7

ιδάγµατα χρήστη Χρησιµοποιήστε διανυσµατικές εντολές της Matlab αντί για βρόχους! Κάντε pre-allocate την µνήµη αντί για δυναµικό allocation! % User enters a numerical value n = input( Matrix Dimension: ) Profiling Παράδειγµα Συνάρτησης profile on function profile report profile off profile plot function [C] = multiply(a, B) % This function multiples the matrices A and B % and stores the result in C [m, n] = size(a); [m2, n2] = size(b); if (n == m2) C = A*B; else disp('multiplication not possible'); 8

Συναρτήσεις πολλαπλασιασµού /3 Συναρτήσεις πολλαπλασιασµού 2/3 function [C] = multiply(a, B) C = zeros(size(a)); n = length(a); % We assume that A,B both have n rows and columns function [C] = multiply(a, B) C = zeros(size(a)); n = length(a); % We assume that A,B both have n rows and columns c = ; for i = ::n for j = ::n for k = ::n c = c + A(i,k)*B(k,j); C(i,j) = c; c = ; Κατά γραµµές! Βασική Πράξη: Εσωτερικό γινόµενο c = ; for j = ::n for i = ::n for k = ::n c = c + A(i,k)*B(k,j); C(i,j) = c; c = ; Κατά στήλες! Βασική Πράξη: Εσωτερικό γινόµενο Συναρτήσεις πολλαπλασιασµού 3/3 Πολλαπλασιασµός: Ερώτηση function [C] = multiply(a, B) C = zeros(size(a)); n = length(a); % We assume that A,B both have n rows and columns for k = ::n for i = ::n for j = ::n C(i,j) = C(i,j) + A(i,k)*B(k,j); Βασική Πράξη: Εξωτερικό γινόµενο Fortran, Matlab αποθήκευση µητρείων κατά στήλες Ποιον από τους παραπάνω τρόπους θα διαλέγατε; C, C++ αποθήκευση µητρείων κατά γραµµές Ποιον από τους παραπάνω τρόπους θα διαλέγατε; 9

Γραφικά στη Matlab 2-D γραφικά (plot, pie) 3-D γραφικά (mesh) Plot >> plot(x,y) δέχεται ως ορίσµατα 2 διανύσµατα ίδιου µεγέθους σχεδιάζει τα σηµεία (x i, y i ) στο καρτεσιανό επίπεδο >> plot(x,y, ro: ) >> title( Plot title ) >> xlabel( X label ) >> ylabel( y label ) >> hold on (hold off) >> grid on (grid off) >> leg( Curve No. ) Plot Plot - Pie x = :. : 2*pi; y = sin(x); plot(x,y) y2 = sin(x-.25) y3 = sin(x-.5) plot(x,y,x,y2,x,y3) % at the same time! hold on Subplot(m,n, mn); plot( ) plot(x,y, rx ) Pie(:7) 2

Mesh Movie! A = zeros(32); A(4:6,4:6) = ones(3); F=abs(fft2(A)); mesh(f) Rotate3d on logo; fr=4; dtheta=36/fr; for frame = :fr, camorbit(dtheta,) M(frame) = getframe(gcf); movie(m); Επεξεργασία εικόνων Χ = imread(filename) image(x) Συµπεράσµατα Σύντοµη πολύπλευρη εισαγωγή Matlab Εφαρµοσµένη Γραµµική Άλγεβρα Γραµµική Άλγεβρα Ισχυρή γεωµετρική ερµηνεία Matlab Εξελιγµένη ενσωµάτωση γραφικών Πειραµατιστείτε, αξίζει! 2

Αναφορές Goooogle!! http://www.google.com Εύκολη εισαγωγή στη Matlab από τον Mark Gockenbach http://www.math.mtu.edu/~msgocken/intro/intro.html Tutorial από τη Mathworks http://www.mathworks.com/access/helpdesk/help/techdoc/learn_matlab/learn_matlab.s html Tutorial µε πολλές παραποµπές http://www.glue.umd.edu/~nsw/ench25/matlab.htm Από το πανεπιστήµιο της Alberta http://www.ualberta.ca/cns/research/courses/23/mathpackages/matlab/matlab. Vis.Jon.index.html Γραφικά στη Matlab http://www.ucalgary.ca/~appinst/doc/matlabhelp/techdoc/umg/chintro.html Η «απόλυτη» αναφορά Mastering MATLAB 6, D.Hanselman και B.R. Littlefield, Prentice Hall Matlab guide MATLAB Guide, D.J. Higham και N.J. Higham, SIAM 22