ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 4 η ΕΝΟΤΗΤΑ Μητρώα και συνθήκες στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative Commons. για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. 47
Περιεχόμενα 1) Συνθήκες/Αποφάσεις 2) Vectors 3) Matrices 4) Arrays 48
Συνθήκες/Αποφάσεις Ένα από τα βασικά στοιχεία στον προγραμματισμό είναι η δυνατότητα διακλάδωσης της ροής του προγράμματος σε διαφορετική κατεύθυνση, ανάλογα με το αν ικανοποιείται κάποια συνθήκη. Οι βασικές εντολές επιλογής (δηλαδή διακλάδωσης της ροής του προγράμματος) είναι η if και η switch. Η έξοδος των αποτελεσμάτων στην οθόνη (δηλαδή στο Command Window) στο MATLAB γίνεται με τις εντολές disp και fprintf: Σύνταξη της εντολής fprintf: fprintf('παράσταση', <μεταβλητές>) 49
Συνθήκες/Αποφάσεις Συγκριτικές πράξεις / Συγκριτικοί (σχεσιακοί) τελεστές: Οι συγκριτικές πράξεις λειτουργούν ως συναρτήσεις, με είσοδο δύο μεταβλητές και έξοδο μια λογική τιμή (true ή false, 1 ή 0), ανάλογα με το αποτέλεσμα της σύγκρισης. Οι συγκριτικές πράξεις με τους τελεστές τους είναι. 50
Διάνυσμα/Μητρώο Ένα διάνυσμα >> x = [1 2 5 1] x = 1 2 5 1 Ένα μητρώο >> x = [1 2 3; 5 1 4; 3 2-1] x = 1 2 3 5 1 4 3 2-1 51
Δημιουργία Διανυσμάτων/Μητρώων Παραδείγματα: >> t =1:10 t = 1 2 3 4 5 6 7 8 9 10 >> k = 2:-0.5:-1 k = 2 1.5 1 0.5 0-0.5-1 >> B = [1:4; 5:8] B = 1 2 3 4 5 6 7 8 52
Δημιουργία μητρώων από συναρτήσεις zeros(m,n) δημιουργία μητρώου MxN αποτελούμενο από 0 >> x = zeros(1,3) x = 0 0 0 ones(m,n) δημιουργία μητρώου MxN αποτελούμενο από 1 >> x = ones(1,3) x = 1 1 1 rand(m,n) δημιουργία μητρώου MxN αποτελούμενο από τυχαίους αριθμούς ομοιόμορφα κατανεμημένους στο (0,1) >> x = rand(1,3) x = 0.9501 0.2311 0.6068 53
Indexing Οι τιμές των δεικτών ξεκινούν από 1 (όπως στην FORTRAN και όχι 0 όπως στην C). Οι δείκτες είναι θετικοί ακέραιοι αριθμοί. >> A(-2), A(0) Error:??? Subscript indices must either be real positive integers or logicals. >> A(4,2) Error:??? Index exceeds matrix dimensions. 54
Αλληλουχία (Concatenation) >> x = [1 2], y = [4 5], z=[0 0] >> A = [x y] 1 2 4 5 >> B = [x; y] 1 2 4 5 >> C = [x y ;z] Error:??? Error using ==> vertcat CAT arguments dimensions are not consistent. 55
Πράξεις μεταξύ μητρώων Δίνονται τα μητρώα A και B: Πρόσθεση Αφαίρεση Γινόμενο Ανάστροφο 56
Dot/cross product Εσωτερικό Γινόμενο Εξωτερικό Γινόμενο Το αποτέλεσμα είναι ένα διάνυσμα C κάθετο στα A,B 57
Πράξεις στοιχείο/στοιχείο.* πολλαπλασιασμός στοιχείο-στοιχείο./ διαίρεση στοιχείο-στοιχείο.^ ύψωση σε εκθέτη στοιχείο-στοιχείο 58
Χρήση του τελεστή «.» >> A = [1 2 3; 5 1 4; 3 2 1] A = 1 2 3 5 1 4 >> x = A(1,:) x = 1 2 3 3 2-1 >> y = A(3,:) y = 3 4-1 >> b = x.*y >> b = 3 8-3 >> c = x./y >> c = 0.33 0.5-3 >> d = x.^2 >> d = 1 4 9 >> K = x^2 Error:??? Error using ==> mpower square. Matrix must be >> B = x*y Error:??? Error using ==> mtimes Inner matrix dimensions must agree. 59
Αντίστροφος Ο αντίστροφος πίνακας ενός τετραγωνικού πίνακα στο MATLAB καθορίζεται από την απλή εντολή inv(a). Έτσι, αν B είναι ο αντίστροφος του A, η εντολή συνάσσεται: >> B = inv(a) >> A = [1 2 3; 5 1 4; 3 2 1] A = 1 2 3 5 1 4 3 2-1 Ποιος είναι ο ανάστροφος και ποιος ο αντίστροφος πίνακας του Α? 60
Επίλυση Γραμμικών Συστημάτων Παράδειγμα: ένα γραμμικό σύστημα με τρεις εξισώσεις και 3 αγνώστους (x 1, x 2, x 3 ): 3x 1 + 2x 2 x 3 = 10 -x 1 + 3x 2 + 2x 3 = 5 x 1 x 2 x 3 = -1 Ας θεωρήσουμε: 3 2 1 A 1 3 2 1 1 1 x x1 x 2 x 3 b 10 5 1 Συνεπώς το σύστημα γράφεται: Ax = b 61
Επίλυση Γραμμικών Συστημάτων Επίλυση με χρήση αντιστρόφου: Ax = b A -1 Ax = A -1 b x = A -1 b Κώδικας MATLAB: >> A = [ 3 2-1; -1 3 2; 1-1 -1]; >> b = [ 10; 5; -1]; >> x = inv(a)*b x = -2.0000 5.0000-6.0000 Επίλυση με Matrix Division: Tο σύστημα γραμμικών εξισώσεων Ax = b μπορεί να επιλυθεί με «left division» με την χρήση του τελεστή «\». Κώδικας MATLAB: >> A = [ 3 2-1; -1 3 2; 1-1 -1]; >> b = [ 10; 5; -1]; >> x = A\b x = -2.0000 5.0000-6.0000 Σημείωση: left division: A\b b A right division: x/y x y 62
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα Πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοιχτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση. 63