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

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

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

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

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

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

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

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

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

Μαθηµατικοί Υπολογισµοί στην R

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

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

1 Πίνακες και διανύσματα στο MATLAB

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

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

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

Πίνακες >>A = [ 1,6; 7, 11]; Ή τον πίνακα >> B = [2,0,1; 1,7,4; 3,0,1]; Πράξεις πινάκων

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

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

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

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

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη)

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

Εφαρμοσμένα Μαθηματικά ΙΙ

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

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

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

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

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

ΜΕΜ251 Αριθμητική Ανάλυση

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

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

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

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

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

ΣΥΝΑΡΤΗΣΕΙΣ. Η σύνταξη μιας συνάρτησης σ ένα κελί έχει την γενική μορφή: =όνομα_συνάρτησης(όρισμα1; όρισμα2;.)

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

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

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

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram.

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

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

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

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

Δυναμική Μηχανών I. Επανάληψη: Μαθηματικά

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

Επίλυση Γραµµικών Συστηµάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Πίνακες (arrays)

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα)

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ηµεροµηνία Αποστολής στον Φοιτητή: 15 Οκτωβρίου 2006

Χρήσεις Η/Υ και Βάσεις Βιολογικών Δεδομένων : ΒΙΟ109 [4] Επεξεργασία Δεδομενων σε λογιστικα φυλλα

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

ΜΕΜ251 Αριθμητική Ανάλυση

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

Κεφάλαιο 1. Τι θα μάθουμε σήμερα: -AND, OR, NOT. -Ενσωματωμένες συναρτήσεις. -Μαθηματικοί τελεστές -ΤΕΛΕΣΤΕΣ DIV ΚΑΙ MOD. -Προτεραιότητα πράξεων

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

ΤΗΛΕΠΙΣΚΟΠΗΣΗ. Γραµµικοί Μετασχηµατισµοί (Linear Transformations) Τονισµός χαρακτηριστικών εικόνας (image enhancement)

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

Transcript:

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

MATLAB (MATrix LABoratory) Σύστηµα επεξεργασίας πινάκων και συναρτήσεων τους για εφαρµογές αριθµητικής ανάλυσης και γραφικής παρουσίασης. ηµιουργήθηκε απο τον C. Moler, αρχικά σαν εργαλείο διαχείρισης των ϐιβλιοθηκών Fortran: LINPACK (γρ. άλγεβρα) και EISPACK (ιδιοτιµές και ιδιοδιανύσµατα). Σηµειώσεις MATLAB Μ. ρακόπουλος 2 Χαρακτηριστικά του MATLAB? Εξελίχθηκε σε σύνθετο πακέτο (γραµµένο σε C, C++) που αναπτύσσεται συνεχώς, κατάλληλο για: αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C) γρήγορη ανάπτυξη και έλεγχο αλγορίθµων, (πλήθος έτοιµων συναρτήσεων και απλουστευµένη αλγοριθµική γλώσσα) ανάλυση δεδοµένων και γραφική παρουσίαση τους εφαρµογές από διάφορες ϑεµατικές περιοχές µέσω κατάλληλων toolboxes (στατιστική, ϑ. ελέγχου, επεξεργασία σήµατος, ϐελτιστοποίηση, νευρωνικά δίκτυα, «συµβολικά» µαθηµατικά, κ.π.α.) Σηµειώσεις MATLAB Μ. ρακόπουλος 3 Βοήθεια στο MATLAB help λίστα µε κατηγορίες ϐοήθειας. help ϑέµα ϐοήθεια σε ένα συγκεκριµένο ϑέµα ή συνάρτηση. lookfor λέξη-κλειδί ψάχνει σε όλες τις συναρτήσεις για τη λέξη-κλειδί και εµφανίζει εκείνες που την περιέχουν helpdesk «ϕορτώνει» στο Web browser αναλυτική τεκµηρίωση για το MATLAB και τα toolboxes του. demo επίδειξη δυνατοτήτων του MATLAB. Σηµειώσεις MATLAB Μ. ρακόπουλος 4 Τα πάντα είναι πίνακες! Το MATLAB διαχειρίζεται πίνακες (πραγµατικούς ή µιγαδικούς). Σε µερικές περιπτώσεις το MATLAB ερµηνεύει: πίνακες 1 1 σαν ϐαθµωτά µεγέθη, και πίνακες µε 1 γραµµή ή 1 στήλη σαν διανύσµατα. Η γλώσσα του MATLAB είναι α-τυπη (δε χρειάζεται δήλωση µεταβλητών). Στο MATLAB οι πράξεις κινητής υποδιαστολής γίνονται σύµφωνα µε το standard της IEEE, συνήθως σε διπλή ακρίβεια. Σηµειώσεις MATLAB Μ. ρακόπουλος 5 2

Εισαγωγή πινάκων 1. Αµεσα από το χρήστη: A = [1 2 3; 4 5 6] ή ισοδύναµα A = [ 1 2 3 4 5 6 ] 2. Από συναρτήσεις του MATLAB: b = rand(1,5) δηµιουργεί τυχαίο πίνακα 1 5 (διάνυσµα) µε στοιχεία (0, 1). Προσπέλαση Στοιχείων: π.χ. A(1,2),b(A(2,2)). Οι δείκτες είναι ϑετικές ακέραιες σταθερές ή µεταβλητές ξεκινούν από το 1! Σηµειώσεις MATLAB Μ. ρακόπουλος 6 Πράξεις πινάκων + Πρόσθεση help arith - Αφαίρεση help arith * Πολ/σµός help arith ^ Υψωση σε δύναµη help arith Ανάστροφος πίνακας help punct \ Αριστερή διαίρεση help slash / εξιά διαίρεση help slash Σηµειώσεις MATLAB Μ. ρακόπουλος 7 Πράξεις πινάκων (συνεχ.) Παρατηρήσεις Ισχύουν και για ϐαθµωτά µεγέθη (= πίνακες 1 1) Ασυµβατότητα διαστάσεων = ΛΑΘΟΣ. ΕΞΑΙΡΕΣΗ: πράξεις µεταξύ πινάκων και αριθµών, οπότε η πράξη εκτελείται µεταξύ του αριθµού και κάθε στοιχείου του πίνακα. Για τις διαιρέσεις: Αν ο πίνακαςaείναι αντιστρέψιµος τότε: x = A\b είναι η λύση του συστήµατος: A*x = b. x = b/a είναι η λύση του συστήµατος: x*a = b. Οι πράξεις:.*.^./.\ εκτελούνται µεταξύ των στοιχείων των πινάκων. Π.χ. [1 2; 3 4].^2 δίνει[1 4; 9 16]. Σηµειώσεις MATLAB Μ. ρακόπουλος 8 3

Αριστερή διαίρεση Ηx = Ab εκτελεί τα παρακάτω ϐήµατα (σταµατάει όταν επιτύχει) 1. ΑνAάνω ή κάτω τριγωνικός, λύσε µε πίσω/εµπρος αντικατάσταση 2. ΑνAµετάθεση άνω ή κάτω τριγωνικού πίνακα, λύσε µε µετάθεση πίσω/εµπρος αντικατάστασης 3. ΑνAσυµµετρικός/ερµιτιανός (αʹ) (ϐʹ) Ελεγξε αν όλα τα διαγώνια στοιχεία είναι ϑετικά οκίµασε Cholesky, και αν επιτυχής λύσε µε εµπρος/πίσω αντικατάσταση 4. ΑνAπίνακας Hessenberg (άνω τριγώνικός µε µια διαγώνιο κάτω από την κύρια), µετέτρεψέ τον σε άνω τριγωνικό και λύσε µε πίσω αντικατάσταση 5. ΑνAτετραγωνικός, παραγοντοποίησε PA = LU και λύσε µε εµπρός/πίσω αντικατάσταση 6. ΑνAδεν είναι τετραγωνικός, τρέξε Householder QR, και λύσε πρόβληµα ελαχίστων τετραγώνων Σηµειώσεις MATLAB Μ. ρακόπουλος 9 Εντολές, Εκφράσεις, Μεταβλητές Το MATLAB ερµηνεύει κάθε γραµµή στην είσοδο. Οι εντολές του έχουν τη µορφή: µεταβλητή=έκφραση ή απλά έκφραση Οι εκφράσεις είναι σύνθεση τελεστών, µεταβλητών και συναρτήσεων. Ο υπολογισµός τους παράγει πάντα πίνακα (ενδεχοµένως 1 1) που µπορεί να εµφανισθεί στην έξοδο ή να αποθηκευτεί σε µεταβλητή. Οι εντολές τερµατίζονται µε το τέλος της γραµµής. Συνέχεια σε περισσότερες από µία γραµµες αν η προηγούµενη γραµµή τελειώνει σε... Πολλές εντολές σε µία γραµµή γράφονται µεταξύ,ή; Εντολή που τελειώνει σε;δεν παράγει output στην οθόνη. Σηµειώσεις MATLAB Μ. ρακόπουλος 10 Κατασκευή πινάκων Μερικές συναρτήσεις (για σύνταξη: help όνοµα) eye Μοναδιαίος πίνακας zeros Μηδενικός πίνακας ones Πίνακας µε στοιχεία µονάδες diag ιαγώνιος πίνακας triu,tril Ανω, κάτω τριγωνικός πίνακας rand Πίνακας µε τυχαία στοιχεία magic Μαγικά τετράγωνα. Σηµειώσεις MATLAB Μ. ρακόπουλος 11 Παρατηρήσεις, παραδείγµατα zeros(m,n), m n µηδενικός πίνακας, αλλάzeros(n) τετραγωνικός µηδενικός πίνακας. Γιαxδιάνυσµα,diag(x) πίνακας µεxστη διαγώνιο. Για πίνακαa,diag(a) διάνυσµα µε τα διαγώνια στοιχεία τουa. ΕΡΩΤΗΣΗ: Τι υπολογίζει ηdiag(diag(a))? Παραγωγή πινάκων από πίνακες: ανaείναι 3 3 τότε: B = [A, zeros(3,2); ones(2,3), eye(2,2)] δίνει πίνακα 5 5. 4

Σηµειώσεις MATLAB Μ. ρακόπουλος 12 Υποπίνακες Εκφράσεις όπως οι: 1:5 και0.2:0.2:1.2 είναι στην ουσία τα διανύσµατα: [1 2 3 4 5] και[0.2 0.4 0.6 0.8 1.0 1.2] αντίστοιχα. A(1:4,3) διάνυσµα µε τα στοιχεία 1 4 της 3ης στήλης τουa. A(:,3) είναι ή 3η στήλη τουa. A(:,[2,4]) Οι στήλες 2 και 4 τουa. A(:,[2 4 5]) = B(:,1:3) Αντικαθιστά τις στήλες 2, 4 και 5 τουaµε τις στήλες 1, 2, 3 τουb. Σηµειώσεις MATLAB Μ. ρακόπουλος 13 Η εντολήfor x = []; for i = 1:n, x=[x,i^2], ή x = []; for i = 1:n x=[x,i^2] Στην πιο γενική της µορφή: s = 0; % Gia 2D pinaka A: for c = A % Diatrexei tis sthles tou A s = s + sum(c) Σηµειώσεις MATLAB Μ. ρακόπουλος 14 Η εντολήwhile while λογική σχέση εντολές Παράδειγµα: υπολογισµός του log 2 a a = 256; n = 0; while 2^n < a n = n + 1; n ή εναλλακτικά µε χρήση συναρτήσεων: n = floor(log2(a)) Σηµειώσεις MATLAB Μ. ρακόπουλος 15 5

Η εντολήif if λογική σχέση εντολές Παράδειγµα: if n < 0 parity = 0; elseif rem(n,2) == 0 parity = 2; else parity = 1; Σηµειώσεις MATLAB Μ. ρακόπουλος 16 Λογικές σχέσεις και τελεστές help relop Σχέσεις: < > <= >= == = Τελεστές: & (σύζευξη), (διάζευξη), (άρνηση) ΠΑΡΑΤΗΡΗΣΕΙΣ: Τιµές: Αληθής 1 (true), Ψευδής 0 (false). Οι λογικές σχέσεις µεταξύ πινάκων, εκτελούνται µεταξύ των στοιχείων τους και δίνουν πίνακα µε 1 ή 0 στις αντίστοιχες ϑέσεις. Π.χ. L = [1 2; 3 4] > [1 0; 10 0] δίνει την τιµή[0 1; 0 1] στονl Οιwhile καιif ερµηνεύουν µια σχέση µεταξύ πινάκων σαν αληθή όταν ο παραγόµενος πίνακας έχει όλα τα στοιχεία του = 1. Π.χ. για το προηγούµενοl, ηif L, disp( MATLAB ); ΕΝ ΕΚΤΕΛΕΙΤΑΙ Σηµειώσεις MATLAB Μ. ρακόπουλος 17 Βαθµωτές Συναρτήσεις Ενεργούν σε ϐαθµωτά µεγέθη (δηλ. για πίνακα: σε κάθε στοιχείο του και παράγουν πίνακα µε τα αποτελέσµατα, ίδιας διαστασης µε τον αρχικό) sin asin exp abs round cos acos log sqrt floor tan atan rem sign ceil ΠΑΡΑ ΕΙΓΜΑ sin([pi pi/2; 0 pi/4]) [0.0 1.0; 0.0 0.707] Σηµειώσεις MATLAB Μ. ρακόπουλος 18 6

ιανυσµατικές συναρτήσεις Ενεργούν σε διανύσµατα (δηλ. για πίνακα: σε κάθε στήλη του και παράγουν πίνακα γραµµή µε τα αποτελέσµατα κάθε στήλης). ΠΑΡΑ ΕΙΓΜΑΤΑ max([1 2 3]) 3 max([1; 2; 3]) 3 max([1 2 3; 3 2 1]) [3 2 3] max sum median any min prod mean all sort std Σηµειώσεις MATLAB Μ. ρακόπουλος 19 Συναρτήσεις πινάκων eig Ιδιοδιανύσµατα, ιδιοτιµές chol Παραγοντοποίηση Cholesky lu Παραγοντοποίηση Gauss expm e A (συγκρ. exp) sqrtm Τετραγωνική ϱίζα πίνακα (συγκρ. sqrt) det Ορίζουσα size ιαστάσεις norm Νόρµες rank Βαθµός. Σηµειώσεις MATLAB Μ. ρακόπουλος 20 m-αρχεία Εχουν κατάληξη.m 1. Scripts Αρχεία που περιέχουν αλληλουχία εντολών του MATLAB. Π.χ. εντολές στο αρχείο mycommand.m εκτελείται µεmycommand. 2. Συναρτήσεις υνατότητα δηµιουργίας νέων συναρτήσεων. Π.χ. η νέα εντολήrandint ορίζεται στο αρχείοrandint.m: function a = randint(m, n) %RANDINT Randomly generated integral matrix. % RANDINT(M,N) M-by-N matrix. % Elements between 0 and 9 a = floor(10*rand(m,n)); Τι εµφανίζει η: help randint? Σηµειώσεις MATLAB Μ. ρακόπουλος 21 7

Γραφικά - οι συνάρτησειςplot καιsemilogy Η συνάρτησηplot(x,y) σχεδιάζει 2-διάστατες γραφικές παραστάσεις του διανύσµατοςyως προςx. Παράδειγµα: x = -4:.01:4; y = sin(x); plot(x,y); title( MATLAB plot ); xlabel( x ); ylabel( y ) Για λογαριθµική κλίµακα στον άξονα των y: semilogy Παράδειγµα: semilogy(x,y); Σηµειώσεις MATLAB Μ. ρακόπουλος 22 Παραδείγµατα ΕστωA=rand(3,5),x=rand(5,1),Bοποιοσδήποτε 3 5 πίνακας,yένα διάνυσµα 5 1 και C=[1 2 3; 4 5 6; 7 8 9]: Πραξεις: A+B, A+2, C^2, C.^2, C.^C ηµιουργία πινάκων: triu(c), eye(3)-2, -eye(3) Σύνθετοι πίνακες: D = [A; zeros(2,3) ones(2)] For: s=0; for i=1:5, s=s+x(i); ; s, sum(x) Λογικές σχέσεις: D = triu(c), C == D Συναρτήσεις: sin(b), max(y), rank(b), det(c), size(x) help eig, eig(c), [V,L]=eig(C) Υποπίνακες: B(2:3,[1,5]), B(:,2), B(2,:), B(:,1:3)=eye(3) Σηµειώσεις MATLAB Μ. ρακόπουλος 23 Χρήσιµες συναρτήσεις rand(m,n) Τυχαίος πίνακας m n. rand(n) Τυχαίος πίνακας n n. ones(m,n) Πίνακας m n µε στοιχεία 1. zeros(m,n) Πίνακας m n µε στοιχεία 0. diag(v) ιαγώνιος πίνακας µε το διάνυσµα v στην κύρια διαγώνιο. diag(v,k) Πίνακας µε το διάνυσµα v στην k διαγώνιο (k = 0 κύρια διαγώνιος, k > 0/k < 0 πάνω/κάτω από κύρια διαγώνιο. Σηµειώσεις MATLAB Μ. ρακόπουλος 24 8

Παράδειγµα: δηµιουργία τριδιαγώνιου πίνακα Η εντολή: 10*eye(3)+diag(ones(2,1),1)+diag(ones(2,1),-1) δίνει τον τριδιαγώνιο πίνακα: 10 1 0 1 10 1 0 1 10 = 10 0 0 0 10 0 0 0 10 + 0 1 0 0 0 1 0 0 0 + 0 0 0 1 0 0 0 1 0 ο οποίος είναι όµως και πίνακας Toeplitz και µπορεί να δηµιουργηθεί απλούστερα και µε τη συνάρτηση toeplitz που περιλαµβάνει ϕυσικά το MATLAB: toeplitz([10 1 0]) Σηµειώσεις MATLAB Μ. ρακόπουλος 25, Αποτελεσµατικότητα συναρτήσεων Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 1ος τρόπος: function A = slowest(n) %SLOWEST(N) pinakas A, NxN me A(I,J) = 1/(I+J) for i=1:n for j=1:n A(i,j) = 1 / (i+j); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 451.55s Σηµειώσεις MATLAB Μ. ρακόπουλος 26 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 2ος τρόπος: function A = slower(n) %SLOWER(N) pinakas A, NxN me A(I,J) = 1/(I+J) A = zeros(n); for i=1:n for j=1:n A(i,j) = 1 / (i+j); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 1.37s Σηµειώσεις MATLAB Μ. ρακόπουλος 27 9

Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 3ος τρόπος: function A = slow(n) %SLOW(N) pinakas A, NxN me A(I,J) = 1/(I+J) A = zeros(n); for j=1:n for i=1:n A(i,j) = 1 / (i+j); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 1.01s Σηµειώσεις MATLAB Μ. ρακόπουλος 28 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 4ος τρόπος: function A = fast(n) %FAST(N) pinakas A, NxN me A(I,J) = 1/(I+J) A = cumsum(ones(n)); A = 1./(A + A ); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 0.65s Σηµειώσεις MATLAB Μ. ρακόπουλος 29 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 5ος τρόπος: function A = faster(n) %FASTER(N) pinakas A, NxN me A(I,J) = 1/(I+J) A = zeros(n); tmp = (1:n) ; for i=1:n A(:,i) = tmp; A = 1./(A + A ); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 0.55s Σηµειώσεις MATLAB Μ. ρακόπουλος 30 10

Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij = 1/(i + j). 6ος τρόπος: function A = fastest(n) %FASTEST(N) pinakas A, NxN me A(I,J) = 1/(I+J) A = zeros(n); tmp = (1:n) ; for i=1:n A(:,i) = 1./(tmp + i); Χρόνος εκτέλεσης για n = 5000 σε AMD Opteron 2.4GHz 0.39s Σηµειώσεις MATLAB Μ. ρακόπουλος 31 Χρόνοι εκτέλεσης σε AMD Opteron 2.4GHz n slower slow fast faster fastest 5000 1.37 1.01 0.65 0.55 0.39 7000 3.00 1.97 1.30 1.10 0.73 10000 6.00 4.01 2.73 2.29 1.48 αλλά για n = 20000 n slower slow fast faster fastest 20000 27.02 16.39 115.51 87.89 4.84 Οι συναρτήσειςfast καιfaster δεν χωράνε στη µνήµη swapping! Σηµειώσεις MATLAB Μ. ρακόπουλος 32 Οδηγίες για γρηγορότερα προγράµµατα MATLAB έσµευσε εκ των προτέρων χώρο για πίνακες (π.χ. µε τηνzeros(m,n)) Χρησιµοποίησε πράξεις σε ολόκληρα διανύσµατα ή πίνακες αντί για ϐρόγχους επανάληψης µε ϐαθµωτά µεγέθη. Χρησιµοποίησε εσωτερικές συναρτήσεις του MATLAB όπου είναι δυνατόν. ούλεψε µε στήλες αντί γραµµές. Σηµειώσεις MATLAB Μ. ρακόπουλος 33 11