ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK ρ. Γεώργιος Φ. Φραγκούλης Καθηγητής Ver. 0.2 9/2012
ιανύσµατα & ισδιάστατοι πίνακες Ένα διάνυσµα u = (u1, u2,, u ) εισάγεται στη MATLAB ως εξής : u=[ u1, u2,, un ] ή u=[ u1 u2 un] Έτσι οι συνιστώσες βρίσκονται ανάµεσα σε αγκύλες (όχι παρενθέσεις) και διαχωρίζονται από κόµµατα ή απλώς µε διαστήµατα. 2
Ορισµός πινάκων Οι πίνακες ορίζονται µε παρόµοιο τρόπο: δίνουµε τα στοιχεία κάθε γραµµής και για να υποδείξουµε την αλλαγή γραµµής χρησιµοποιούµε το σύµβολο ; ή απλά αλλάζουµε γραµµή a=[ -3, 4, 0] ή a=[-3 4 0 ] b=[1; 2; -4; 3] A=[ 1 2 3 4 1 0 1 0-1 2-2 1 4 1 0 0] 3
Ορισµός πινάκων Είναι φανερό ότι τα διανύσµατα είναι ειδικές περιπτώσεις πινάκων. Ένα διάνυσµα στήλης είναι ένας m 1 πίνακας ενώ ένα διάνυσµα γραµµής είναι ένας 1 n πίνακας. Επίσης, ένας αριθµός αντιστοιχεί σε ένα 1 1 πίνακα. H εντολή whos µας δίνει (µεταξύ άλλων) και τις διαστάσεις των a, b και A που µόλις ορίσαµε: 4
Πράξεις µεταξύ πινάκων 5
Πράξεις µεταξύ πινάκων Εννοείται βέβαια ότι οι χρησιµοποιούµενοι πίνακες πρέπει να είναι συµβιβαστοί ως προς την πράξη που κάνουµε. Έτσι, η ύψωση σε δύναµη είναι δυνατή µόνο για τετραγωνικούς πίνακες. ο ανάστροφος Α Τ ενός πραγµατικού πίνακα Α, συµβολίζεται µε A' 6
Πράξεις µεταξύ πινάκων Οι εντολές A*A*A και A^3 όπου Α τετραγωνικός πίνακας είναι ισοδύναµες. Μπορούµε να πολλαπλασιάσουµε όλα τα στοιχεία ενός πίνακα Α και ενός διανύσµατος u µε ένα αριθµό x (βαθµωτός πολλαπλασιασµός) x*a και x*u 7
Πράξεις στοιχείων πινάκων Με τον ίδιο τρόπο µπορούµε να διαιρέσουµε όλα τα στοιχεία µε κάποιο µη µηδενικό αριθµό x: A/x και u/x 8
ιαιρέσεις πινάκων Το MATLAB είναι ένα αρκετά προχωρηµένο λογισµικό και επιτρέπει την επίλυση γραµµικών συστηµάτων µε πολλούς τρόπους. Αν ο A είναι ένας αντιστρέψιµος πίνακας έχουµε τις πιο κάτω διαιρέσεις πινάκων: A\b µας δίνει τη λύση του συστήµατος Αριστερή ιαίρεση Ax = b 9
ιαιρέσεις πινάκων A/b µας δίνει τη λύση συστήµατος εξιά ιαίρεση xa = b όπου οι πίνακες A, x και b έχουν συµβιβαστές διαστάσεις 10
ιαιρέσεις πινάκων Η διαφορά της αριστερής & δεξιάς ιαίρεσης: 11
Στοιχειώδεις πίνακες 12
Παράδειγµα 13
Στοιχειώδεις πίνακες Η rand(m,n) µας δίνει ένα m n πίνακα µε τυχαία στοιχεία επιλεγµένα από µια οµοιόµορφη κατανοµή στο διάστηµα [0, 1]. Με αυτή την κατανοµή, το ποσοστό των αριθµών που βρίσκονται στο διάστηµα [a, b], όπου 0 < a < b <1, είναι b a. 14
Παράδειγµα Θα κατασκευάσουµε ένα ψευδοτυχαίο 4 4 πίνακα: >> rand(4) 15
Στοιχειώδεις πίνακες Οι συναρτήσεις pascal και magic επίσης ορίζουν τετραγωνικούς πίνακες. Η πρώτη µας δίνει τον κλασικό πίνακα του Pascal ενώ η magic επιστρέφει µαγικά τετράγωνα. 16
Παράδειγµα 17
Στοιχειώδεις πίνακες 18
Ορισµός ιανυσµάτων µε βήµα Η MATLAB µας δίνει τη δυνατότητα να ορίσουµε τα στοιχεία ενός διανύσµατος µε κάποιο βήµα: 19
Παραδείγµατα u=[-1:1:10] -> u = ( 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) u=[-1:2:9] -> u = ( 1, 1, 3, 5, 7, 9) A=[1:5;10:-2:2] 20
Παράδειγµα Θα κατασκευάσουµε τo u = ( 1, 1, 3, 5, 7, 9). >> u=[-1:2:9] u =[-1 1 3 5 7 9] Θα κατασκευάσουµε το u = ( 1, 2, 5, 8). >> u=[-1:3:10] u =[-1 2 5 8] 21
Παράδειγµα Θα κατασκευάσουµε τους πίνακες >>A=[1:5;10:-2:2] >>Β=[1:5;2:2:10;3:3:15] 22
Γραµµές, στήλες & υποπίνακες Εάν Τότε 23
Παράδειγµα Θεωρούµε τον πίνακα : Θα πάρουµε διαδοχικά τα στοιχεία a13 και a32, τη δεύτερη στήλη καθώς και την τρίτη γραµµή του Α: >> A(1,3) >> A(3,2) >> A(:,2) >> A(3:,) 24
Σύνθετοι πίνακες Στη γραµµική άλγεβρα, άρα και στο MATLAB, συχνά µας βολεύει να χρησιµοποιήσουµε σύνθετους πίνακες (block matrices). Οι σύνθετοι αυτοί πίνακες προκύπτουν µε τη συνένωση (concatenation) µικρότερων υποπινάκων. Για την κατασκευή ενός σύνθετου πίνακα χειριζόµαστε τους υποπίνακες όπως και τα απλά στοιχεία ενός πίνακα. Έτσι, αν για παράδειγµα οι A, B, C και D είναι m n πίνακες τότε 25
Σύνθετοι πίνακες 26
Παράδειγµα Έστω οι πίνακες : Θα κατασκευάσουµε τους σύνθετους πίνακες 27
Παράδειγµα >> A=[1 2; 3 4]; >> B=[-4 1; 2 0]; >> I=eye(2); >> O=zeros(2); >> E=[A B] >> F=[A;B] >> G=[ A B; I O] 28
Επίλυση γραµµικών συστηµάτων Έστω το γραµµικό σύστηµα Ax = b. Είναι γνωστό ότι o σύνθετος πίνακας [Α b] καλείται επαυξηµένος πίνακας (augmented matrix) του συστήµατος. Αν γνωρίζουµε τα Α και b, τότε είναι πολύ εύκολο να κατασκευάσουµε τον επαυξηµένο πίνακα στο ΜΑΤLAB γράφοντας [Α b]. 29
Πράξεις µεταξύ πινάκων Η MATLAB µας δίνει τη δυνατότητα να κάνουµε τις ίδιες πράξεις σε όλα τα στοιχεία ενός διανύσµατος ή ενός πίνακα. Οι προκύπτουσες τιµές αποθηκεύονται αντίστοιχα σε διάνυσµα ή πίνακα. Για παράδειγµα αν θέλουµε να υπολογίσουµε τα ηµίτονα όλων των στοιχείων του διανύσµατος u αρκεί να γράψουµε sin(u) 30
Παράδειγµα >> u=[0:0.2:1] u = 0 0.2000 0.4000 0.6000 0.8000 1.0000 >> sin(u) ans = 0 0.1987 0.3894 0.5646 0.7174 0.8415 >> exp(u) ans = 1.0000 1.2214 1.4918 1.8221 2.2255 2.7183 31
Πράξεις µεταξύ πινάκων Εντελώς ανάλογα εκτελούνται πράξεις κατά τα οµοθέσια στοιχεία δύο m n πινάκων Α και Β: 32
Παράδειγµα ίνονται οι πίνακες : Θα εφαρµόσουµε τις παραπάνω πράξεις στους πίνακες Α και Β >> A=[1 1 1; 2 2 2; 3 3 3]; >> B=2*eye(3)+1; 33
Παράδειγµα >> A./B ans = 0.3333 1.0000 1.0000 2.0000 0.6667 2.0000 3.0000 3.0000 1.0000 >> A.\B ans = 3.0000 1.0000 1.0000 0.5000 1.5000 0.5000 0.3333 0.3333 1.0000 >> 2.^B ans = 8 2 2 2 8 2 2 2 8 >> A.^B ans = 1 1 1 2 8 2 3 3 27 34
Παράδειγµα Είναι φανερή η διαφορά µεταξύ του Α^2 και του Α.^2. Ενώ το Α^2 (=Α*Α) είναι το τετράγωνο του πίνακα, το Α.^2 είναι ο πίνακας µε στοιχεία τα τετράγωνα των στοιχείων του Α. 35
Παράδειγµα >> A=[1-2+i; 3 i]; >> A^2 ans = -5.0000 + 3.0000i -3.0000-1.0000i 3.0000 + 3.0000i -7.0000 + 3.0000i >> A.^2 ans = 1.0000 3.0000-4.0000i 9.0000-1.0000 36
Συναρτήσεις Βιβλιοθήκης για διανύσµατα 37
Εσωτερικό γινόµενο πινάκων Το εσωτερικό γινόµενο ab δύο ίσου µήκους διανυσµάτων a και b υπολογίζεται µε την εντολή dot(a,b) Η µόνη προϋπόθεση για να γίνει η πράξη είναι τα a και b να έχουν το ίδιο µήκος. Έτσι µπορεί να είναι και τα δύο διανύσµατα γραµµές ή και τα δύο διανύσµατα στήλες ή το ένα διάνυσµα γραµµή και το άλλο διάνυσµα στήλη. 38
Εξωτερικό γινόµενο Το εξωτερικό γινόµενο u v δύο διανυσµάτων u και v του R3 υπολογίζεται µε την εντολή cross(u,v) Το εξωτερικό γινόµενο µας δίνει ένα διάνυσµα γραµµή εκτός αν και τα δύο διανύσµατα είναι διανύσµατα στήλες. 39
Παράδειγµα >> a=[-2;1;3]; >> b=[0;2;1]; >> dot(a,b) ans = 5 >> cross(a,b) ans = -5 2-4 40
Χρήσιµες συναρτήσεις βιβλιοθήκης για πίνακες 41
Παράδειγµα Αν θέλουµε να βρούµε το µέγιστο στοιχείο ενός πίνακα Α αρκεί να γράψουµε max(max(a)). Οµοίως αν θέλουµε να βρούµε το ελάχιστό του στοιχείο γράφουµε min(min(a)). 42
Παράδειγµα Έστω ο πίνακας : Θα βρούµε το διάνυσµα µε τα µέγιστα στοιχεία κάθε στήλης καθώς και το µέγιστο στοιχείο του πίνακα. 43 >> max(c) ans = 1 9 4 2 3 >> max(max(c)) ans = 9
Πινακοσυναρτήσεις Μπορούµε να ορίσουµε την τετραγωνική ρίζα τετραγωνικού πίνακα Α. Αν 44
Πινακοσυναρτήσεις Κάθε µη ιδιάζων πίνακας έχει τουλάχιστον δύο τετραγωνικές ρίζες. Επίσης µπορούµε να ορίσουµε τον εκθετικό πίνακα ως εξής: 45
Παράδειγµα >> X=[1 2;0 1]; >> A=expm(X) A = 2.7183 5.4366 0 2.7183 46
Συναρτήσεις πινάκων Οι συναρτήσεις πινάκων του MATLAB χαρακτηρίζονται από το τελικό m που εµφανίζεται στο όνοµά τους. Έτσι η sqrtm µας δίνει την τετραγωνική ρίζα πίνακα, η expm τον εκθετικό πίνακα, και η logm τον λογάριθµο πίνακα. 47
Παράδειγµα Εστω ο πίνακας >> A=[17 8; 8 17]; >> sqrt(a) ans = 4.1231 2.8284 2.8284 4.1231 48 >> X=sqrtm(A) X = 4.0000 1.0000 1.0000 4.0000 >> X^2 ans = 17.0000 8.0000 8.0000 17.0000