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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εκπαιδευτικός Οµιλος ΒΙΤΑΛΗ

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

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

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

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

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

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

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

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

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

Transcript:

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

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

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

8 Εντολές, Εκφράσεις, Μεταβλητές Το Matlab ερµηνεύει κάθε γραµµή στην είσοδο. Οι εντολές του έχουν τη µορφή: µεταβλητήέκφραση ή απλά έκφραση Οι εκφράσεις είναι σύνθεση τελεστών, µεταβλητών και συναρτήσεων. Ο υπολογισµός τους παράγει ένα πίνακα που µπορεί να εµφανισθεί στην έξοδο ή να αποθηκευτεί σε µεταβλητή. Οι εντολές τερµατίζονται µε το τέλος της γραµµής. Συνέχεια σε περισσότερες από µία γραµµες αν η προηγούµενη γραµµή τελειώνει σε... Πολλές εντολές µεταξύ, ή ; γράφονται σε µία γραµµή. Εντολή που τελειώνει σε ; δεν παράγει output στην οθόνη. 7 Κατασκευή πινάκων Μερικές συναρτήσεις (για σύνταξη: help όνοµα) eye zeros ones diag triu, tril rand magic Μοναδιαίος πίνακας Μηδενικός πίνακας Πίνακας µε στοιχεία µονάδες ιαγώνιος πίνακας Ανω, κάτω τριγωνικός πίνακας Πίνακας µε τυχαία στοιχεία Μαγικά τετράγωνα.

10 Παρατηρήσεις, παραδείγµατα 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. 9 Υποπίνακες Οι εκφράσεις: 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.

12 Η εντολή 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 tic sthles tou A s = s + sum(c) 11 Η εντολή while while λογική σχέση εντολές Παράδειγµα: υπολογισµός του ÐÓ ¾ a a = 256; n = 0; while 2ˆn < a n = n + 1; n και µε χρήση συναρτήσεων: n = floor(log2(a))

14 Η εντολή if if λογική σχέση εντολές Παράδειγµα: if n < 0 parity = 0; elseif rem(n,2) == 0 parity = 2; else parity = 1; 13 Λογικές σχέσεις και τελεστές 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 ); ΕΝ ΕΚΤΕΛΕΙΤΑΙ

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

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

20 Γραφικά - οι συνάρτησεις 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); 19 Παραδείγµατα Για: 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); ; s, sum(x)

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

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

26 Παράδειγµα: 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 25 Αποτελεσµατικότητα συναρτήσεων Πίνακας 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);

28 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας 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); 27 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας 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; A = 1./(Y + Y );

30 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας 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); 29 Αποτελεσµατικότητα συναρτήσεων (συνεχ.) Πίνακας 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); }

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

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

36 Νόρµες και δείκτης κατάστασης norm(x), norm(x,2) υπολογίζει: ¾ norm(x,1) υπολογίζει: ½ norm(x,inf), norm(x,inf) υπολογίζει: ½ Για το δείκτη κατάστασης του πίνακα X στην Ευκλείδεια νόρµα: kappa = cond(x) 35 Πίνακες Hilbert Πίνακας Hilbert τάξης n: H = hilb(n) Κλασσικό παράδειγµα πινάκων µε υψηλό δείκτη κατάστασης. Ο αντίστροφος πίνακα Hilbert υπολογίζεται µε: H = invhilb(n) ακριβώς (χωρίς σφάλµατα περικοπής) n για ½, και προσεγγιστικά για µεγαλύτερα n. Η invhilb(n) σε σχέση µε inv(hilb(n)) αντιµετωπίζει καλύτερα τα σφάλµατα περικοπής: στην παράσταση των hilb(n) και invhilb(n) στη διαδικασία αντιστροφής.