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

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

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

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

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

Συστήματα Αναμονής (Queuing Systems)

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Διακριτός Μετασχηματισμός Fourier

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

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

1η Εργαστηριακή Άσκηση: Απόκριση κυκλώµατος RC σε βηµατική και αρµονική διέγερση

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

επιµέλεια Θοδωρής Πιερράτος

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Μελέτη της ευθύγραμμης ομαλά μεταβαλλόμενης κίνησης σώματος με χρήση συστήματος φωτοπύλης-χρονομέτρου. Περιγραφή - Θεωρητικές προβλέψεις - Σχεδιασμός

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

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Εφαρµογες Της Ψηφιακης Επεξεργασιας Σηµατων. Εκτιµηση Συχνοτητων Με ΙδιοΑναλυση του Μητρωου ΑυτοΣυσχετισης

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

A Λυκείου 9 Μαρτίου 2013

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Εργασία στο µάθηµα Ανάλυση εδοµένων

Κεφάλαιο 10 ο Υποπρογράµµατα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

Συναρτήσεις Θεωρία Ορισμοί - Παρατηρήσεις

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

ΑΕΠΠ Ερωτήσεις θεωρίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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


ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Εργασία στο µάθηµα Ανάλυση εδοµένων

ΠΑΡΑΡΤΗΜΑ ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ.

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Μια από τις σημαντικότερες δυσκολίες που συναντά ο φυσικός στη διάρκεια ενός πειράματος, είναι τα σφάλματα.

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

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

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

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

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 6/04/2014

Η άσκηση μπορεί να γίνει με συνεργασία το πολύ δυο φοιτητών, οι οποίοι θα λάβουν τον ίδιο βαθμό στην εργασία.

Προγραµµατισµός Ι (ΗΥ120)

ÁÎÉÁ ÅÊÐÁÉÄÅÕÔÉÊÏÓ ÏÌÉËÏÓ

ΕΓΧΕΙΡΙΔΙΟ ΕΦΑΡΜΟΓΗΣ ΣΥΣΤΗΜΑΤΟΣ ΔΗΜΟΣΙΕΥΣΗΣ ΟΙΚΟΝΟΜΙΚΩΝ ΣΤΟΙΧΕΙΩΝ. Η Εταιρεία

12 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Υπολογιστικό Πρόβληµα

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

c xy [n] = x[k]y[n k] (1)

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Διαδικασιακός Προγραμματισμός

Πολλαπλασιασμός αριθμού με διάνυσμα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

ΤΟ ΠΡΟΣΗΜΟ ΤΟΥ ΤΡΙΩΝΥΜΟΥ

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Μελέτη ευθύγραμμης ομαλά επιταχυνόμενης κίνησης και. του θεωρήματος μεταβολής της κινητικής ενέργειας. με τη διάταξη της αεροτροχιάς

bca = e. H 1j = G 2 H 5j = {f G j : f(0) = 1}

METΡΗΣΗ ΤΗΣ ΕΠΙΤΑΧΥΝΣΗΣ ΤΗΣ ΒΑΡΥΤΗΤΑΣ ΜΕ ΤΟ ΑΠΛΟ ΕΚΚΡΕΜΕΣ

Τυχαίοι αριθμοί struct Αρχεία Διαμορφώσεις Συναρτήσεις Χειρισμός σφαλμάτων ΠΕΜΠΤΗ ΔΙΑΛΕΞΗ

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

3η ΕΡΓΑΣΙΑ. 3.1 Αµεσοι µέθοδοι για την Αριθµητική Επίλυση Γραµµικών Συστηµάτων

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

E mail:

Γραµµική Αλγεβρα. Ενότητα 4 : Ορθογωνιότητα. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

υναµική Μηχανών Ι Ακαδηµαϊκό έτος : Ε. Μ. Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών ΥΝΑΜΙΚΗ ΜΗΧΑΝΩΝ Ι - 22.

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Transcript:

Επιστηµονικός Υπολογισµός Ι (ΗΥ 343) Πρώτη εργαστηριακή άσκηση Ηµεροµηνία επιστροϕής για πληρη ϐαθµό : ευτέρα 29/10/2012 6 Οκτωβρίου 2012 1 Εισαγωγικά (10 µονάδες) Για να έχει νόηµα η εξαγωγή πληροϕοριών από τις γραϕικές πα- ϱαστάσεις των επόµενων ερωτηµάτων ϑα πρέπει να συµπεριλάβετε στην αρχή της αναϕοράς σας µια παράγραϕο µε τα χαρακτηριστικά του συστήµατός σας. Συγκεκριµένα σηµειώστε : 1. Τον τύπο του επεξεργαστή, την συχνότητα λειτουργίας του, τα επίπεδα κρυφής µνήµης και το µέγεθός τους. Αν έχετε τα στοιχεία διαθέσιµα, τότε καταγράψτε και το είδος της πολιτικής εγγραϕής στην κρυϕή µνήµη (write back ή write through) καθώς επίσης και τις ταχύτητες πρόσβασης στα διάϕορα επίπεδα µνήµης. 2. Την έκδοση του matlab που διαθέτετε. 3. Το αποτέλεσµα της συνάρτησης bench µόνο για την παραγοντοποίηση LU. 4. Οσοι χρησιµοποιείτε linux σηµειώστε το αποτέλεσµα της εντολής $ uname -rpio Στην διεύθυνση www.cpuid.com/softwares/pc-wizard.html µπορείτε να ϐρείτε εργαλεία τα οποία ϑα σας δώσουν τις πληροϕορίες τις οποίες χρειάζεστε για το πρώτο ερώτηµα. 2 Ενδογενείς συναρτήσεις (20 µονάδες) Ποιές ϐασικές πράξεις της γραµµικής άλγεβρας εκτελούν οι συναρτήσεις lu, qr, svd, eig; Για µητρώα n n τυχαίων στοιχείων και n = 2.ˆ[7 : 10] µετρήστε τον χρόνο εκτέλεσης και αναϕέρατε τα συµπεράσµατά σας. Για την χρονοµέτρηση χρησιµοποιείστε τις συναρτήσεις tic και toc και για την παραγωγή τυχαίων µητρείων µια εκ των rand, randn. Παρουσιάστε τις γραϕικές παραστάσεις των τεσσάρων πράξεων συναρτήσει του n σε κοινό γράϕηµα. 1

3 Σύγκριση αποδόσεως υλοποιήσεων (30 µονάδες) Κεντρική σηµασία στον εποστηµονικό υπολογισµό έχει η έννοια της υλοποιήσεως, δηλαδή του συγκεκριµένου τρόπου ανάπτυξης µιας λύσεως για ένα δεδοµένο υπολογιστικό πρόβληµα µαζί µε τις όποιες προαπαιτούµενες παραδοχές για την ανάπτυξή της. Στο συγκεκριµένο ερώτηµα καλείστε να λύσετε µε δύο τρόπους ένα απλό πρόβληµα από την περιοχή της γραµµικής άλγεβρας και να αξιολογήσετε την απόδοσή τους µε κριτήριο τον χρόνο εκτέλεσης αυτών. Εστω τριδιαγώνιο µητρώο A R n n, διάνυσµα x R n 1 και m ακέραιοι τ k, 1 k m. 1. Υπολογείστε ϑεωρητικά (χωρίς την χρήση matlab) το απαιτούµενο πλήθος πράξεων κινητής υποδιαστολής συναρτήσει των n και m για τον υπολογισµό του γινοµένου m (A τ k I n ) x k=1 όπου I n είναι το n n ταυτοτικό µητρώο όταν : (α ) Οι πολλαπλασιασµοί γίνονται από τα δεξιά προς τα αριστερά (ϐ ) Οι πολλαπλασιασµοί γίνονται από τα αριστερά προς τα δεξιά. 2. Υλοποιείστε συνάρτηση µε όνοµα trid_mul η οποία ϑα δέχεται ως ορίσµατα µε την σειρά τις παραµέτρους n, m, και µια λογική σηµαία flag. Εν συνεχεία ϑα εκτελεί τους πολλαπλασιασµούς είτε από αριστερά προς τα δεξιά αν η σηµαία είναι αληθής είτε από τα δεξιά προς τα αριστερά αν η σηµαία δεν είναι αληθής. Τα στοιχεία των A και x ϑα είναι τυχαία και σταθερά κατά την διάρκεια των επαναλήψεων. Οι ακέραιοι τ k µπορούν να επιλεγούν ως τ k = k για 1 k m. 3. Για m = 10 και n = 2. ˆ [7 : 10] χρονοµετρήστε τις δύο υλοποιήσεις και σχεδιάστε σε κοινό γράϕηµα τις µετρήσεις. 4. Για n = 128 και m = 10 : 10 : 50 χρονοµετρήστε τις δύο υλοποιήσεις και σχεδιάστε σε κοινό γράϕηµα τις µετρήσεις. 4 Βελτίωση αποδόσεως υλοποιήσης (40 µονάδες) Στο ερώτηµα αυτό ϑα δείτε πως επιτυγχάνεται προοδευτικά µια ταχύτερη υλοποίηση για ένα δεδοµένο υπολογιστικό πρόβληµα µε την ϐοήθεια επιπλέον παραδοχών-γνώσεων για το προς επίλυση πρόβληµα. Εστω οτι σας δίδονται µητρώα A R n n και Y R n s και σας Ϲητείται να υλοποιήσετε την πράξη H = Y T A p Y όπου H R s s και p Z +. Ο ανωτέρω υπολογισµός µπορεί να γραϕεί πολύ εύκολα στο matlab ως >> H = Y * Aˆp * Y; 2

όπου όλα τα µητρώα έχουν δηλωθεί κατάλληλα κι έχουν αρχικοποιηθεί σωστά. 1. Να υπολογίσετε τύπο για το Ω (n, p, s) και να τον συµπεριλάβετε στην αναφορά σας. Για τις ανάγκες του παρόντος ερωτήµατος να ϑεωρήσετε οτι το A p υπολογίζεται µέσω p πολλαπλασιασµών, δηλαδή ως A (A (A...)) 2. Οταν δεν γνωρίζετε κάποια ιδιότητα για το A, υπάρχει αποδοτικότερος τρόπος για τον υπολογισµό του H; Αν ναι, τότε υπολογίστε το Ω (n, p, s) για την περίπτωση αυτή. 3. Εστω οτι το A είναι ένα µητρώο Ϲώνης 2k 1, k n το οποίο κατασκευάζεται µε τις εντολές >> A = rand(n); >> L = tril(a)-tril(a, k); U = triu(a)-triu(a, -k); >> A = L*U; όπου οι εντολές tril και triu αποσπούν το κάτω και το άνω τριγωνικό τµήµα του µητρώου B. Βρείτε µια αποδοτικότερη υλοποίηση για τον υπολογισµό του H. Υπολογίστε το Ω (n, p, s, k) για την προκειµένη περίπτωση. Υπενθυ- µίζεται οτι σε ένα µητρώο Ϲώνης τα στοιχεία τα οποία ϐρίσκονται εκτός της k υπερδιαγωνίου ή εκτός της k υποδιαγωνίου είναι µηδενικά. Επίσης η σχέση a b σηµαίνει οτι το a είναι πολύ µικρότερο του b. 4. Εστω τώρα οτι το A είναι συµµετρικό και Toeplitz Ϲώνης k, k n το οποίο κατασκευάζεται µε την εντολή >> A = toeplitz([rand(1,k) zeros(1,n-k)]); Πως µπορείτε να εκµεταλλευτείτε αυτήν την επιπρόσθετη πληροϕορία ; Ποιό είναι το Ω (n, p, s, k) στην περίπτωση αυτή ; 5. Θεωρώντας οτι f (A) = A p, µπορείτε να χρησιµοποιήσετε τον ανωτέρω αλγόριθµο για να υπολογίσετε τα διαγώνια στοιχεία του f(a); Πόσες πράξεις ϑα χρειαστούν στην περίπτωση αυτή ; Α Α.1 Γενικές οδηγίες Υπολογισµοί Ολοι οι υπολογισµοί σας ϑα πρέπει να γίνουν σε ένα υπολογιστικό νήµα σύµφωνα µε τις πληροϕορίες τις οποίες ϑα πάρετε από την εντολή >> doc maxnumcompthreads Α.2 Πηγαίος κώδικας Θα διαπιστώσετε οτι, παρά το µέγεθος της εκϕώνησης της ασκήσεως, ο απαιτούµενος κώδικας ϑα είναι µικρός. 3

Αν χρησιµοποιήσατε το octave αντί του matlab, σηµειώστε το στην αναϕορά σας και µε σχόλιο στην αρχή των.m αρχείων. Το octave µπορείτε να το ϐρείτε δωρεάν στην διεύθυνση www.gnu.org/software/octave. Στην εκϕώνηση της άσκησης ό,τι αναϕέρεται για το matlab ισχύει και για το octave εκτός αν αναϕερθεί ϱητά κάτι διαϕορετικό. Θυµηθείτε πως ο πηγαίος κώδικας ϑα πρέπει να είναι σε µορϕή κειµένου ώστε να γίνεται κατανοητός από το matlab. Ο κειµενογράϕος του matlab (προτείνεται) λειτουργεί εξ ορισµού µε τον τρόπο αυτό. Αν χρησιµοποιείτε προγράµµατα του τύπου ultraedit ή notepad++, τότε προσέξτε σε ποιά µορϕή αποθηκεύεται ο κώδικάς σας. Για να είναι αξιόπιστες οι µετρήσεις σας, για κάθε µέγεθος µητρείου εκτελέστε µέχρι δέκα φορές την κάθε πράξη και ως αποτέλεσµα χρησιµοποιήστε τον µέσο όρο των µετρήσεων. Επιπροσθέτως, εκτελέστε µια φορά όλες τις απαιτούµενες πράξεις, αγνοήστε τα αποτελέσµατα, και κρατήστε τις µετρήσεις της δεύτερης φοράς. Ο λόγος για τον οποίο Ϲητάται αυτό είναι ένα από τα Ϲητούµενα του µαθή- µατος : Για να αξιολογηθεί σωστά η χρονική επίδοση του κώδικά σας (και εν γένει οποιουδήποτε προγράµµατος) ϑα πρέπει να αγνοηθούν κατά το δυνατόν περισσότερο τυχόν εξωγενείς παράγοντες. Την πρώτη φορά που εκτελείται ο κώδικάς σας µεταϕέρονται τα δεδοµένα από τον δίσκο στην µνήµη του συστήµατος. Την δεύτερη φορά δεν απαιτείται αυτή η χρονοβόρα διαδικασία καθώς τα δεδοµένα σας όντας σχετικά µικρού µεγέθους ϐρίσκονται ήδη εκεί. Το πως ϑα το κάνετε καθίσταται σαϕές από το ακόλουθο απόσπασµα κώδικα. Εστω πως ϑέλετε να χρονοµετρήσετε τον πολλαπλασιασµό µητρείου επι διανύσµατος y = A * x; όπου όλες οι ποσότητες του δεξιού µέλους είναι γνωστές. Τότε στο ίδιο αρχείο ϑα πρέπει να υπάρχουν οι γραµµές % metafora dedomenwn sthn mnhmh kai.. %.. ektelesh pollaplasiasmou y = A * x; % deuterh ektelesh pollaplasiasmou (ta dedomena einai.. %.. hdh sthn mnhmh) kai qronometrhsh tic; y = A * x; toc; Να ϑυµάστε οτι στο matlab µπορείτε να κάνετε το ίδιο πράγµα µε πολλούς τρόπους προγραµµατιστικά. εν είναι όµως πάντα όλοι αυτοί οι τρόποι ισοδύναµοι ως προς τον χρόνο εκτέλεσης. Αν και γενικά είναι ένα Ϲήτηµα τόσο µε ϑεωρητικές όσο και µε πρακτικές προεκτάσεις, η αρχικοποίηση των rand, randn δεν έχει επίδραση στα αποτελέσµατα των πράξεών σας. Α.3 Αναϕορά Η επιστροϕή της εργασίας γίνεται αποκλειστικά ηλεκτρονικά και µέχρι τα µεσάνυχτα της ορισθείσας ηµέρας στην ηλεκτρονική διεύθυνση sci@ceid.upatras.gr 4

µε ϑέµα sci_2012_hw01_xxxx όπου xxxx είναι ο αριθµός µητρώου σας. Χρησι- µοποιείστε τον λογαριασµό του τµήµατος και µόνο. Μην αποστείλετε ασκήσεις στην ηλεκτρονική διεύθυνση του διδάσκοντος ή των µεταπτυχιακών φοιτητών. Η αναϕορά σας ϑα είναι υποχρεωτικά σε µορϕή.pdf. Οσοι διαθέτετε Microsoft Word ή Open Office/Libre Office µπορείτε είτε να χρησιµοποιήσετε τις ενσω- µατωµένες τους δυνατότητες για την αποθήκευση της αναϕοράς σας ως.pdf (το προτιµότερο) είτε να χρησιµοποιήσετε κάποιον διαδικτυακό µετατροπέα. Οσοι χρησιµοποιείτε Google Docs απλώς αποθηκεύετε το αρχείο σας σε.pdf. Η αναφορά µαζί µε τον πηγαίο κώδικα ϑα είναι σε ένα συµπιεσµένο αρχείο τύπου.rar µε το όνοµα sci_2012_hw01_xxx.rar όπου xxxx είναι ο αριθµός µητρώου σας. Οι εικόνες µε τις γραϕικές παραστάσεις ϑα είναι µέρος της αναϕοράς και δεν ϑα αποτελούν ξεχωριστά αρχεία. Κάτω από κάθε εικόνα στην αναϕορά σας φροντίστε ώστε να υπάρχει µια λεζάντα η οποία να εξηγεί τι αναπαριστά κάθε γραϕική παράσταση. Α.4 Βοήθεια Οι εντολές >> help onoma_sunarthshs >> doc onoma_sunarthshs δίνουν αρκετά λεπτοµερή ϐοήθεια για την συνάρτηση η οποία δίδεται ως όρισµα, η πρώτη υπό µορϕή απλού κειµένου και η δεύτερη υπό µορϕή HTML. Είναι οι πλέον πολύτιµοι ϐοηθοί που ϑα έχετε και η χρήση τους συστήνεται ανεπιϕύλακτα. Οταν ϑυµάστε έναν όρο από το κείµενο ϐοήθειας µιας συναρτήσεως ή ϑυµάστε εν µέρει το όνοµά της, τότε µε την εντολή >> lookfor oros ανακτώνται όλα τα κείµενα ϐοήθειας συναρτήσεων στα οποία εµϕανίζεται ο δεδο- µένος όρος. Α.5 rand και randn Οι ψευδοτυχαίοι αριθµοί διαδραµατίζουν σηµαντικό ϱόλο σε µια σειρά από πεδία της πληροϕορικής όπως µεταξύ άλλων η στοχαστική επεξεργασία σήµατος, οι ψηϕιακές τηλεπικοινωνίες, και η ανάκτηση πληροϕορίας. Το matlab διαθέτει µια σειρά από συναρτήσεις για την παραγωγή τέτοιων αριθµών. Οι πλέον κοινές είναι η rand, η οποία παράγει οµοιόµορϕα κατανεµηµένους αριθµούς στο διάστηµα [0, 1], δηλαδή η συνάρτηση κατανοµής της είναι η 1, x [0, 1] f X (x) = 0, αλλού και η randn η οποία παράγει αριθµούς ϐάση της ϐασικής κανονικής κατανοµής (κατανοµής Gauss), της οποίας η συνάρτηση κατανοµής είναι η f X (x) = 1 2π e 1 2 x2 5

Β Παρουσιαση δεδοµένων Οπως τονίστηκε και στις διαλέξεις του µαθήµατος αλλά και στο εργαστήριο, εκτός από την δηµιουργία των δεδοµένων σας (κατά κύριο λόγο πειραµατικές µετρήσεις) ϑα πρέπει να µεριµνήσετε ώστε αυτά να παρουσιαστούν µε τρόπο εύληπτο και εύχρηστο για τον τελικό χρήστη. Στο παρόν παράρτηµα γίνεται µια σύντοµη εισαγωγή στις παρεχόµενες από το matlab δυνατότητες προς την επίτευξη του ανωτέρω στόχου. Ο πλέον εύκολος και συνήθης τρόπος για να δηµιουργήσετε µια γραϕική πα- ϱάσταση είναι µέσω της συναρτήσεως plot. Η ϐασική σύνταξή της είναι >> plot(y) όπου y είναι το διάνυσµα των δεδοµένων σας. Στην περίπτωση αυτή, ο οριζόντιος άξονας είναι ϐαθµονοµηµένος από το 1 εώς το πλήθος των στοιχείων του y. Στην περίπτωση οπου ο οριζόντιος άξονας πρέπει να ϐαθµονοµηθεί διαϕορετικά, τότε ϑα πρέπει να χρησιµοποιήσετε την ίδια εντολή στην µορϕή >> plot(x, y) όπου τα x και y έχουν τον ίδιο αριθµό στοιχείων (διαϕορετικά το παράγεται µήνυµα λάθους). Με τον τρόπο αυτό σχηµατίζεται ένα γράϕηµα αποτελούµενο από τα σηµεία (x(i),y(i)). Για να τυπώσετε πολλές γραϕικές παραστάσεις σε κοινό γράϕηµα χρησιµοποιείστε την µορϕή >> plot(x_1, y_1, c_1,..., x_n, y_n, c_n ) όπου τα x_i και y_i ορίζονται όπως στην προηγούµενη περίπτωση ενώ τα αλφαριθµητικά c_i προσδιορίζουν το χρώµα που ϑα έχει κάθε επιµέρους γραϕική παράσταση. Για τις επιτρεπές τιµές των χρωµάτων δείτε την ϐοήθεια της plot. Στην περίπτωση όπου υπάρχει σηµαντική διαϕορά στην τάξη µεγέθους µεταξύ των y_i, τότε χρησιµοποιείστε την συνάρτηση >> semilogy(x_1, y_1, c_1,..., x_n, y_n, c_n ) ώστε να τυπώσετε τα δεδοµένα σας σε λογαριθµική κλίµακα. Προσοχή : Αυτό ισχύει µόνον για τον κατακόρυϕο άξονα, δεν µεταβάλεται η ϐαθµονόµηση του οριζόντιου. Την semilogy ϑα πρέπει να την χρησιµοποιήσετε µόνον όταν υπάρχει πολύ µεγάλη διαϕορά στις τιµές των γραϕικών παραστάσεων και κάποιες εξ αυτών δεν είναι ευδιάκριτες. Αν σε κάποιο σηµείο κρίνετε πως πρέπει να χρησιµοποιηθεί η semilogy αντί της plot, τότε να το σηµειώσετε στην αναϕορά σας. Στην περίπτωση όπου διαθέτε µετρήσεις σε ένα διάνυσµα y και επιθυµείτε να δηµιουργήσετε µια πιό οµαλή εκδοχή αυτών, τότε µπορείτε να χρησιµοποιήσετε την συνάρτηση >> interp1 µε τα κατάλληλα ορίσµατα (ο τελευταίος χαρακτήρας του ονόµατος της συναρτήσεως είναι ο αριθµός 1 και οχι το λατινικο γράµµα l). 6

Οι εντολές >> xlabel(... ) >> ylabel(... ) >> title(... ) >> legend(...,... ) ϑα σας ϐοηθήσουν να εξηγήσετε καλύτερα τι συµβολίζει κάθε γραϕική παράσταση. Τα αλϕαριθµητικά ορίσµατα των ανωτέρω εντολών υποστηρίζουν ως έναν ϐαθµό εντολές TEX/LaTEX, συνεπώς µπορείτε να πληκτρολογήσετε >> ylabel( \ x\ _\infty ) για να σχηµατίσετε στον κάθετο άξονα το σύµβολο x. Για την δηµιουργία αρχείων εικόνων στο matlab ο προτεινόµενος τρόπος είναι µέσω της συναρτήσεως print. Η ϐασική σύνταξη ώστε να παραχθεί µια εικόνα jpeg είναι : >> print(gcf, -djpeg, image.jpg ) όπου το image.jpg είναι το επιχυµητό όνοµα αρχείου. Το όρισµα gcf σηµαίνει οτι στο αρχείο ϑα εκτυπωθεί η τρέχουσα γραϕική παράσταση. Εξ ορισµού το matlab ϑεωρεί ως τρέχουσα την τελευταία γραϕική παράσταση οπότε µπορείτε να δηµιουργήσετε όσες γραϕικές παραστάσεις κρίνετε αναγκαίο αρκεί να παρεµ- ϐάλλετε εντολές print ανάµεσα στις γραϕικές παραστάσεις τις οποίες ϑέλετε να τυπώσετε. Η εντολή >> help print παρέχει περισσότερες πληροϕορίες (αν και σε πολύ µεγαλύτερο ϐαθµό από ό,τι απαιτείται εδώ - δεν χρειάζεται να κατανοήσετε όλες τις παραµέτρους της print για να τυπώσετε σε αρεχείο µια γραϕική περάσταση). 7