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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διανύσµατα στο επίπεδο

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

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

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

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

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

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

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

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

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

Στοχαστικά Σήµατα και Εφαρµογές

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές

Εισαγωγικά Ενδογενείς συναρτήσεις

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

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

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

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

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

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

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

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

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

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

Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων. Μαθηµατικά Ι Ακαδ. Έτος /58

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

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

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ ΙΙ ΜΑΘΗΜΑ 1-2-ΠΙΝΑΚΕΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΠΑΝΗΠΙΣΤΗΜΙΟΠΑΤΡΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

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

Αριθµητική Γραµµική ΑλγεβραΚεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών 2 Απριλίου και2015 Ιδιοδιανυσµάτων 1 / 50

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Transcript:

1 Τι είναι το Matlab? Το Matlab (MATrix LABoratory) είναι ένα interactive σύστηµα για: αριθµητικούς υπολογισµούς, δίχως προγραµµατισµό σε συµβατικές γλώσσες (Fortran, C) γρήγορη ανάπτυξη και έλεγχο αλγορίθµων, (πλήθος έτοιµων συναρτήσεων και απλουστευµένη αλγοριθµική γλώσσα) ανάλυση δεδοµένων και γραφική παρουσίαση τους εφαρµογές από διάφορες ϑεµατικές περιοχές µέσω κατάλληλων toolboxes (στατιστική ανάλυση, ϑεωρία ελέγχου, επεξεργασία σήµατος, ϐελτιστοποίηση, νευρωνικά δίκτυα, «συµβολικά» µαθηµατικά, κ.π.α.) ηµιουργήθηκε απο τον C. Moler, αρχικά σαν εργαλείο διαχείρισης των ϐιβλιοθηκών Fortran: LINPACK (γρ. άλγεβρα) και EISPACK (ιδιοτιµές και ιδιοδιανύσµατα). Εξελίχθηκε σε σύνθετο πακέτο (γραµµένο σε C, C++) που αναπτύσσεται συνεχώς.

2 Βοήθεια στο Matlab help λίστα µε κατηγορίες ϐοήθειας. help ϑέµα ϐοήθεια σε ένα συγκεκριµένο ϑέµα ή συνάρτηση. lookfor λέξη-κλειδί ψάχνει σε όλες τις συναρτήσεις για τη λέξη-κλειδί helpdesk «ϕορτώνει» στον Web browser αναλυτική τεκµηρίωση για το Matlab και τα toolboxes του. demo επίδειξη δυνατοτήτων του Matlab.

3 Τα πάντα είναι πίνακες! Βασικό αντικείµενο του Matlab είναι οι πίνακες (πραγµατικοί ή µιγαδικοί). Σε µερικές περιπτώσεις το Matlab ερµηνεύει: - πίνακες 1 1 σαν ϐαθµωτά µεγέθη, και - πίνακες µε 1 γραµµή ή 1 στήλη σαν διανύσµατα. Η γλώσσα του Matlab είναι α-τυπη (δεν χρειάζεται δήλωση µεταβλητών). Στο Matlab οι πράξεις κινητής υποδιαστολής γίνονται σύµφωνα µε το standard της IEEE, συνήθως σε διπλή ακρίβεια.

4 Εισαγωγή πινάκων 1. Αµεσα από το χρήστη: A = [1 2 3; 4 5 6; 7 8 9] ή ισοδύναµα A = [ 1 2 3 4 5 6 7 8 9 ] 2. Από συναρτήσεις του Matlab: b = rand(1,5) δηµιουργεί τυχαίο πίνακα 1 5 (διάνυσµα) µε στοιχεία ¾ ¼, ½. ΠΡΟΣΠΕΛΑΣΗ ΣΤΟΙΧΕΙΩΝ: A(1,2) για πίνακες, ή b(a(2,2)) για διανύσµατα. Οι δείκτες είναι ϑετικές ακέραιες σταθερές ή µεταβλητές.

5 Πράξεις πινάκων + Πρόσθεση help arith - Αφαίρεση help arith * Πολ/σµός help arith ˆ Υψωση σε δύναµη help arith Ανάστροφος πίνακας help punct \ Αριστερή διαίρεση help slash / εξιά διαίρεση help slash

6 Πράξεις πινάκων (συνεχ.) Παρατηρήσεις Ισχύουν και για ϐαθµωτά µεγέθη ( πίνακες 1 1) Ασυµβατότητα διαστάσεων µ ΛΑΘΟΣ. ΕΞΑΙΡΕΣΗ: πράξεις µεταξύ πινάκων και αριθµών, οπότε η πράξη εκτελείται µεταξύ του αριθµού και κάθε στοιχείου του πίνακα. Για τις διαιρέσεις: Αν ο πίνακας A είναι αντιστρέψιµος τότε: x = A\b είναι η λύση του συστήµατος: A*x = b. x = b/a είναι η λύση του συστήµατος: x*a = b. Οι πράξεις:.*.ˆ./.\ εκτελούνται µεταξύ των στοιχείων των πινάκων. Π.χ. [1 2; 3 4].ˆ2 δίνει [1 4; 9 16].

7 Εντολές, Εκφράσεις, Μεταβλητές Το Matlab ερµηνεύει κάθε γραµµή στην είσοδο. Οι εντολές του έχουν τη µορφή: µεταβλητή έκφραση ή απλά έκφραση Οι εκφράσεις είναι σύνθεση τελεστών, µεταβλητών και συναρτήσεων. Ο υπολογισµός τους παράγει ένα πίνακα που µπορεί να εµφανισθεί στην έξοδο ή να αποθηκευτεί σε µεταβλητή. Οι εντολές τερµατίζονται µε το τέλος της γραµµής. Συνέχεια σε περισσότερες από µία γραµµες αν η προηγούµενη γραµµή τελειώνει σε... Πολλές εντολές µεταξύ, ή ; γράφονται σε µία γραµµή. Εντολή που τελειώνει σε ; δεν παράγει output στην οθόνη.

8 Κατασκευή πινάκων Μερικές συναρτήσεις (για σύνταξη: help όνοµα) eye zeros ones diag triu, tril rand magic Μοναδιαίος πίνακας Μηδενικός πίνακας Πίνακας µε στοιχεία µονάδες ιαγώνιος πίνακας Ανω, κάτω τριγωνικός πίνακας Πίνακας µε τυχαία στοιχεία Μαγικά τετράγωνα.

9 Παρατηρήσεις, παραδείγµατα 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.

10 Υποπίνακες Οι εκφράσεις: 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) διάνυσµα µε τα 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.

11 Η εντολή for x = []; for i = 1:n, x=[x,iˆ2], end ή x = []; for i = 1:n x=[x,iˆ2] end Στην πιο γενική της µορφή: s = 0; % Gia 2D pinaka A: for c = A % Diatrexei tic sthles tou A s = s + sum(c) end

12 Η εντολή while while λογική σχέση end εντολές Παράδειγµα: υπολογισµός του ÐÓ ¾ a a = 256; n = 0; while 2ˆn < a n = n + 1; end n και µε χρήση συναρτήσεων: n = floor(log2(a))

13 Η εντολή if if λογική σχέση end εντολές Παράδειγµα: if n < 0 parity = 0; elseif rem(n,2) == 0 parity = 2; else parity = 1; end

14 Λογικές σχέσεις και τελεστές help relop Σχέσεις: < > <= >= == = Τελεστές: & (σύζευξη), (διάζευξη), (άρνηση) ΠΑΡΑΤΗΡΗΣΕΙΣ: Τιµές: Αληθής 1, Ψευδής 0. Οι λογικές σχέσεις µεταξύ πινάκων, εκτελούνται µεταξύ των στοιχείων τους και δίνουν πίνακα µε 1 ή 0 στις αντίστοιχες ϑέσεις. Π.χ. L = [1 2; 3 4] > [1 0; 10 0] δίνει την τιµή [0 1; 0 1] στον L Οι while και if ερµηνεύουν µια σχέση µεταξύ πινάκων σαν αληθή όταν ο παραγόµενος πίνακας έχει όλα τα στοιχεία του ½. Π.χ. για το προηγούµενο L, η if L, disp( MATLAB ); end ΕΝ ΕΚΤΕΛΕΙΤΑΙ

15 Βαθµωτές Συναρτήσεις Ενεργούν σε ϐαθµωτά µεγέθη (δηλ. για πίνακα: σε κάθε στοιχείο του και παράγουν πίνακα µε τα αποτελέσµατα, ίδιας διαστασης µε τον αρχικό) ΠΑΡΑ ΕΙΓΜΑ 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]

16 ιανυσµατικές συναρτήσεις Ενεργούν σε διανύσµατα (δηλ. για πίνακα: σε κάθε στήλη του και παράγουν πίνακα γραµµή µε τα αποτελέσµατα κάθε στήλης). max sum median any min prod mean all sort std ΠΑΡΑ ΕΙΓΜΑΤΑ max([1 2 3]) 3 max([1; 2; 3]) 3 max([1 2 3; 3 2 1]) [3 2 3]

17 Συναρτήσεις πινάκων eig chol lu expm sqrtm det size norm rank Ιδιοδιανύσµατα, ιδιοτιµές Παραγοντοποίηση Choleski Παραγοντοποίηση Gauss e A (συγκρ. exp) Τετραγωνική ϱίζα πίνακα (συγκρ. sqrt) Ορίζουσα ιαστάσεις Νόρµες Βαθµός.

18 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?

19 Γραφικά - οι συνάρτησεις 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);

20 Παραδείγµατα Για: A=rand(3,5), B οποιοσδήποτε 3 5 πίνακας, x=rand(5,1), y ένα διάνυσµα 5 1 και C=[1 2 3; 4 5 6; 7 8 9]: 1. Πραξεις: A+B, A+2, Cˆ2, C.ˆ2, C.ˆC 2. ηµιουργία πινάκων: diag(c), diag(y), diag(diag(c)), triu(c) eye(3)-2, -eye(3) 3. Σύνθετοι πίνακες: D = [A; zeros(2,3) ones(2)] 4. For: s = 0; for i = 1:5, s = s + x(i); end; s, sum(x)

21 5. Λογικές σχέσεις: D = triu(c), C == D 6. Συναρτήσεις: sin(b), max(y), rank(b), det(c), size(x) help eig eig(c) [V,L]=eig(C) 7. Υποπίνακες: B(1:2,3), B(:,2), B(2,:), B(:, [1 5]) M = B, M(:,1:3)=eye(3) 8. Γραφικά: x=-4:.01:4; y = sin(x); plot(x,y); title( MATLAB plot ); xlabel( x ); ylabel( sin )

22 Χρήσιµες συναρτήσεις 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 ¼ διαγώνιο κύρια διαγώνιος, k> ¼/k< ¼ πάνω/κάτω από κύρια διαγώνιο.

23 Παράδειγµα: δηµιουργία τριδιαγώνιου πίνακα Η εντολή: 10*eye(3) + diag(ones(2,1),1) + diag(ones(2,1),-1) δίνει τον τριδιαγώνιο πίνακα: ¼ ½ ¼ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ½¼ ¼ ¼ ¼ ¼ ¼ ½¼ ½ ¼ ¼ ¼ ½ ½ ½¼ ½ ½ ¼ ¼ ¼ ½ ½¼ ¼ ½¼ ¼ ¼ ¼ ½¼ ¼ ¼ ¼ ¼ ½ ¼

24 Κόστος Αλγορίθµων Για οποιαδήποτε συνάρτηση fun(...): 1. Αριθµός πράξεων flops (δεν υποστηρίζεται σε νεώτερες εκδόσεις του Matlab) flops(0); fun(...); flops Προσθαφαιρέσεις: 1 flop για πραγµατικούς, 2 flops για µιγαδικούς. Πολ/σµοί, διαιρέσεις: 1 flop για πραγµατικούς, 6 flops για µιγαδικούς. Βασικές συναρτήσεις: 1 flop για πραγµατικούς, περισσότερα για µιγαδικούς. 2. Χρονική διάρκεια tic; fun(...); toc

25 Παράδειγµα: Linpack benchmark Μέτρηση υπολογιστικής ταχύτητας σε MFlopS (= MegaFlop/sec) µε ϐάση το χρόνο που απαιτείται για την επίλυση µε απαλοιφή Gauss γραµµικού συστήµατος 100 100: n = 100; A = rand(n); b = rand(n,1); flops(0); tic; x = A\b; t = toc; megaflops = flops/t/1.e6

26 Αποτελεσµατικότητα συναρτήσεων Πίνακας A, n n µε στοιχεία: a ij ½/ i jµς 1ος τρόπος, χρόνος εκτέλεσης για n ¼¼ σε Pentium 1 146.53s function A = slower(n) %SLOWER(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); end end

27 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij ½/ i jµ 2ος τρόπος, χρόνος εκτέλεσης για n ¼¼ σε Pentium 1 120.01s function A = slow(n) %SLOW(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); end end

28 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij ½/ i jµ 3ος τρόπος, χρόνος εκτέλεσης για n ¼¼ σε Pentium 1 1.38s function A = fast(n) %FAST(N) pinakas A, NxN me A(I,J) = 1/(I+J) Y = zeros(n); for i=1:n Y(i,:) = 1:n; end A = 1./(Y + Y );

29 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij ½/ i jµ 4ος τρόπος, χρόνος εκτέλεσης για n ¼¼ σε Pentium 1 0.94s 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,:) = 1./(tmp + i); end

30 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας A, n n µε στοιχεία: a ij ½/ i jµ 5ος τρόπος, χρόνος εκτέλεσης για n ¼¼ σε Pentium 1 0.69s 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); end }

31 Χρόνοι εκτέλεσης σε Pentium 4 n slower slow fast faster fastest 500 4.45 1.07 0.06 0.03 0.02 1000 30.26 4.14 0.29 0.11 0.07 10 2 n=500 n=1000 10 1 slower time 10 0 slow 10 1 10 2 1 1.5 2 2.5 3 3.5 4 4.5 5 fast faster fastest

32 Οδηγίες για γρηγορότερα προγράµµατα Matlab έσµευσε εκ των προτέρων χώρο για πίνακες (π.χ. µε την zeros(m,n)) Χρησιµοποίησε πράξεις σε ολόκληρα διανύσµατα ή πίνακες αντί για ϐρόγχους επανάληψης µε ϐαθµωτά µεγέθη. Χρησιµοποίησε εσωτερικές συναρτήσεις του Matlab όπου είναι δυνατόν.

33 Επίλυση γραµµικών συστηµάτων Αν A πίνακας n n και b, x διανύσµατα στήλες, τότε: x = A\b υπολογίζει τη λύση του συστήµατος Ax b µε κάποια µορφή απαλοιφής Gauss. Αλγόριθµοι 1. A συµµετρικός: παραγοντοποίηση Choleski. 2. A µη συµµετρικός: απαλοιφή Gauss µε µερική οδήγηση. Στη γενικευµένη µορφή του ο τελεστής \ επιλύει συστήµατα πινάκων AX B µε A διαστάσεωνm n. (Οταν m n γίνεται επίλυση ελαχίστων τετραγώνων).

34 Αντιστροφή πίνακα Αντίστροφος του τετραγωνικού πίνακα X: Y = inv(x) Στην πράξη η αντιστροφή χρησιµοποιείται πολύ σπάνια. Η συνηθέστερη κατάχρηση της για επίλυση γραµµικών συστηµάτων. Η απαλοιφή Gauss (τελεστής \) υπερέχει σε ακρίβεια και υπολογιστικό χρόνο.

35 Νόρµες και δείκτης κατάστασης norm(x), norm(x,2) υπολογίζει: ¾ norm(x,1) υπολογίζει: ½ norm(x,inf), norm(x,inf) υπολογίζει: ½ Για το δείκτη κατάστασης του πίνακα X στην Ευκλείδεια νόρµα: kappa = cond(x)

36 Πίνακες Hilbert Πίνακας Hilbert τάξης n: H = hilb(n) Κλασσικό παράδειγµα πινάκων µε υψηλό δείκτη κατάστασης. Ο αντίστροφος πίνακα Hilbert υπολογίζεται µε: H = invhilb(n) ακριβώς (χωρίς σφάλµατα περικοπής) n για ½, και προσεγγιστικά για µεγαλύτερα n. Η invhilb(n) σε σχέση µε inv(hilb(n)) αντιµετωπίζει καλύτερα τα σφάλµατα περικοπής: στην παράσταση των hilb(n) και invhilb(n) στη διαδικασία αντιστροφής.