1 octave:> a = [1; 2; 3] 2 a = 1 octave:> a = [1 2 3]

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

Γρήγορος οδηγός Scilab/Octave/MATLAB

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

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

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

Στατιστική είναι το σύνολο των μεθόδων και θεωριών που εφαρμόζονται σε αριθμητικά δεδομένα προκειμένου να ληφθεί κάποια απόφαση σε συνθήκες

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

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

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

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

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

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

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

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

Μιγαδικοί Αριθμοί. Μαθηματικά Γ! Λυκείου Θετική και Τεχνολογική Κατεύθυνση. Υποδειγματικά λυμένες ασκήσεις Ασκήσεις προς λύση

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

Γ. Ν. Π Α Π Α Δ Α Κ Η Σ Μ Α Θ Η Μ Α Τ Ι Κ Ο Σ ( M S C ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ. ΠΡΟΓΡΑΜΜΑ: Σπουδές στις Φυσικές Επιστήμες

Τι είναι βαθμωτό μέγεθος? Ένα μέγεθος που περιγράφεται μόνο με έναν αριθμό (π.χ. πίεση)

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...

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

ΛΧ1004 Μαθηματικά για Οικονομολόγους

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 2 η Ημερομηνία Αποστολής στον Φοιτητή: 28 Νοεμβρίου 2011

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

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

ETY-202 ΤΑ ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΚΒΑΝΤΟΜΗΧΑΝΙΚΗΣ ETY-202 ΎΛΗ & ΦΩΣ 02. ΜΑΘΗΜΑΤΙΚΑ ΕΡΓΑΛΕΙΑ. Στέλιος Τζωρτζάκης 1/11/2013

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

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

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ. Μαθηματικά 1. Σταύρος Παπαϊωάννου

όπου Η μήτρα ή πίνακας του συστήματος

Μαθηματικά Γ Γυμνασίου

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...

159141,9 64 x n 1 n


1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

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

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

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

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

Χρήσεις Η/Υ και Βάσεις Βιολογικών Δεδομένων : ΒΙΟ109 [4] Επεξεργασία Δεδομενων σε λογιστικα φυλλα

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

Είναι γνωστό ότι η δύναμη που ασκείται σε ένα ελατήριο και ονομάζεται δύναμη επαναφοράς δίνεται από τη σχέση : F = kx (3.1)

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ B ΤΑΞΗΣ. χρησιμοποιήσουμε καθημερινά φαινόμενα όπως το θερμόμετρο, Θετικοί-Αρνητικοί αριθμοί.

Αντικείμενο του κεφαλαίου είναι: Ανάλυση συσχέτισης μεταξύ δύο μεταβλητών. Εξίσωση παλινδρόμησης. Πρόβλεψη εξέλιξης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

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

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

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

Συσχέτιση μεταξύ δύο συνόλων δεδομένων

x y z xy yz zx, να αποδείξετε ότι x=y=z.

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. Γεώργιος Α. Κόλλιας - μαθηματικός. 150 ασκήσεις επανάληψης. και. Θέματα εξετάσεων

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

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

f x και τέσσερα ζευγάρια σημείων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Μ Ε Τ Ρ Α Δ Ι Α Σ Π Ο Ρ Α Σ.

Εντολές της LOGO (MicroWorlds Pro)

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

Ελλιπή δεδομένα. Εδώ έχουμε Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 1275 ατόμων

Κεφάλαιο 0 Μιγαδικοί Αριθμοί

Μαθηματικά. Ενότητα 3: Ολοκληρωτικός Λογισμός Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΛΥΜΕΝΕΣ & ΑΛΥΤΕΣ ΑΣΚΗΣΕΙΣ. Επιμέλεια: Γ. Π. Βαξεβάνης (Γ. Π. Β.

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

Πολυωνυμικές εξισώσεις και ανισώσεις Εξισώσεις και ανισώσεις που ανάγονται σε πολυωνυμικές

Μηχανική ΙI. Μετασχηματισμοί Legendre. διπλανό σχήμα ότι η αντίστροφη συνάρτηση dg. λέγεται μετασχηματισμός Legendre της f (x)

Y Y ... y nx1. nx1

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

5. ΤΟ ΓΕΝΙΚΟ ΓΡΑΜΜΙΚΟ ΜΟΝΤΕΛΟ (GENERAL LINEAR MODEL) 5.1 Εναλλακτικά μοντέλα του απλού γραμμικού μοντέλου: Το εκθετικό μοντέλο

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

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

Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

α n z n = 1 + 2z 2 + 5z 3 n=0

Απλή Γραμμική Παλινδρόμηση και Συσχέτιση 19/5/2017

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

Kεφάλαιο 4. Συστήματα διαφορικών εξισώσεων. F : : F = F r, όπου r xy

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ. Μαθηματικά 2. Σταύρος Παπαϊωάννου

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

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

ΕΝΟΤΗΤΑ 2: Πραγματικοί Αριθμοί

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΜΜΙΚΗΣ ΑΛΓΕΒΡΑΣ. ρ Χρήστου Νικολαϊδη

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

ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΟΙΚΟΝΟΜΕΤΡΙΑ. Παπάνα Αγγελική

X = = 81 9 = 9

(a) (3a + 14β) + (2a β)i = 7 i (β) a(1 + i) + β(1 i) = 5 i) (1 + i)2 3 i. a + βi =

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

Στατιστική Ι (ΨΥΧ-1202) Διάλεξη 6 Σχέσεις μεταξύ μεταβλητών

Transcript:

Κεφάλαιο 6 Εισαγωγή δεδομένων σε μορφή διανυσμάτων και πινάκων Για την εισαγωγή στοιχείων σε ένα διάνυσμα-στήλη χρησιμοποιούμε το ελληνικό ερωτηματικό: 1 octave:> a = [1; 2; ] 4 1 5 2 6 Για την εισαγωγή στοιχείων σε ένα διάστημα-γραμμή χρησιμοποιούμε το το κενό διάστημα: 1 octave:> a = [1 2 ] 4 1 2 Ενα διάνυσμα στήλη, μπορεί να μετατραπεί σε διάνυσμα-γραμμή (και ανάποδα) με τον τελεστή αναστροφής: 77

78ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 1 octave:> a=[1 2 ] 4 1 2 5 6 octave:> a 7 ans = 8 9 1 10 2 11 12 1 octave:> a=[1; 2; ] 14 a = 15 16 1 2 Εισαγωγή μιας μήτρας 2 2: 1 octave:> a = [1-2; 2 0] 4 1-2 5 2 0 ή, εναλλακτικά: 1 octave:> a = [ 1-2 2 > 2 0] a = 4 5 1-2 6 2 0 Δηλαδή δίνουμε αλλαγή γραμμής (ENTER) μετά την πρώτη γραμμή. Προσοχή να είναι συμβατό το πλήθος των στοιχείων ανά γραμμή. Μπορούμε επίσης να ενώσουμε δύο διανύσματα στήλη σε μία μήτρα:

79 1 octave:> a1 = [1; 2; ]; 2 octave:> a2 = [5; 1; 4]; octave:> a = [a1 a2] 4 a = 5 6 1 5 7 2 1 8 4 Μπορούμη επίσης να ορίσουμε ένα διάνυσμα με τα στοιχεία του ένα-προςένα: 1 octave:17> clear 2 octave:> a(1) = 5; octave:> a(2) = -2; 4 octave:> a() = 1; 5 octave:> a 6 a = 7 8 5-2 1 9 Επίσης, το ίδιο μπορεί να γίνει με μήτρα: 1 octave:> clear 2 octave:> a(1,1) = 4; octave:> a(2,1) = 1; 4 octave:> a(1,2) = 2; 5 octave:> a(2,2) = 5; 6 octave:> a 7 a = 8 9 4 2 10 1 5 Αυτός βέβαια δεν είναι ο περισσότερο όμορφος και σύντομος και σύντομος τρόπος για την εισαγωγή των στροιχείων μιας μήτρας. Είναι όμως πολύ χρήσιμος για την αλλαγή των στοιχείων σε μια υπάρχουσα μήτρα. Πχ, με βάση το προηγούμενο παράδειγμα μπορεί να γίνει:

80ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 1 octave:> a(2,1) = -1; 2 octave:> a a = 4 5 4 2 6-1 5 Μπορούμε επίσης να χρησιμοποιήσουμε τον τελεστή : για απόδοση πολλών τιμών, πχ: 1 octave:> a(1:5) = 2 4 2 2 2 2 2 Δείτε επίσης πως μπορεί να δημιουργηθεί ένα διάνυσμα με μονάδες, εκτός από τη δεύτερη θέση που έχει την τιμή 0: 1 1 octave:> a(1:10) = 1 4 1 1 1 1 1 1 1 1 1 1 5 6 octave:> a(2) = 0 7 a = 8 9 1 0 1 1 1 1 1 1 1 1 6.1 Πράξεις με μεταβλητές και πίνακες Πρόσθεση αριθμού στα στοιχεία μιας μήτρας: 1 Την άνοιξη του 2000 παρεβρέθηκα σε ένα σεμινάριο που έδωσε ο Parantap Basu, επισκέπτης καθηγητής από το πανεπιστήμιο Fordham, USA στο τμήμα Οικονομικών Επιστημών του πανεπιστημίου Ιωαννίνων με θέμα Liquidity Constraints and Firms Investment Return Behaviour. Το σεμινάριο ήταν πολύ ενδιαφέρον και ο καθηγητής Basu είπε σε κάποιο σημείο πως θα ήθελε να δοκιμάσει κάτι, αλλά θα χρειαζόταν στο πρόγραμμα που είχε γράψει ένα διάνυσμα με μονάδες εκτός από τη δετερη θέση, όπου ήθελε την τιμή 0. Η λύση που πρότεινα (όπως εδώ), τον ενθουσίασε! Μπορείτε να δείτε το σχετικό άρθρο εδώ:http://www.jstor.org/pss/549016

6.2. ΠΡΆΞΕΙΣ ΑΝΆΜΕΣΑ ΣΕ Μ ΗΤΡΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 81 1 octave:> a = [0 2; 1-1] 4 0 2 5 1-1 6 7 octave:> a+2 8 ans = 9 10 2 4 11 1 Πολλαπλασιαμός στοιχείων μήτρας με αριθμό: 1 octave:> a = [0 2; 1-1] 4 0 2 5 1-1 6 7 octave:> 2*a 8 ans = 9 10 0 4 11 2-2 Γραμμικός μετασχηματισμός διανύσματος: 1 octave:> a = [4; 1; 2]; 2 octave:> *a-5 ans = 4 5 7 6-2 7 1 6.2 Πράξεις ανάμεσα σε μήτρες και διανύσματα Πρόσθεση μητρών:

82ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 1 octave:> a = [1-1; 2 0]; 2 octave:> b = [- 4; 1 2]; octave:206> a+b 4 ans = 5 6-2 7 2 Πολλαπλασιαμός μητρών: 1 octave:> a = [ -1; 2 1]; 2 octave:> b = [-1 4; 5-4]; octave:> a*b 4 ans = 5 6-8 16 7 4 Προσέξτε τη διαφορά: 1 octave:> a = [ -1; 2 1]; 2 octave:> b = [-1 4; 5-4]; octave:> b*a 4 ans = 5 6 5 5 7 7-9 Αναστροφή μήτρας: 1 octave:> a = [ -1; 2 1] 4-1 5 2 1 6 7 octave:217> a 8 ans = 9 10 2 11-1 1

6.2. ΠΡΆΞΕΙΣ ΑΝΆΜΕΣΑ ΣΕ Μ ΗΤΡΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 8 Αντιστροφή μήτρας: 1 octave:> a=[6 10; 2 5] 4 6 10 5 2 5 6 7 octave:2> a^-1 8 ans = 9 10 0.50000-1.00000 11-0.20000 0.60000 Πολλαπλασιαμός μήτρας με διάνυσμα στήλη: 1 octave:> a=[6 10; 2 5] 4 6 10 5 2 5 6 7 octave:> b = [ 1] 8 b = 9 10 11 1 12 1 octave:> a*b 14 ans = 15 16 28 17 11 Προσοχή στις διαστάσεις της μήτρας και του διανύσματος: 1 octave:> b*a 2 error: operator *: nonconformant arguments (op1 is 2x1, op2 is 2x2) error: evaluating binary operator * near line 244, column 2 Στην περίπτωση, όπως πριν, που οι διαστάσεις δεν είναι συμβατές ο πολλαπλασασμός θα αποτύχει και θα πάρετε ένα μήνυμα παρόμοιο με το προηγούμενο.

84ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 6. Βοηθητικές συναρτήσεις για διανύσματα και μήτρες Διάνυσμα με όλα τα στοιχεία 1 ( γραμμές, 1 στήλη): 1 octave:> ones(,1) 2 ans = 4 1 5 1 6 1 Τετραγωνική μήτρα με όλα τα στοιχεία 1: 1 octave:> ones(2) 2 ans = 4 1 1 5 1 1 Διάνυσμα με όλα τα στοιχεία 0 ( γραμμές, 1 στήλη): 1 octave:> zeros(,1) 2 ans = 4 0 5 0 6 0 Τετραγωνική μήτρα με όλα τα στοιχεία 0: 1 octave:> zeros(2) 2 ans = 4 0 0 5 0 0 Μοναδιαία μήτρα, : 1 octave:> eye() 2 ans = 4 1 0 0 5 0 1 0 6 0 0 1

6.. ΒΟΗΘΗΤΙΚ ΕΣ ΣΥΝΑΡΤ ΗΣΕΙΣ ΓΙΑ ΔΙΑΝ ΥΣΜΑΤΑ ΚΑΙ Μ ΗΤΡΕΣ85 Αντιστροφή μήτρας: 1 octave:> a 4 6 10 5 2 5 6 7 octave:> inv(a) 8 ans = 9 10 0.50000-1.00000 11-0.20000 0.60000 Διαγώνια στοιχεία μήτρας: 1 octave:> a = [1-2; 5 0] 4 1-2 5 5 0 6 7 octave:> diag(a) 8 ans = 9 10 1 11 0 Εύρεση πλήθους γραμμών και στηλών: 1 octave:258> a = [2 1; 0 2 5] 4 2 1 5 0 2 5 6 7 octave:> rows(a) 8 ans = 2 9 octave:> columns(a) 10 ans = 11 octave:> size(a) 12 ans = 1 14 2

86ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ Γραμμική πλήρωση, πχ να κατασκευαστεί διάνυσμα με 7 τιμές από το 1 ως το 4: 1 octave:270> linspace(1,4,7) 2 ans = 4 1.0000 1.5000 2.0000 2.5000.0000.5000 4.0000 Αναστροφή της σειράς των στηλών: 1 octave:2> a = [5 1 4; 6 2 0] 4 5 1 4 5 6 2 0 6 7 octave:> fliplr(a) 8 ans = 9 10 4 1 5 11 0 2 6 Αναστροφή της σειράς των γραμμών: 1 octave:> flipud(a) 2 ans = 4 6 2 0 5 5 1 4 Επανάληψη μιας μήτρας: 1 octave:> a = [ -1; 2 5] 4-1 5 2 5 6 7 octave:> repmat (a,2,) 8 ans = 9 10-1 -1-1 11 2 5 2 5 2 5 12-1 -1-1 1 2 5 2 5 2 5

6.4. ΧΡ ΗΣΙΜΕΣ ΣΥΝΑΡΤ ΗΣΕΙΣ ΓΡΑΜΜΙΚ ΗΣ ΆΛΓΕΒΡΑΣ 87 Κατασκευή της μήτρας Hilbert: 1 octave:> hilb() 2 ans = 4 1.00000 0.50000 0. 5 0.50000 0. 0.25000 6 0. 0.25000 0.20000 Η αντίστροφη της μήτρας Hilbert: 1 octave:> invhilb() 2 ans = 4 9-6 0 5-6 192-180 6 0-180 180 6.4 Χρήσιμες συναρτήσεις γραμμικής άλγεβρας Υπολογισμός διακρίνουσας με τη συνάρτηση det: 1 octave:> a = [5 2-4; 6 1 2; -4 1 2] 4 5 2-4 5 6 1 2 6-4 1 2 7 8 octave:> det(a) 9 ans = -80 Αντίστροφη:

88ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 1 octave:> a=[1 2; 5] 4 1 2 5 5 6 7 octave:> inv(a) 8 ans = 9 10-5.00000 2.00000 11.00000-1.00000 Οταν υπάρχουν πολύ μικροί αριθμοί,καλό είναι να χρησιμοποιείται η συνάρτηση pinv: 1 octave:> a=[1e-16 2; 1e-16] 4 1.0000e-16 2.0000e+00 5.0000e+00 1.0000e-16 6 7 octave:> pinv(a, 1e-8) 8 ans = 9 10 0.00000 0. 11 0.50000 0.00000 Αυτό σημαίνει πως αριθμοί μικρότεροι από 10 8 δεν συμπεριλαμβάνονται στους υπολογισμούς (θεωρούνται ως 0). Ο προηγούμενος υπολογισμός δηλαδή, είναι ισοδύναμος με: 1 octave:> a=[0 2; 0] 4 0 2 5 0 6 7 octave:> inv(a) 8 ans = 9 10-0.00000 0. 11 0.50000 0.00000

6.4. ΧΡ ΗΣΙΜΕΣ ΣΥΝΑΡΤ ΗΣΕΙΣ ΓΡΑΜΜΙΚ ΗΣ ΆΛΓΕΒΡΑΣ 89 Υπολογισμός ιδιοτιμών: 1 octave:> a=[1 2; 0 5] 4 1 2 5 0 5 6 7 octave:> eig(a) 8 ans = 9 10 1 11 5 Υπολογισμός ίχνους: 1 octave:> a = [4 1 0; 2 5 1; 1-8 ] 4 4 1 0 5 2 5 1 6 1-8 7 8 octave:> trace(a) 9 ans = 12 Το οποίο είναι το ίδιο με: 1 octave:> sum(diag(a)) 2 ans = 12 LU παραγοντοποίηση: 1 octave:> a = [5 1; 2 1] 4 5 1 5 2 1 6 7 octave:> lu(a) 8 ans = 9 10 1.00000 0.00000 11 0.40000 1.00000

90ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ Cholesky παραγοντοποίηση: 1 octave:> chol(a) 2 ans = 4 2.2607 0.44721 5 0.00000 0.8944 QR παραγοντοποίηση: 1 octave:> qr(a) 2 ans = 4-5.8516-1.29987 5 0.719 0.55709 Υπολογισμός ρίζας μήτρας: 1 octave:> a = [16 4 ;1 9] 4 16 4 5 1 9 6 7 octave:> sqrtm(a) 8 ans = 9 10.98971 0.5740 11 0.145 2.98627 Να μην γίνεται σύγχιση με την εφαρμογή της τετραγωνικής ρίζας στα στοιχεία της μήτρας: 1 octave:> a = [16 4 ;1 9] 4 16 4 5 1 9 6 7 octave:> sqrt(a) 8 ans = 9 10 4 2 11 1

6.4. ΧΡ ΗΣΙΜΕΣ ΣΥΝΑΡΤ ΗΣΕΙΣ ΓΡΑΜΜΙΚ ΗΣ ΆΛΓΕΒΡΑΣ 91 Υπολογισμός λογαρίθμου μήτρας: 1 octave:> a = [1 0.5; 1 2] 4 1.00000 0.50000 5 1.00000 2.00000 6 7 octave:> logm(a) 8 ans = 9 10-0.17744 0.8017 11 0.7605 0.58291 Το οποίο δεν πρέπει να συγχέεται με την εφαρμογή λογαρίθμου στα στοιχεία της μήτρας: 1 octave:> a = [1 0.5; 1 2] 4 1.00000 0.50000 5 1.00000 2.00000 6 7 octave:> log(a) 8 ans = 9 10 0.00000-0.6915 11 0.00000 0.6915 Υπενθυμίζεται πως ο λογάριθμος μιας μήτρας A είναι η μήτρα B, όταν ισχύει: A = e B Μπορούμε να επιβεβαιώσουμε τους προηγούμενους υπολογισμούς ως:

92ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ 1 octave:> b = logm(a) 2 b = 4-0.17744 0.8017 5 0.7605 0.58291 6 7 octave:> e^b 8 ans = 9 10 1.00000 0.50000 11 1.00000 2.00000 Υπολογισμός εκθετικού μήτρας: 1 octave:525> a = [1 0.5; 1 2] 4 1.00000 0.50000 5 1.00000 2.00000 6 7 octave:526> expm(a) 8 ans = 9 10.784 2.516 11 5.06 8.8017 Υπενθυμίζεται πως: e A = I + A + A2 2! + A! +... Γινόμενο Kronecker:

6.5. ΕΛΕΓΧΟΙ 9 1 octave:> a = [4-1; 2 1] 4 4-1 5 2 1 6 7 octave:> b = [1-1; 1 0] 8 b = 9 10 1-1 11 1 0 12 1 octave:> kron(a,b) 14 ans = 15 16 4-4 -1 1 17 4 0-1 -0 18 2-2 1-1 19 2 0 1 0 6.5 Ελεγχοι Εστω ένα διάνυσμα τιμών: 1 octave:> a = [-5 0 1 2-8 6 1] 4-5 0 1 2-8 6 Να βρεθεί σε ποιες θέσεις του διανύσματος υπάρχουν θετικοί αριθμοί: 1 octave:> a>0 2 ans = 4 0 0 1 1 0 1 1 1 Να βρεθεί σε ποιες θέσεις του διανύσματος υπάρχουν αρνητικοί αριθμοί: 1 octave:> a<0 2 ans = 4 1 0 0 0 1 0 0 0

94ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ Να βρεθεί σε ποιες θέσεις του διανύσματος η τιμή είναι ίση με 1: 1 octave:> a==1 2 ans = 4 0 0 1 0 0 0 0 1 Να βρεθεί το πλήθος των θετικών τιμών: 1 octave:> sum(a>0) 2 ans = 5 Να βρεθεί το άρθροισμα των θετικών τιμών: 1 octave:> sum(a.* (a>0)) 2 ans = 18 Το τελευταίο παράδειγμα είναι τρικ, δείτε αναλυτικά πως γίνεται: 1 octave:78> a 4-5 0 1 2-8 6 1 5 6 octave:> a>0 7 ans = 8 10 9 0 0 1 1 0 1 1 1 11 octave:> a.* (a>0) 12 ans = 1 14-0 0 1 2-0 8 6 1 15 16 octave:> sum(a.* (a>0)) 17 ans = 18 6.6 Επίλυση πολυωνυμικών εξισώσεων Εστω η εξίσωση: x 2 + 5x + 4 = 0

6.6. ΕΠ ΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 95 με: Επομένως: a 2 = 1, a 1 = 5, a 0 = 4 1 octave:> a = [1 5 4]; 2 octave:> roots(a) ans = 4 5-4 6-1 Εστω η εξίσωση: με: Επομένως: x 2 5x 6 = 0 a 2 = 1, a 1 = 5, a 0 = 6 1 octave:> a = [1-5 -6]; 2 octave:> roots(a) ans = 4 5 6 6-1 Εστω η εξίσωση: με: Επομένως: x + 17 x2 10 7 x 10 1 5 = 0 a = 1, a 2 = 17/10, a 1 = 7/10, a 0 = 1/5 1 octave:> a = [1 17/10-7/10-1/5]; 2 octave:> roots(a) ans = 4 5-2.00000 6 0.50000 7-0.20000

96ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ Να βρεθεί το άρθροισμα τετραγώνων 4 i=1 x2 i, όπου x i ρίζες της εξίσωσης: Οι συνετελεστές είναι: Επομένως: x 4 + 9 x + 21 x 2 x 0 = 0 a 4 = 1, a = 9, a 2 = 21, a 1 = 1, a 0 = 0 1 octave:> a = [1 9 21-1 -0]; 2 octave:> x = roots(a) x = 4 5-5.0000 6 -.0000 7-2.0000 8 1.0000 9 10 octave:9> sumsq(x) 11 ans = 9.000 12 octave:> x *x 1 ans = 9.000 Μπορεί να χρησιμοποιηθεί ο ένας από τους δύο τρόπους, είτε η συνάσρτηση sumsq, είτε ο πολλαπλασιασμός διανυσμάτων x *x. Από την προηγούμενη άσκηση, να βρεθεί το πλήθος των θετικών και αρνητικών ριζών: 1 octave:> sum(x>0) 2 ans = 1 octave:> sum(x<0) 4 ans = 6.7 Επίλυση συστημάτων γραμμικών εξισώσεων Τα συστήματα γραμμικών εξισώσεων έχουν τη γενική μορφή:

6.7. ΕΠ ΙΛΥΣΗ ΣΥΣΤΗΜΆΤΩΝ ΓΡΑΜΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 97 a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.... a m1 x 1 + a m2 x 2 + + a mn x n = b m Μπορούν επίσης να γραφούν με τη μορφή: Ax = b όπου: a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n A =......, x = x 2., b = b 2. a m1 a m2 a mn Η λύση δίνεται από τη σχέση: Εστω το σύστημα: Μπορεί να λυθεί με: 1 octave:> a = [-5 1; 2 0] 4-5 1 5 2 0 6 7 octave:> b = [-1; 1] 8 b = 9 10-1 11 1 12 1 octave:> x=inv(a)*b 14 x = 15 16 0.50000 17 1.50000 x = A 1 b 5x 1 + 2x 2 = 1 2x 1 = 1 x n b m

98ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆΚ Εστω το σύστημα: Μπορεί να λυθεί με: x 1 + 5x 2 2x 2 = 6 x 1 + 6x 2 + x 2 = 2 x 1 + 1x 2 + 2x 2 = 0 1 octave:> a = [ 5-2; 6 1; -1 1 2] 4 5-2 5 6 1 6-1 1 2 7 8 octave:> b = [6; -2; 0] 9 b = 10 11 6 12-2 1 0 14 15 octave:7> x=b\a 16 x = 17 18 0.0000 0.45000-0.5000 Η πράξη b\a είναι ισοδύναμη με την inv(a)*b, μπορείτε να χρησιμοποιείτε είτε τη μία είτε την άλλη. 6.8 Επίλυση μη γραμμικών εξισώσεων Να λυθεί η εξίσωση: ( x 1 x log ( x ) ) 1 = 0 x + 1 Τα βήματα που πρέπει να γίνουν: 1. Ορισμός μιας συνάρτησης 2. Κλήσης της διαδικασίας f solve με ορίσματα το όνομα της συνάρτησης και αρχική τιμή

6.8. ΕΠ ΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 99. Προαιρετικά, επιβεβαίωση της λύσης 1 octave:> function y=f(x) 2 > y = x*(1-x*log(x/(x+1)))-1 > endfunction 4 octave:94> fsolve("f",1) 5 y = 0.6915 6 y = 0.6915 7 y = 0.011892 8 y = 2.749e-04 9 y = 1.4911e-07 10 y = 1.8816e-12 11 y = 0 12 ans = 0.62597 1 14 octave:> f(0.62597) 15 y = 2.2807e-06 16 ans = 2.2807e-06 Αν στη γραμμή 2 της προηγούμενης λίστας κώδικα τοποθετεί στο τέλος, τότε η πολλαπλή έξοδος στις γραμμές 5 10 θα αποσιωπηθεί. Εδώ αφήσαμε την έξοδο για να δούμε τη βηματική εξέλιξη της λύσης. Επίσης η κλίση f (0.62597) γίνεται για επιβεβαίωση της λύσης. Η λύση είναι προσεγγιστική και όχι ακριβής. Οπως έχετε προσέξει η εύρεση της λύσης εξαρτάται από μια αρχική τιμή. Αυτό είναι κάτι που πρέπει να το εκτιμήσει ο χρήστης. Πολλές φορές μια μη γραμμική εξίσωση ενδέχεται να έχει πολλές ρίζες. Κάθε κλήση της f solve βρίσκει μόνο μία από αυτές. Χρειάζονται περισσότερες από μία κλήσεις για να βραθεούν όλες οι ρίζες. Για παράδειγμα, η εξίσωση: y = 2x 2 5x + 2 = 0

100ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆ έχει, όπως δείχνει το σχήμα δύο ρίζες. Αυτό μπορούμε να το δούμε με διάφορες δοκιμές: 1 octave:> function y=f(x) 2 > y=2*x^2-5*x+2; > endfunction; 4 octave:> fsolve("f",-1) 5 ans = 0.50000 6 octave:> fsolve("f",1) 7 ans = 0.50000 8 octave:> fsolve("f",0) 9 ans = 0.50000 10 octave:> fsolve("f",1.5) 11 ans = 2.0000 12 octave:> fsolve("f",) 1 ans = 2.0000 Προφανώς, διαφορετικές αρχικές τιμές καταλήγουν στην ίδια λύση. Αν είναι γνωστή η γραφική απεικόνιση της y = f(x), τότε είναι εύκολο να δούμε πως υπάρχουν δύο λύσεις, έτσι με δύο δοκιμές, πχ x = 0 (f solve( f, 0) και x = (f solve( f,)) να καταλήξουμε γρήγορα στη λύση. Το πρόβλημα είναι έντονο όταν δεν ξέρουμε το πλήθος των ριζών, οπότε θα πρέπει να γίνει περισσότερο διεξοδική αναζήτηση.

6.8. ΕΠ ΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 101 Ας υποθέσουμε πως έχουμε το σύστημα μη γραμμικών εξισώσεων: 2x 2 1+ 5x 2 x 2 1=0 x 2 1 cos(x 2 ) + 1=0 Για την κωδικοποίηση της επίλυσης αυτού του συστήματος θα χρειαστεί να γράψουμε μια συνάρτηση υπολογισμού, όπως και πριν, με τη διαφορά πως θα πρέπει να δέχεται διάνυσμα τιμών ως όρισμα: 1 octave:> function y = f(x) 2 > y(1) = -2*x(1)^2 + 5*x(1)*x(2) - 1; > y(2) = x(1)^2 - *cos(x(1)) + 1; 4 > endfunction Ετσι, τα x και y είναι διανύσματα 2 1, και για την κλήση της συνάρτησης f solve θα χρειαστεί ένα διάνυσμα δύο αρχικών τιμών: 1 octave:> x0 = [0; 1] 2 octave:> fsolve("f", x0) ans = 4 5 0.911 6 0.58428 7 Αυτή βέβαια είναι μόνο μία λύση! Μια άλλη επιλογή αρχικών τιμών, θα οδηγήσει -πιθανά- σε άλλη λύση: 1 octave:> x0=[-1; 1]; 2 octave:> fsolve("f", x0) ans = 4 5-0.911 6-0.58428 Από την άλλη πλευρά, υπάρχει πάντα ο κίνδυνος, να μην πάρουμε λύση: 1 octave:> x0 = [0; 0]; 2 octave:> fsolve("f", x0) error: fsolve: iteration is not making good progress Αυτό σημαίνει πως η αρχική τιμή x0 = [0; 0] ήταν μια κακή εκτίμηση, και πως ο αλγόριθμος δεν μπόρεσε να συγκλίνει. Γενικά, σε τέτοιες περιπτώσεις, χρειάζεται να γίνει επαναληπτική κλήση της διαδικασίας f solve ώστε να διερευνηθεί η πιθανότητα πολλαπλών λύσεων.

102ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆ 6.9 Τυχαίοι αριθμοί Η συνάρτηση normrnd(m,s,r,c) επιστρέφει τυχαίους αριθμούς σε πίνακα διαστάσεων R C με μέσο M και τυπική απόκλιση C. Η συνάρτηση randn επιστρέφει ένα τυχαίο αριθμό από την τυπική κανονική κατανομή. Η συνάρτηση seed αρχικοποιεί τη γεννήτρια τυχαίων αριθμών. Ενας τυχαίος αριθμός από την τυπική κανονική κατανομή: 1 octave:> randn 2 ans = -0.45482 Ενα διάνυσμα-στήλη με 4 τυχαίους αριθμούς από κανονική κατανομή με μέσο 50 με τυπική απόκλιση 5: 1 octave:> normrnd(50,5,4,1) 2 ans = 4 56.201 5 50.11 6 5.259 7 49.5 Ενα διάνυσμα-στήλη με 100 τυχαίους αριθμούς από κανονική κατανομή με μέσο 0 με τυπική απόκλιση 5: 1 octave:> x = normrnd(0,5,100,1); Ενα διάνυσμα-στήλη με 500 τυχαίους αριθμούς από κανονική κατανομή με μέσο 0 με τυπική απόκλιση 1: 1 octave:> normrnd(0,1,500,1); Ενας τυχαίος αριθμός από την ομοιόμορφη κατανομή (0,1): 1 octave:> rand 2 ans = 0.4624 Ενα διάνυσμα-στήλη με 4 τυχαίους αριθμούς από ομοιόμορφη κατανομή (0,2):

6.10. ΟΛΟΚΛ ΗΡΩΣΗ 10 1 octave:> unifrnd(0,2,4,1) 2 ans = 4 1.14171 5 0.90054 6 1.5402 7 0.89061 Ενα διάνυσμα-στήλη με 200 τυχαίους αριθμούς από από ομοιόμορφη κατανομή (0,1): 1 octave:> unifrnd(0,1,500,1) Ενα διάνυσμα-στήλη με 500 τυχαίους αριθμούς από από ομοιόμορφη κατανομή (-5,10): 1 octave:> unifrnd(-5,10,500,1) 6.10 Ολοκλήρωση 6.10.1 monte Carlo ολοκλήρωση Εστω πως θέλουμε να υπολογίσουμε το ορισμένο ολοκλήρωμα: I = 1 0 e x dx που αντιστοιχεί στη σκιασμένη περιοχή του γραφήματος:

104ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆ Κατασκευάζουμε ένα μεγάλο πλήθος σημείων με συντεταγμένες τυχαίους αριθμούς: Στη συνέχεια, υπολογίζουμε το πλήθος των σημείων που βρίσκονται εντός της σκιασμένης περιοχής. Αν N είναι το πλήθος όλων των σημείων και N 1

6.10. ΟΛΟΚΛ ΗΡΩΣΗ 105 το πλήθος των σημείων εντός της σκιασμένης περιοχής, τότε το ολοκλήρωμα αντιστοιχεί στην ποσότητα: I = P N1 N όπου P είναι το εμβαδόν όλης της περιοχής του γραφήματος, εδώ P = 1 1 = 1. Οι υπολογισμοί είναι απλοί: 1 octave:> N = 1000; 2 octave:> x = unifrnd (0,1,N,1); octave:> y = unifrnd (0,1,N,1); 4 octave:> f = exp(-x); 5 octave:> N1= sum(y<f); 6 octave:> I = N1/N 7 ans = 0.62700 Αναλυτικά, η τιμή του ολοκληρώματος είναι: I = 1 0 e x dx = 1 e 1 0.6212 Η προσεγγιστική τιμή που πήραμε από τη μέθοδο Monte Carlo δε συμφωνεί απόλυτα (όπως είναι αναμενόμενο) με τη θεωρητική τιμή. Το σφάλμα της μεθόδου είναι: σ = 0.62700 0.6212 0.6212 100 0.81% Δηλαδή η μέθοδος Monte Carlo ϋποτίμησε το πραγματικό μέγεθος της τιμής του ολοκληρώματος κατά 0.81%. Πρέπει να σημειωθεί πως λόγω του τυχαίου δείγματος που χρησιμοποιήθηκε για τον υπολογισμό, η τιμή του ολοκληρώματος θα διαφοροποιηθεί κατά κάτι σε ένα νέο υπολογισμό (θα παραχθούν άλλοι τυχαίοι αριθμοί). Επίσης, όσο μεγαλύτερο δείγμα τυχαίων αριθμών χρησιμοποιείται, τόσο το σφάλμα της μεθόδου αναμένεται να περιοριστεί. Ενας ακόμα τρόπος να περιοριστεί το σφάλμα του υπολογισμού, είναι να αεπαναληφθεί ο υπολογισμός πολλές φορές, και να λήφθεί η μέση τιμή των αποτελεσμάτων. Ο υπολογισμός της τιμής του π μπορεί να γίνει ως:

106ΚΕΦ ΑΛΑΙΟ 6. ΕΙΣΑΓΩΓ Η ΔΕΔΟΜ ΕΝΩΝ ΣΕ ΜΟΡΦ Η ΔΙΑΝΥΣΜΆΤΩΝ ΚΑΙ ΠΙΝΆ 1 T = 1000; # Number of points 2 N = 1000; # Number of repetitions 4 for i = 1:N 5 x = unifrnd(0,1,t,1); 6 y = unifrnd(0,1,t,1); 7 r = sqrt(x.^ 2.0 + y.^2.0); 8 N1 = sum((r<1.0)); 9 pimc(i) = 4*N1/N; 10 endfor 11 12 mpi = mean(pimc); 1 sig = (mpi-pi)*100/pi; 14 15 printf ("calc pi = %20.14f\n", mpi) 16 printf ("real pi = %20.14f\n", pi) 17 printf ("error = %12.6f\n", sig) Μπορείτε να πειραματιστείτε αλλάζοντας τον αριθμό των σημείων ή/και τον αριθμό των επαναλήψεων.

Κεφάλαιο 7 Επίλυση πολυωνυμικών εξισώσεων Η εύρεση ριζών μιας πολυωνυμικής εξίσωσης με το πρόγραμμα Octave είναι πολύ και γίνεται μέσω της εντολής: 1 roots (a) όπου a είναι το διάνυσμα συντελεστών του πολυωνύμου. Εστω λοιπόν η εξίσωση: P (x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0 = 0 (7.1) με συντελεστές a n, a n 1,..., a 1, a 0, όπου a i R. Ρίζα του πολυωνύμου είναι κάθε αριθμός ρ όπου P (ρ) = 0. Αν ρ R τότε μιλάμε για πραγματική ρίζα, αλλά μπορεί κάλλιστα να ισχύει ρ C, δηλαδή η ρίζα να είναι μιγαδικός αριθμός. Η εύρεση των ριζών μιας πολυωνυμικής εξίσωσης, με βάση το πρόγραμμα Octave βασίζεται στη γραφή: 1 a = [a_n a_n_1... a_1 a_0] 2 roots(a) ή, πιο σύτομα: 1 roots([a_n a_n_1... a_1 a_0]) Δηλαδή, με την τοποθέτηση των συντελεστών σε ένα διάνυσμα (τιμές που περικλείονται με αγκύλες) και κλίση της συνάρτησης roots(). 107

108 ΚΕΦ ΑΛΑΙΟ 7. ΕΠ ΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 7.1 Λυμένα παραδείγματα 1. x 2 4 = 0 1 octave:1> a = [1 0-4] 4 1 0-4 5 6 octave:2> roots(a) 7 ans = 8 9 2 10-2 2. x 9 2 x2 + 7 2 x + = 0 1 octave:1> a = [1-9/2 7/2 ] 4 1.0000-4.5000.5000.0000 5 6 octave:2> roots(a) 7 ans = 8 9.00000 10 2.00000 11-0.50000. x 2 + 1 = 0 1 octave:1> a = [ 1 0 1] 4 1 0 1 5 6 octave:2> roots(a) 7 ans = 8 9-0 + 1i 10 0-1i

7.1. ΛΥΜ ΕΝΑ ΠΑΡΑΔΕ ΙΓΜΑΤΑ 109 Προσοχή, εδώ οι ρίζες είναι μιγαδικές. 4. x 2x 2 + 2x 1 = 0 1 octave:1> a = [1-2 2-1] 4 1-2 2-1 5 6 octave:2> roots(a) 7 ans = 8 9 1.00000 + 0.00000i 10 0.50000 + 0.8660i 11 0.50000-0.8660i 12 x = 1, x = 1 2 + 2 i, και x = 1 2 2 i 5. z 4 + z + z 2 z 2 = 0 1 octave:1> a = [ 1 1 - -2 ] 4 1 1 - -2 5 6 octave:2> roots(a) 7 ans = 8 9 1.00000 10-2.00000 11-1.00000 12-1.00000 1 6. x 1 = 0 1 octave:1> a = [1 0 0-1] 4 1 0 0-1 5

110 ΚΕΦ ΑΛΑΙΟ 7. ΕΠ ΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 6 octave:2> roots(a) 7 ans = 8 9-0.50000 + 0.8660i 10-0.50000-0.8660i 11 1.00000 + 0.00000i i 1 i + 1 Προσοχή, και εδώ έχουμε μιγαδικές ρίζες: x =, x =, x = 2 2 1. Θα πρέπει να προσέξετε πως το Octave δίνει αριθμητικές απαντήσεις, πχ 2 0.8660 7. x 4 1 = 0 1 octave:> v = [ 1 0 0 0-1 ] 2 v = 4 1 0 0 0-1 5 6 octave:4> roots(v) 7 ans = 8 9-1.00000 + 0.00000i 10-0.00000 + 1.00000i 11-0.00000-1.00000i 12 1.00000 + 0.00000i 1 Εδώ (όπως και στο προηγούμενο παράδειγμα) υπάρχει μίξη πραγματικών και μιγαδικών ριζών. Ισχύει: x 4 1 = (x 1) 2 (x + 1) 2 = (x 1)(x + 1)(x + 1) 2 Από τις εξισώσεις x 1 = 0 και x+1 = 0 προκύπτουν οι δύο πραγματικές ρίζες: x = 1 και x = 1, ενώ από την εξίσωση (x + 1) 2 = 0 προκύπτουν οι δύο μιγαδικές ρίζες: x = ± 1 = ±i. 8. (x 2 2) 2 = 0 Εδώ υπάρχουν δύο δυνατότητες. Είτε να κάνετε τις πράξεις: ( x 2 2 ) 2 = x 4 4 x 2 + 4 οπότε:

7.1. ΛΥΜ ΕΝΑ ΠΑΡΑΔΕ ΙΓΜΑΤΑ 111 1 octave:1> a = [ 1 0-4 0 4 ] 4 1 0-4 0 4 5 6 octave:2> roots(a) 7 ans = 8 9-1.4142 + 0.0000i 10-1.4142-0.0000i 11 1.4142 + 0.0000i 12 1.4142 + 0.0000i 1 Δηλαδή στην ουσία παίρνετε δύο ρίζες: x = 1.4142 και x = 1.4142. Μπορείτε επίσης να ζητήσετε τη λύση του ισοδύναμου πολυωνύμου x 2 2 = 0: 1 octave:1> a = [ 1 0-2] 4 1 0-2 5 6 octave:2> roots(a) 7 ans = 8 9 1.4142 10-1.4142 που σας δίνει μια περισσότερο άμεση απάντηση. Υπενθυμίζεται πως 2 1.4142. Παρατηρείστε πως και οι δύο τρόποι δίνουν ισοδύναμες απαντήσεις. 9. x 5 15 x 4 + 85 x 225 x 2 + 274 x 120 = 0 1 octave:1> a = [ 1-15 85-225 274-120 ] 4 1-15 85-225 274-120 5 6 octave:2> roots(a) 7 ans =

112 ΚΕΦ ΑΛΑΙΟ 7. ΕΠ ΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 8 9 5.00000 10 4.00000 11.00000 12 2.00000 1 1.00000 10. (x 4) (x + 1) 2 = 0 Η εξίσωση μπορεί να γραφεί και ως: οπότε: (x 4) (x + 1) 2 = x 2 x 2 7 x 4 = 0 1 octave:1> a= [ 1-2 -7-4 ] 4 1-2 -7-4 5 6 octave:2> roots(a) 7 ans = 8 9 4.00000 10-1.00000 11-1.00000 7.2 Ασκήσεις Να βρεθούν οι ρίζες των παρακάτω πολυωνυμικών εξισώσεων: 1. x 4 + 8 x + 18 x 2 27 = 0 2. 2 x 9 x 2 5 x 2 = 0. x + 9 x 2 + 11 x 21 = 0 4. 2 x 4 + x 16 x 2 + 15 x 4 = 0 5. 15 x 5 + 7 x 4 + 97 x + 119 x 2 88 x + 12 = 0 6. x 4 + 6 x 6 x 2 10 x = 0

7.2. ΑΣΚ ΗΣΕΙΣ 11 7. 4 x 6 x 2 2 x + 1 = 0 8. t 5 1 = 0 9. (x 4 1) = 0 10. 25 x 4 140 x + 26 x 2 + 26 x + 45 25 11. x 2 481 x 8850 = 0 = 0 12. q 2 + 99.99q 1 = 0 1. q 2 + 999.999q 1 = 0 Τι παρατηρείτε από τη λύση των δύο τελευταίων εξισώσεων; 14. π x 2 π 1 = 0 15. z 2 π 1 = 0

114 ΚΕΦ ΑΛΑΙΟ 7. ΕΠ ΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ

Κεφάλαιο 8 Πράξεις στατιστικής με πίνακες και διανύσματα 8.1 Μέσος, άθροισμα και πλήθος Εστω το διάνυσμα τιμών: 1 octave:> x = [1 2 4] 2 x = 4 1 2 4 Το πλήθος των τιμών του διανύσματος, το άθροισμα των τιμών του, και η μέση τιμή, μπορούν να βρεθούν με τις συναρτήσεις length(), sum() και mean() αντίστοιχα: 1 octave:> length(x) 2 ans = 4 octave:> sum(x) 4 ans = 10 5 octave:> mean(x) 6 ans = 2.5000 Το αποτελέσματα θα ήταν τα ίδια με διάνυσμα στήλη: 1 octave:17> x = [1 2 4] 2 x = 4 1 115

116ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 5 2 6 7 4 8 9 octave:> mean(x) 10 ans = 2.5000 Στη συνέχεια του κεφαλαίου θα δίνουμε τα αντίστοιχα διανύσματα τιμών με αποσιώπηση εξόδου (με ελληνικό ερωτηματικό στο τέλος), καθαρά για εξοικονόμηση χώρου: 1 octave:> x = [1 2 4] ; 2 octave:> mean(x) ans = 2.5000 Τόσο ο μέσος, όσο και το άθροισμα ή το πλήθος, θα επιστρέψουν το ίδιο αποτέλεσμα, είτε ο υπολογισμός γίνει ως διάνυσμα στήλη είτε ως διάνυσμα γραμμή: 1 octave:> x = [1 2 4] ; 2 octave:> mean(x) ans = 2.5000 4 octave:> mean(x ) 5 ans = 2.5000 6 octave:> sum(x) 7 ans = 10 8 octave:> sum(x ) 9 ans = 10 10 octave:> length(x) 11 ans = 4 12 octave:> length(x ) 1 ans = 4 Ο υπολογισμός του μέσου και του αθροίσματος, λειτουργούν ωστόσο κατά στήλη, όταν το όρισμα είναι πίνακας, πχ 2 2: 1 octave:> a = [1 2; 4] 4 1 2 5 4 6 7 octave:> sum(a)

8.2. ΤΟ ΆΘΡΟΙΣΜΑ ΤΕΤΡΑΓ ΩΝΩΝ 117 8 ans = 9 10 4 6 11 12 octave:> sum(a ) 1 ans = 14 15 7 Δηλαδή το αποτέλεσμα είναι διαφορετικό. Η άθροιση σε πίνακες γίνεται πάντα κατά στήλη. Για το λόγο αυτό το αποτέλεσμα της άθροισης ενός πίνακα N M είναι ένα διάνυσμα γραμμή 1 M. Στο παράδειγμα που μόλις εξετάσαμε, ο πίνακας είχε διαστάσεις 2 2, οπότε το αποτέλεσμα της άθροισης είναι ένα διάνυσμα γραμμή 1 2. Τα στοιχεία του διανύσματος αντιστοιχούν στις πράξεις: a 11 + a 21 = 1 + = 4 a 12 + a 22 = 2 + 4 = 6 8.2 Το άθροισμα τετραγώνων Πολλές φορές είναι επιθυμητό να υπολογιστεί το άθροισμα τετραγώνων ενός διανύσματος. Δηλαδή, το άθροισμα: x 2 1 + x 2 2 +... + x 2 n Στην περίπτωση των τιμών του διανύσματος x που είδαμε στην προηγούμενη παράγραφο: 1 2 + 2 2 + 2 + 4 2 = 1 + 4 + 9 + 16 = 0 Ο υπολογισμός μπορεί να γίνει άμεσα με τη χρήση της συνάρτησης sumsq(): 1 octave:> x = [1 2 4] ; 2 octave:> sumsq(x) ans = 0 Ενας περισσότερο ενδιαφέρον τρόπος είναι το εσωτερικό γινόμενο x x: 1 octave:> x = [1 2 4] ; 2 octave:> x *x ans = 0

118ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ Το άθροισμα τετραγώνων ενός διανύσματος στήλη μπορεί να υπολογιστεί ως εσωτερικό γινόμενο: N x 2 i = x x i=1 δηλαδή ως γινόμενο ενός διανύσματος γραμμή (x ) με ένα διάνυσμα στήλη (x). Αν N είναι το πλήθος τιμών του διανύσματος στήλη, τότε το διάνυσμα γραμμή x θα έχει διαστάσεις 1 N και το διάνυσμα στήλη θα έχει διαστάσεις N 1. Ο πολλαπλασιασμός θα είναι συμβατός και θα δώσει ως αποτέλεσμα μία τιμή, ένα πίνακα διαστάσεων (1 N) (N 1) = 1 1. Αναλυτικά, μπορούμε να δούμε ως εξής: 1 octave:> x = [1 2 4] 2 x = 4 1 5 2 6 7 4 8 octave:> x 9 ans = 10 11 1 2 4 12 octave:> x *x 1 ans = 0 Μπορείτε να κάνετε μόνοι σας τις πράξεις 1 και να επιβεβαιώσετε το αποτέλεσμα. 8. Μέγιστη τιμή, ελάχιστη τιμή και εύρος τιμών Οι συναρτήσεις max(), min(), range() μπορούν να χρησιμοποιηθούν για την εύρεση της μεγαλύτερης ή μικρότερης τιμής αντίστοιχα, καθώς και για το εύρος τιμών. Για παράδειγμα: 1 octave:9> x = [1 2 4] ; 2 octave:> max(x) ans = 4 4 octave:> min(x) 1 Λογικά, θα πρέπει να μπορείτε να βρείτε το άθροισμα τετραγώνων από το 1 έως το 4 από μνήμης, χωρίς χαρτί, υπολογιστή, κτλ.

8.4. ΔΙΆΜΕΣΗ ΤΙΜ Η, ΕΠΙΚΡΑΤΟ ΥΣΑ ΤΙΜ Η ΚΑΙ ΓΕΩΜΕΤΡΙΚ ΟΣ ΚΑΙ ΑΡΜΟΝΙΚ ΟΣ Μ ΕΣΟ 5 ans = 1 6 octave:> range(x) 7 ans = Το εύρος τιμών είναι η διαφορά της μικρότερης από τη μεγαλύτερη τιμή, οπότε μπορεί να υπολογιστεί και ως: Για παράδειγμα: 1 octave:> max(x) - min(x) 2 ans = 8.4 Διάμεση τιμή, επικρατούσα τιμή και γεωμετρικός και αρμονικός μέσος Τι περισσότερες φορές ενδιαφερόμαστε για τη μέση τιμή ή αλλιώς τον αριθμητικό μέσο. Πολλές φορές ωστόσο είναι επιθυμητό να υπολογίσουμε τη διάμεση τιμή, την επικρατούσα τιμή ή το γεωμετρικό μέσο ενός δείγματος. Η διάμεση τιμή υπολογίζεται με τη συνάρτηση median(). Ας δούμε μερικά παραδείγματα: 1 octave:> x = [1 2 4] ; 2 octave:> median(x) ans = 2.5000 4 octave:> x = [1 2 4 1] ; 5 octave:> median(x) 6 ans = 2 7 octave:> x = [1 2 4 5] ; 8 octave:> median(x) 9 ans = Η διαφορά στη διάμεση τιμή, στα δύο τελευταία παραδείγματα, οφείλεται στη διάταξη των τιμών. να θυμάστε πάντα πως ο υπολογισμός της διάμεσης τιμής απαιτεί τη διάταξη του συνόλου. Αυτό μπορεί να γίνει με τη συνάρτηση sort(): 1 octave:> x = [1 2 4 1]; 2 octave:> sort(x) ans = 4 5 1 1 2 4 6

120ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 7 octave:> x = [1 2 4 5]; 8 octave:> sort(x) 9 ans = 10 11 1 2 4 5 Παρατηρούμε πως τώρα, και στις δύο περιπτώσεις, η κεντρική τιμή είναι το. Η κλήση της συνάρτησης median() υπονοεί την ταξινόμηση των τιμών, ώστε να λαμβάνεται το σωστό αποτέλεσμα. 8.5 Υπολογισμός διακύμανσης και τυπικής απόκλισης Η διακύμανση των τιμών του διανύσματος μπορεί να βρεθεί με τη συνάρτηση var(): 1 octave:> x = [1 2 4] ; 2 octave:> var(x) ans = 1.6667 Σας υπενθυμίζεται πως η διακύμανση είναι: var = 1 N 1 N (x i x) 2 (8.1) όπου N το πλήθος των στοιχείων ενός διανύσματος. Για να υπολογίσουμε αυτή τη ποσότητα, χωρίς τη συνάρτηση var() καθαρά για λόγους εκπαίδευσης θα δράσουμε ως εξής: 1. Υπολογίζουμε το διάνυσμα αποστάσεων από τη μέση τιμή x i x 1 octave:> x - mean(x) 2 ans = 4-1.50000 5-0.50000 6 0.50000 7 1.50000 i=1 2. Υπολογίζουμε το άθροισμα τετραγώνων του νέου διανύσματος με χρήση της συνάρτησης sumsq():

8.5. ΥΠΟΛΟΓΙΣΜ ΟΣ ΔΙΑΚ ΥΜΑΝΣΗΣ ΚΑΙ ΤΥΠΙΚ ΗΣ ΑΠ ΟΚΛΙΣΗΣ121 1 octave:> sumsq(x - mean(x)) 2 ans = 5. Διαιρούμε με το μήκος του διανύσματος (πλήθος τιμών) μείον ένα: 1 octave:> sumsq(x - mean(x)) / (length(x)-1) 2 ans = 1.6667 Οι δύο τρόποι δίνουν το ίδιο αποτέλεσμα: 1 octave:> x = [1 2 4] ; 2 octave:> var(x) ans = 1.6667 4 octave:> sumsq(x - mean(x)) / (length(x)-1) 5 ans = 1.6667 Ο πρώτος τρόπος (συνάρτηση var()) είναι βέβαια πιο απλός, και αυτός που προτιμάται στην πράξη. Εχει όμως σημασία να μπορείτε να αναλύεται ένα μαθηματικό/στατιστικό τύπο και να μπορείτε να κάνετε τους αντίστοιχους υ- πολογισμούς. Για το υπολογισμό της διακύμανσης, χωρίς τη συνάρτηση sumsq(),μπορούμε να γράψουμε: 1 octave:> x = [1 2 4] ; 2 octave:> y = x - mean(x) y = 4 5-1.50000 6-0.50000 7 0.50000 8 1.50000 9 octave:44> y *y / (length(x)-1) 10 ans = 1.6667 Το βοηθητικό διάνυσμα y δε χρειάζεται απολύτως, η χρήση του ωστόσο μας απαλλάσσει από πολλές παρενθέσεις: 1 octave:> x = [1 2 4] ; 2 octave:> (x-mean(x)) *(x-mean(x)) / (length(x)-1) ans = 1.6667

122ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ Ολοι οι τρόποι είναι σωστοί και αποδεκτοί, ωστόσο, οι πολύπλοκες παραστάσεις με πολλές παρενθέσεις μπορούν εύκολα να περιέχουν κάποιο λάθος που πολλές φορές είναι δύσκολο να εντοπιστεί και να διορθωθεί. Η τυπική απόκλιση μπορεί να βρεθεί είτε σαν τετραγωνική ρίζα της διακύμανσης, είναι με τη χρήση της συνάρτησης std(): 1 octave:> x = [1 2 4] ; 2 octave:> sqrt(var(x)) ans = 1.2910 4 octave:> std(x) 5 ans = 1.2910 Το αποτέλεσμα είναι βέβαια το ίδιο και μπορείτε να χρησιμοποιείτε είτε τον έναν υπολογισμό είτε τον άλλο. 8.6 Συνδιακύμανση και συντελεστής συσχέτισης Αν έχουμε δύο διανύσματα τιμών μπορούμε να υπολογίσουμε τη συνδιακύμανση και το συντελεστή συσχέτισης με τις συναρτήσεις cov() και cor() αντίστοιχα: 1 octave:1> x = [1 2 4] ; 2 octave:2> y = [0 2 5] ; octave:> cov(x,y) 4 ans = 2.6667 5 octave:> cor(x,y) 6 ans = 0.99228 Οπως πιθανά θα θυμάστε από τη Στατιστική, ο συντελεστής συσχέτισης παίρνει τιμές πάντα στο διάστημα [-1,1], ενώ η συνδιακύμανση μπορεί να πάρει οποιεσδήποτε τιμές. 8.7 Αναλυτικός υπολογισμός συνδιακύμανσης Η συνδιακύμανση υπολογίζεται με τον τύπο: cov(x, y) = 1 N 1 N (x i x)(y i ȳ) i=1

8.7. ΑΝΑΛΥΤΙΚ ΟΣ ΥΠΟΛΟΓΙΣΜ ΟΣ ΣΥΝΔΙΑΚ ΥΜΑΝΣΗΣ 12 Αυτό μπορεί να υπολογιστεί ως: 1 octave:> sum([[x-mean(x)].* [y-mean(y)]]) / (length(x)-1) 2 ans = 2.6667 Μπορούμε να δούμε τον υπολογισμό πιο αναλυτικά, ώστε να γίνεται καλύτερα αντιληπτός. 1. Από ένα διάνυσμα x μπορούμε να παράγουμε το διάνυσμα x x : 1 octave:> x-mean(x) 2 ans = 4-1.50000 5-0.50000 6 0.50000 7 1.50000 2. Το ίδιο μπορεί να γίνει και με το διάνυσμα y ȳ : 1 octave:> x-mean(x) 2 octave:> y-mean(y) ans = 4 5-2.50000 6-0.50000 7 0.50000 8 2.50000. Αυτό που μας ενδιαφέρει είναι το άθροισμα γινομένων: x 1 y 1 + x 2 y 2 + x y + x 4 y 4 Ενα τέτοιο άθροισμα μπορεί να ληφθεί με τον τελεστή.* Προσέξτε, είναι τελεία αστεράκι, χωρίς ενδιάμεσο κενό. Από μόνο τους η τελεία και το αστεράκι είναι τελείως διαφορετικά πράγματα, ο συνδυασμός τους είναι πως μας ενδιαφέρει εδώ. Αυτό είναι που κάνει τον πολλαπλασιασμό των στοιχείων δύο πινάκων διανυσμάτων. Ετσι, μπορούμε να τοποθετήσουμε τα αποτελέσματα των προηγούμενων υπολογισμών σε δύο νέα διανύσματα και να γράψουμε:

124ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 1 octave:> x1 = x-mean(x); 2 octave:> y1 = y-mean(y); octave:> x1.*y1 4 ans = 5 6.75000 7 0.25000 8 0.25000 9.75000 Ετσι έχουμε κάνει τις πράξεις: (1 2.5)(0 2.5) =.75 (2 2.5)(2 2.5) = 0.25 ( 2.5)( 2.5) = 0.25 (4 2.5)(5 2.5) =.75 Οπως έχουμε δει ήδη, η μέση τιμή των διανυσμάτων x, y είναι 2.5 (μπορείτε να το επιβεβαιώσετε με τη συνάρτηση mean()). 4. Το άθροισμα των τιμών του διανύσματος x1.*y1 μπορεί να βρεθεί ως: 1 octave:> sum(x1.*y1) 2 ans = 8 5. Ενώ η τιμή της συνδιακύμανσης ως: 1 octave:50> sum(x1.*y1) / (length(x)-1) 2 ans = 2.6667 6. Ολοι μαζί οι υπολογισμοί της συνδιακύμανσης: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> x1 = x-mean(x); 4 octave:> y1 = y-mean(y); 5 octave:> sum(x1.*y1) / (length(x)-1) 6 ans = 2.6667

8.7. ΑΝΑΛΥΤΙΚ ΟΣ ΥΠΟΛΟΓΙΣΜ ΟΣ ΣΥΝΔΙΑΚ ΥΜΑΝΣΗΣ 125 Τονίζεται πως δεν υπάρχει κάποιος ιδιαίτερος λόγος να χρησιμοποιείται τον αναλυτικό υπολογισμό της συνδιακύμανσης που μόλις δείξαμε, αντί της συνάρτησης cov(). Ωστόσο, για λόγους εκπαίδευσής σας, και για να μπορείτε να επιβεβαιώσετε αποτελέσματα με βάση μαθηματικούς ή στατιστικούς τύπους, θα πρέπει να μπορείτε να κάνετε τέτοιους αναλυτικούς υπολογισμούς. Θα δούμε επίσης μια μικρή τροποποίηση στο παραπάνω παράδειγμα. Αν θέλετε να αποφύγετε τη χρήση των ενδιάμεσων διανυσμάτων x1,y1 μπορείτε να γράψετε: 1 octave:> [x-mean(x)].* [y-mean(y)] 2 ans = 4.75000 5 0.25000 6 0.25000 7.75000 Η χρήση των αγκυλών γύρω από τους υπολογισμούς x x και y ȳ δημιουργεί δύο νέα διανύσματα και με τον τελεστή τελεία αστεράκι κάνουμε τον πολλαπλασιασμό των τιμών των δύο διανυσμάτων. Ετσι, με αυτόν τον τρόπο, ο αναλυτικός τρόπος υπολογισμού της συνδιακύμανσης μπορεί να γραφεί ως: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> sum([x-mean(x)].* [y-mean(y)]) / (length(x)-1) 4 ans = 2.6667 Είναι πιο σύντομος από πριν, αλλά περισσότερο πολύπλοκος. Επομένως, περισσότερο επικίνδυνος για πιθανά λάθη! Ωστόσο, περιγράφει με πολύ ωραίο τρόπο την ομορφιά και τη δύναμη μιας γλώσσας χειρισμού πινάκων σε Η/Υ, σε σχέση με μια αναλυτική γλώσσα προγραμματισμού. Μέσα σε μία μόνο γραμμή γίνονται οι πράξεις: 1. Υπολόγισε το μέσο x 2. Υπολόγισε το μέσο ȳ. Υπολόγισε την διαφορά x i x x = 1, 2,, 4 4. Υπολόγισε την διαφορά y i ȳ y = 1, 2,, 4 5. Υπολόγισε τα γινόμενα (x i x)(y i ȳ) x = 1, 2,, 4 6. Υπολόγισε το άθροισμα των γινομένων (x i x)(y i ȳ)

126ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ 7. Υπολόγισε το πλήθος των τιμών του διανύσματος x και αφαίρεσε μία μονάδα 8. Κάνε τη διαίρεση άθροισμα προς πλήθος μείον ένα Τέλος, για τη δική σας διευκόλυνση, μπορείτε να μάθετε επίσης και τη συνάρτηση center(), η οποία επιστρέφει τη διαφορά από το μέσο: c = x i x, i = 1, 2,..., N 1 octave:> center(x) 2 ans = 4-1.50000 5-0.50000 6 0.50000 7 1.50000 Ετσι, ο υπολογισμός της διακύμανσης μπορεί να γραφεί και ως: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> sum(center(x).*center(y)) / (length(x)-1) 4 ans = 2.6667 Και τέλος, ας δώσουμε ακόμα μια πιο απλή λύση. Επειδή για δύο διανύσματα στήλη x, y ισχύει: N x i y i = x y μπορούμε να γράψουμε: i=1 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> (center(x) * center(y)) / (length(x)-1) 4 ans = 2.6667

8.8. Η ΤΥΠΙΚ Η ΑΠ ΟΚΛΙΣΗ 127 8.8 Η τυπική απόκλιση Η συνάρτηση που υπολογίζει την τυπική απόκλιση είναι η std(). Για την τυπική απόκλιση ισχύει: s x = 1 N ( (x i x)) N 1 Η τυπική απόκλιση δηλαδή (standard deviation) ισούται με την τετραγωνική ρίζα της διακύμανσης: s x = (σ x ) Αυτό μπορεί να επαληθευθεί ως: 1 octave:> x = [1 2 4] ; 2 octave:> std(x) ans = 1.2910 4 octave:> sqrt(var(x)) 5 ans = 1.2910 6 octave:> var(x) 7 ans = 1.6667 8 octave:> std(x)^2 9 ans = 1.6667 Παρατηρείστε πως η τιμή της τυπικής απόκλισης ισούται με την τετραγωνική ρίζα της διακύμανσης, και πως η τιμή της διακύμανσης ισούται με το τετράγωνο της τυπικής απόκλισης. 8.9 Αναλυτικός υπολογισμός του συντελεστή συσχέτισης Ο συντελεστής συσχέτισης (ή αλλιώς συντελεστής Pearson), δύο διανυσμάτων δίνεται από τη σχέση: ρ xy = σ x,y s x s y = i=1 cov(x, y) std(x)std(y) Δηλαδή, ισούται με τη συνδιακύμανση προς το γινόμενο των τυπικών αποκλίσεων. Η συνάρτηση cor() επιστρέφει την τιμή του συντελεστή συσχέτισης: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> cor(x,y) 4 ans = 0.99228

128ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ Να έχετε πάντοτε υπ όψιν σας πως ο συντελεστής συσχέτισης παίρνει εξ ορισμού τιμές στο διάστημα [-1,1]. Ο υπολογισμός με βάση την παραπάνω εξίσωση μπορεί να γίνει ως: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; octave:> cov(x,y)/(std(x)*std(y)) 4 ans = 0.99228 Οπως παρατηρείτε, το αποτέλεσμα είναι το ίδιο. Στην πραγματικότητα, η συνάρτηση cor() αποτελεί κλήση στον υπολογισμό αυτό του τύπου. Κάνοντας μερικές πράξεις, μπορεί να δειχθεί πως: ρ xy = N N i=1 (x i x)(y i ȳ) i=1 (x i x) 2 N i=1 (y i ȳ) 2 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; (center(x) * center(y)) / (sqrt(sumsq(center(x)))*sqrt(sumsq(center(y)))) 4 ans = 0.99228 Υπενθυμίζεται πως ισχύει: 1 octave:> center(x) 2 ans = 4-1.50000 5-0.50000 6 0.50000 7 1.50000 8 9 octave:> x-mean(x) 10 ans = 11 12-1.50000 1-0.50000 14 0.50000 15 1.50000 Δηλαδή πως center(x) = x-mean(x). Βέβαια, μπορούμε να «διασπάσουμε» έναν πολύπλοκο υπολογισμό, όπως πριν σε περισσότερο απλούς. Για παράδειγμα, για τον υπολογισμό του αριθμητή μπορούμε να γράψουμε:

8.9. ΑΝΑΛΥΤΙΚ ΟΣ ΥΠΟΛΟΓΙΣΜ ΟΣ ΤΟΥ ΣΥΝΤΕΛΕΣΤ Η ΣΥΣΧ ΕΤΙΣΗΣ129 1 octave:> c = center(x) * center(y) 2 c = 8 octave:> c = sum(center(x).* center(y)) 4 c = 8 5 octave:> c = [x-mean(x)] * [y-mean(y)] 6 c = 8 7 octave:> c = sum([x-mean(x)] * [y-mean(y)]) 8 c = 8 Προφανώς ένας μόνο τρόπος είναι αρκετός. Δε χρειάζονται και οι τέσσερις! Μπορείτε επίσης να σκεφτείτε και μερικούς ακόμα και μόνοι σας. Προσπαθήστε ωστόσο να εξοικειωθείτε με τους διαφορετικούς τρόπους γραφής και να τους καταλάβετε όλους. Στη συνέχεια, μπορείτε βέβαια να επιλέξετε τον τρόπο που θέλετε, και το στυλ που σας ταιριάζει περισσότερο. Για τον παρανομαστή μπορούμε να γράψουμε: 1 octave:> x1 = center(x) 2 x1 = 4-1.50000 5-0.50000 6 0.50000 7 1.50000 8 9 octave:> sx = sqrt(sumsq(x1)) 10 sx = 2.261 11 12 octave:> sx = sqrt(center(x) * center(x)) 1 sx = 2.261 14 15 octave:> x1 = [x-mean(x)].^ 2 16 x1 = 17 18 2.25000 19 0.25000 20 0.25000 21 2.25000 22 2 octave:> sx = sqrt(sum(x1)) 24 sx = 2.261

10ΚΕΦ ΑΛΑΙΟ 8. ΠΡΆΞΕΙΣ ΣΤΑΤΙΣΤΙΚ ΗΣ ΜΕ Π ΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝ ΥΣΜΑΤΑ Δώσαμε τρεις τρόπους για τον υπολογισμό της παράστασης: N (x i x) 2 i=1 Υπάρχουν βέβαια και άλλοι τρόποι. Οπως και πριν, μπορείτε και εδώ να πειραματιστείτε με νέες μεθόδους μέχρι να βρείτε αυτόν που καταλαβαίνετε καλύτερα. Μπορείτε επίσης με κάποιο αντίστοιχο τρόπο να υπολογίσετε την παράσταση: N (y i ȳ) 2 και τελικά να έχουμε: 1 octave:> x = [1 2 4] ; 2 octave:> y = [0 2 5] ; i=1 octave:> c = sum([x-mean(x)] * [y-mean(y)]) 4 c = 8 5 6 octave:> x1 = [x-mean(x)].^ 2; 7 octave:> sx = sqrt(sum(x1)) 8 sx = 2.261 9 10 octave:> y1 = [y-mean(y)].^ 2; 11 octave:> sy = sqrt(sum(y1)) 12 sy =.6056 1 14 octave:> c / (sx*sy) 15 ans = 0.99228 16 17 octave:> cor(x,y) 18 ans = 0.99228 Η αποσιώπηση εξόδου στις εντολές που τελειώνουν με ελληνικό ερωτηματικό έγινε εδώ για λόγους οικονομίας. Αν «τρέξετε» το παράδειγμα σε Η/Υ μπορείτε να μην βάλετε στο τέλος των εντολών, ώστε να δείτε καθαρότερα τους ενδιάμεσους υπολογισμούς. Η τελευταία εντολή, με τη συνάρτηση cor() δόθηκε για λόγους σύγκρισης, όπως βλέπετε το αποτέλεσμα είναι το ίδιο.

Κεφάλαιο 9 Επίλυση συστημάτων γραμμικών εξισώσεων Τα συστήματα γραμμικών εξισώσεων έχουν τη γενική μορφή: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.... a m1 x 1 + a m2 x 2 + + a mn x n = b m Μπορούν επίσης να γραφούν με τη μορφή: Ax = b όπου: a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n A =......, x = x 2., b = b 2. a m1 a m2 a mn x n b m Η λύση δίνεται από τη σχέση: x = A 1 b Εστω το σύστημα: 5x 1 + 2x 2 = 7 2x 1 = 2 Μπορεί να λυθεί με: 11

12ΚΕΦ ΑΛΑΙΟ 9. ΕΠ ΙΛΥΣΗ ΣΥΣΤΗΜΆΤΩΝ ΓΡΑΜΜΙΚ ΩΝ ΕΞΙΣ ΩΣΕΩΝ 1 octave:> A = [-5 2; 2 0] 2 A = 4-5 2 5 2 0 6 7 octave:> b = [-7; -2] 8 b = 9 10-7 11 2 12 1 octave:> x=inv(a)*b 14 x = 15 16 1 17-1 Μπορείτε να έχετε επιβεβαίωση της λύσης με την παράσταση A*x: 1 octave:> A*x 2 ans = 4-7 5 2 οι τιμές του αποτελέσματος θα πρέπει να ταυτίζονται με αυτές του διανύσματος b. Εστω το σύστημα: Μπορεί να λυθεί με: x 1 + 5x 2 2x = 6 x 1 + 6x 2 + x = 2 x 1 + 1x 2 + 2x = 0 1 octave:> A = [ 5-2; 6 1; -1 1 2] 2 A = 4 5-2 5 6 1 6-1 1 2

9.1. ΑΣΚ ΗΣΕΙΣ 1 7 8 octave:> b = [6; -2; 0] 9 b = 10 11 6 12-2 1 0 14 15 octave:7> x=a\b 16 x = 17 18-4.5000 19 2.5000 20 -.5000 Η πράξη A\b είναι ισοδύναμη με την inv(a)*b, μπορείτε να χρησιμοποιείτε είτε τη μία είτε την άλλη. Η εμπειρία έχει δείξει πως η γραφή inv(a)*b είναι προτιμότερη. Η γραφή A\b μπορεί εύκολα να οδηγήσει στο λάθος b\a, το οποίο είναι τελείως διαφορετική ποσότητα. 9.1 Ασκήσεις Να λύσετε τα παρακάτω συστήματα γραμμικών εξισώσεων: 1. 2.. 4. x 1 2x 2 = 1 x 1 x 2 = 1 x 1 + x 2 x = 6 2x 1 2x 2 + 2x = 2 x 1 2x 2 x = 0 5x 1 + 2x + x 4 = 19 8x 1 + 5x 2 + x + 2x 4 = 7 4x 1 + x 2 + x 4 = 18 x 2 + 5x + x 4 = 26 5 x 4 1 x 2 = 4 5 x 4 1 + x 2 = 2