Transcript Matlab VI

Εισαγωγή στην Επιστήμη των Η/Υ ΙΙ
Μάθημα 7
Στατιστική Ανάλυση Δεδομένων –
Γραμμική Αλγεβρα
Η Στατιστική είναι ένα σύνολο αρχών και μεθοδολογιών για :
1) το σχεδιασμό της διαδικασίας συλλογής δεδομένων
2) τη συνοπτική και αποτελεσματική παρουσίασή τους
3) την ανάλυση και εξαγωγή αντίστοιχων συμπερασμάτων
Μεταβλητή : Το χαρακτηριστικό ως προς το οποίο εξετάζουμε
έναν πληθυσμό πχ. βάρος, ύψος, βαθμολογίες φοιτητών κτλ.
Για να εξάγουμε σωστά συμπεράσματα για ένα πληθυσμό
χρησιμοποιούμε κάποιες χρήσιμες παραμέτρους όπως είναι τα
μέτρα θέσης και διασποράς
Μέτρα Θέσης και Διασποράς:
1) Μέση τιμή (εντολή mean) :
x1  x2  ...  xN
x
N
>> x=[1 3 5 7 3];
>> mean(x)
ans =
3.8000
2) Διάμεσος (εντολή median) : ενός δείγματος Ν παρατηρήσεων, που
έχουν διαταχθεί σε αύξουσα σειρα, είναι η μεσαία παρατήρηση, αν το Ν
είναι περιττός ή το ημιάθροισμα των δύο μεσαίων παρατηρήσεων αν το Ν
είναι άρτιος.
>> x=[1 3 5 7 3 5 4 7];
>> median(x)
ans =
4.5000
3) Εύρος (εντολή range) : Μεγαλύτερη παρατήρηση – Μικρότερη παρατήρηση
>> x=[1 3 5 7 3 5 4 7];
>> range(x)
ans =
6
4) Διασπορά (εντολή var) :
>> x=[1 3 5 7 3 5 4 7];
>> var(x)

1
 2   ( xi  x ) 2
  1
ans =
4.2679
5) Τυπική απόκλιση (εντολή std) : Η τετραγωνική ρίζα της διασποράς
>> x=[1 3 5 7 3 5 4 7];
>> std(x)
ans =
2.0659
  2
6) Ασυμμετρία (εντολή skewness) :
7) Κύρτωση (εντολή kurtosis) :
>> x=[1 3 5 7 3 5 4 7];
>> skewness(x)
ans =
-0.1218
>> kurtosis(x)
ans =
2.0811
1  ( xi  x )3
sk ( x)  
  1  3
1  ( xi  x ) 4
kur( x)  
  1  4
Γραμμική Άλγεβρα
Όπως ήδη εχει αναφερθεί η βασική δομή της Matlab είναι ο πίνακας και η ειδική
περιπτώση αυτού, το διάνυσμα. Η ανάλυση με πίνακες, διανύσματα, ορίζουσες
καθώς και η επίλυση εξισώσεων και συστημάτων αποτελούν κομμάτι ενός τομέα
των Μαθηματικών που ονομάζεται Γραμμική Αλγεβρα.
Κατασκευή πίνακα και διανύσματος:
>> x=[1 2 3;4 5 6;7 8 9]
x=
πίνακας 3x3
1
4
7
2
5
8
3
6
9
>> x=[1 2 3 4]
διάνυσμα γραμμή (πίνακας 1x4)
x=
1
2
3
4
>> x=[1; 2; 3; 4]
διάνυσμα στήλη (πίνακας 4x1)
x=
1
2
3
4
Ανάστροφος πίνακας ΑΤ (εντολή Α’) :
>> x=[1 2 3;4 5 6;7 8 9]
>> x'
x=
ans =
1
4
7
2
5
8
3
6
9
1
2
3
4
5
6
7
8
9
Παρατηρείστε πως ο ανάστροφος πίνακας μετατρέπει τις γραμμές του πίνακα
x σε στήλες και τις στήλες σε γραμμες.
Πολλαπλασιασμός Πινάκων
Έχουμε ήδη δει, εφαρμογές που χρειάστηκε να πολλαπλασιάσουμε 2 πίνακες, στοιχείο
προς στοιχείο, βάζοντας μια τελεία πρίν το σύμβολο του πολ/μού (.*). Ο πολ/μός
πινάκων όμως, σύμφωνα με τους κανόνες της Γραμμική ‘Αλγεβρας ορίζεται διαφορετικά:
Αν Α είναι ένας μxν πίνακας και Β είναι είναι ένας νxρ πίνακας, τότε ορίζουμε ως
γινόμενο του πίνακα Α με τον πίνακα Β (συμβολίζουμε με Α*Β ή ΑΒ) ένα νεό πίνακα Γ,
διαστάσεων μxρ, του οποίου κάθε στοιχείο γij είναι το άθροισμα των γινομένων των ν
στοιχείων της i-γραμμής του Α με τα αντίστοιχα ν στοιχεία της j-στήλης του Β. Δηλαδή :
γij=αi1β1j+αι2β2j+…+αινβνj
Προσοχή!!
Για να ορίζεται το γινόμενο ΑΒ πρέπει ο αριθμός των στηλών του πίνακα Α να είναι ίσος
με τον αριθμό των γραμμών του πίνακα Β.
Παράδειγμα :
>> A=[1 3 2;4 7 9;2 3 6]
>> B=[2 5 1;3 7 4;6 2 9]
A=
B=
1
4
2
3
7
3
2
9
6
2
3
6
5
7
2
1
4
9
Πολλαπλασιάζω τους 2 πίνακες, πρώτα σύμφωνα με τον ορισμό του πολ/μού πινάκων
της Γραμμικής Αλγεβρας και μετά σοιχείο προς στοιχείο
>> C=A*B
>> C_el=A.*B
C=
C_el =
23
83
49
30 31
87 113
43 68
2 15 2
12 49 36
12 6 54
Παρατηρούμε πως C≠C_el άρα και Α*Β≠Α.*Β
Αντίστροφος πίνακας Α-1 (εντολή inv) :
Αντίστροφος πίνακα Α, είναι ο πίνακας Α-1 για τον οποίο ισχύει Α*Α-1= Α-1*Α =Ι όπου Ι
ο μοναδιαίος πίνακας.
>> A=[1 2 1;1 -1 1;1 1 0]
A=
1
1
1
2
-1
1
1
1
0
>> inv(A)
ans =
-0.3333 0.3333 1.0000
0.3333 -0.3333
0
0.6667 0.3333 -1.0000
Μοναδιαίος πίνακας: ο πίνακας nxn,
του οποίου τα στοιχεία της διαγωνίου
είναι 1 και όλα τα υπόλοιπα 0 (εντολή
eye).
>> eye(3)
ans =
1
0
0
0
1
0
0
0
1
Ορίζουσα πίνακα (εντολή det) :
Η ορίζουσα ενός τετραγωνικού (ίδιος αριθμός γραμμών και στηλών) πίνακα Α,
είναι ένας αριθμός (όχι πίνακας), και χρησιμοποιείται ευρέως για την επίλυση
γραμμικών συστημάτων. Επίσης, για να εχει ένας πίνακας αντίστροφο, θα
πρέπει η ορίζουσά του να είναι διάφορη του μηδενός.
Ορίζουσα ενός 2x2 πίνακα (ορίζουσα 2ης τάξης)
Έστω ο 2x2 πίνακας
a11 a12 
A

a
a
 21 22 
Η ορίζουσα του πίνακα Α θα συμβολίζεται με |Α| και θα ισούται με :
A
a11 a12
a21 a22
 a11a22  a12 a21
Με τον ίδιο τρόπο υπολογίζουμε και την ορίζουσα ενός πίνακα 3x3
Ορίζουσα ενός 3x3 πίνακα (ορίζουσα 3ης τάξης)
Έστω ο 3x3 πίνακας :
a11 a12 a13 
A  a21 a22 a23 
a31 a32 a33 
Η ορίζουσά του θα ισούται με :
a11 a12 a13
A  a21 a22 a23  a11
a31 a32 a33
a22 a23
a32 a33
 a12
a21 a23
a31 a33
 a13
a21 a23
a31 a32
Η παραπάνω παράσταση, με την οποία ορίσαμε την ορίζουσα ενός 3x3
πίνακα, λέγεται ανάπτυγμα της |Α| ως προς τα στοιχεία της πρώτης γραμμής.
Με τον ίδιο τρόπο υπολογίζονται και οι ορίζουσες οποιασδήποτε τάξης.
Παραδείγματα :
1) Οριζουσα ≠ 0
2) Μηδενική Ορίζουσα
>> A=[2 3 -1;4 1 2;1 -1 1]
>> A=[2 3 1;4 1 5;1 -1 2]
A=
A=
2
4
1
3
1
-1
-1
2
1
2
4
1
3
1
-1
>> det(A)
>> det(A)
ans =
ans =
5
>> inv(A)
ans =
0.6000 -0.4000 1.4000
-0.4000 0.6000 -1.6000
-1.0000 1.0000 -2.0000
1
5
2
0
>> inv(A)
Warning: Matrix is singular to
working precision.
ans =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf
Ιδιοτιμές και Ιδιοδιανύσματα τετραγωνικού πίνακα (εντολή eig):
Έστω ο νxν πίνακας Α. Ιδιοτιμές του πίνακα Α, ονομάζονται οι αριθμοί λi για τους
οποίους ισχύει :
| Α-λiΙ | = 0
όπου Ι, ο μοναδιαίος πίνακας (θυμηθείτε εντολή eye) και | Α-λiI | η ορίζουσα του
πίνακα Α-λiI. Eπίσης, ιδιoδιανύσμα του πίνακα Α, αντίστοιχο της ιδιοτιμής λj,
ονομάζουμε κάθε διάνυσμα rj=[r1;r2;..;rν], τέτοιο ώστε :
(Α-λjΙ) rj = 0
Όπου 0, εδώ εκφράζει τον μηδενικό πίνακα, τον πίνακα δηλαδή που έχει όλα τα
στοιχεία του μηδενικά.
H Μatlab υπολογίζει τις ιδιοτιμές και τα ιδιοδιανύσματα ενός τετραγωνικού πίνακα
μέσω της εντολής eig.
Παράδειγμα :
Έστω ότι θέλουμε να υπολογίσουμε τις ιδιοτιμές και τα ιδιοδιανύσματα του πίνακα Α :
>> A=[1 3 2;4 7 9;2 3 6]
A=
1
4
2
Με την εντολή Ε=eig(A) παίρνω ένα διάνυσμα
που περιέχει τις ιδιοτιμες του πίνακα Α, πχ :
>> E=eig(A)
3
7
3
2
9
6
E=
13.0385
-0.3956
1.3571
Για να υπολογίσω και τα αντίστοιχα ιδιοδιανύσματα διατυπώνω την εντολή ως εξής :
[V,D]=eig(A), και η Matlab μου επιστρέφει ένα πίνακα V που έχει ως στήλες τα
ιδιοδιανύσματα του πίνακα Α και ένα πίνακα D που έχει στην κύρια διαγώνιό του τις
ιδιοτιμές του ίδιου πίνακα.
>> [V,D]=eig(A)
V=
-0.2854 -0.9291 -0.6587
-0.8497 0.3470 -0.4701
-0.4433 0.1278 0.5875
D=
13.0385
0
0
0 -0.3956
0
0
0 1.3571
Γραμμικά συστήματα :
Κάθε εξίσωση της μορφής a1x1+a 2x2 +…+ anxn=b, όπου ai πραγματικοί αριθμοί και xi
άγνωστοι, λέγεται γραμμική εξίσωση με n αγνώστους. Οι αριθμοί ai ονομάζονται
συντελεστές και ο b σταθερός όρος. ‘Ενα πεπερασμένο πλήθος m γραμμικών
εξισώσεων με n αγνώστους, των οποίων ζητάμε τις κοινές λύσεις, λέγεται γραμμικό
σύστημα m εξισώσεων με n αγνώστους ή απλούστερα γραμμικό σύστημα mxn.
Για να λύσουμε ένα γραμμικό σύστημα Αx=b, όπου Α ο τετραγωνικός και αντιστρέψιμος
πίνακας των συντελεστών , χρησιμοποιούμε την «αριστερή διαίρεση: ‘\’».
παράδειγμα:
Έστω οτι θέλουμε να λύσουμε το σύστημα (ως προς x=[x1 ; x2 ;x3]):
x1+2x2+x3=-1
x1-x2+x3=3
x1+x2=4
Αρχικά, σχηματίζουμε τους πίνακες Α=[1 2 1; 1 -1 1;1 1 0] και b=[-1;3;4]
Ο πίνακας Α είναι τετραγωνικός (3x3) και αντιστρέψιμος αφού det(A)=3≠0
>> A=[1 2 1;1 -1 1;1 1 0]
Η λύση του γραμμικού συστήματος, δίνεται
από την Matlab, μέσω της εντολής :
A=
x=A\b
1
1
1
2
-1
1
1
1
0
>> x=A\b
>> b=[-1;3;4]
x=
b=
-1
3
4
5.3333
-1.3333
-3.6667
Άρα η λύση του γραμμικού συστήματος είναι τo διάνυσμα:
x1 = 5.3333
x=[x1;x2;x3] με :
x2 = -1.3333
x3 = -3.6667
και είναι μοναδική, κάτι που συμβαίνει όταν det(A)≠0.
Παράδειγμα γραμμικού συστήματος με καμία ή απειρες λύσεις:
Όπως είδαμε στο προηγουμενο παράδειγμα ικανή και αναγκαία συνθήκη για να έχει
ένα σύστημα μοναδική λύση είναι, η ορίζουσα του πίνακα των συντελεστών να είναι
διάφορη του μηδενός. Τι γίνεται όμως όταν δεν συμβαίνει αυτό?
2α+3β+γ=2
Έστω ότι θέλουμε να λύσουμε το σύστημα: A*x=b
=>
4α+β+5γ=3
α-β+2γ=1
οπου Α= [2 3 1;4 1 5;1 -1 2] , x=[α;β;γ] και b=[2;3;1].
>> A=[2 3 1;4 1 5;1 -1 2]
>> b=[2;3;1]
A=
b=
2
4
1
3
1
-1
1
5
2
2
3
1
Υπολογίζουμε την ορίζουσα του πίνακα των συντελεστών :
>> det(A)
ans =
0
Αφού η ορίζουσα είναι μηδενική, το σύστημα θα είναι αδύνατο ή αόριστο (καμία ή
άπειρες λύσεις).
>> x=A\b
Warning: Matrix is singular to
working precision.
x=
-Inf
Inf
Inf
Αριθμητική Ολοκλήρωση με τη μέθοδο του Τραπεζίου (εντολή trapz) :
b
Το ορισμένο ολοκλήρωμα
 f ( x )dx , όπου a,b γνωστές πραγματικές
a
σταθερές και f(x) συνεχής συνάρτηση, μπορεί να υπολογιστεί με διάφορες
αναλυτικές και αριθμητικές μεθόδους. Θα προσπαθήσουμε να προσεγγίσουμε το
παραπάνω ολοκλήρωμα, όχι με γνωστές αναλυτικές μεθόδους της κλασσικής
ανάλυσης, αλλα με την αριθμητική μέθοδο του τραπεζίου.
Αν διαμερίσουμε το διάστημα [a,b] σε n υποδιαστήματα ίσου μήκους: Δx =(b−a)/n
και θεωρήσουμε κομβικά σημεία τα :
x0=a, x1=a+Δx, x2=a+ 2Δx ,..., xi=a+iΔx,..., xn=a+nΔx=b
τότε, σύμφωνα με την μέθοδο του τραπεζίου, η προσέγγιση του ολοκληρώματος
επιτυγχάνεται ως εξής :
b

a
x
 f ( x 0 )  2 f ( x1 )  f ( x2 )  ...  f ( xn1 )  f ( xn )
f ( x)dx 
2
Στην περίπτωση που αντί για την συνάρτηση f(x) μας έχουν δοθεί διακριτές τιμές
της, f(x1), f(x2),…,f(xn), που αντιστοιχούν στα σημεία x1, x2,…,xn , τότε μπορούμε να
βρούμε το ολοκλήρωμα της f(x) στο διάστημα [x1 , xn] με την εντολή trapz(x,y), η
οποία παίρνει σαν δεδομένα εισόδου τα διανύσματα :
x=[x1;x2;…;xn] και y=[f(x1);f(x2);…;f(xn)]
παράδειγμα :
Έστω ότι έχουμε τα δεδομένα :
>> x = [0 0.1 0.25 0.33 0.46 0.59 0.64 0.78 0.99];
>> y = [1.14 13.45 33.99 54.68 55.5 70.0 76.3 81.19 109.7];
>> plot(x,y,’-o’)
To ολοκλήρωμα της συνάρτησης που περνάει από τα
σημεία της γραφικής παράστασης είναι :
>> trapz(x,y)
ans =
57.8787
εργαστήριο....