You are on page 1of 79

https://docs.google.

com/document/d/
17NPBGAhH7gZOoiwmJifrneMgAi5YtBvhH0bETRZbv8A/
edit?usp=sharing Οι απαντήσεις καλό θα ήταν να
γράφονται με πράσινο χρώμα
Οι απαντήσεις στις εικόνες δεν είναι σίγουρα σωστές

BLAS

1) Η κατηγορία BLAS-2 των BLAS αφορά σε πράξεις μεταξύ μητρώων και διανυσμάτων
Απάντηση: ΣΩΣΤΌ (MV)

21

2) Η επίλυση συστημάτων

Απάντηση

Είναι κάτω τριγωνικό το Α οπότε μάλλον σωστό γιατί για να επιλύσουμε το σύστημα κάνουμε απλά
MV και εξισώνουμε
CHOLESKY

1) Εστω η συνάρτηση σε Matlab cholesky_block

Απάντηση

γ)Είναι τριγωνικό διότι προκύπτει G τριγωνικό άρα και το G11 (επειδή αναφέρεται
στο G(1:r,1:r) που ειναι το G11) θα είναι τριγωνικό

2) Εστω η συνάρτηση σε Matlab cholesky_block

Απάντηση
5, για τα A(1:9,1:9),A(3:9,3:9),A(5:9,5:9),A(7:9,7:9),A(9:9,9:9) οπου μετά ικανοποιείται (n<=r) και θα
υπολογίζει μέσω απλής chol()
3) Εστω η συνάρτηση σε Matlab cholesky_block

Απάντηση

4 φορές για τα block A(1:10,1:10),A(4:10,4:10),A(7:10,7:10),A(10:10,10:10) για τον αντίστοιχο λόγο με


πάνω

4) Εστω η συνάρτηση σε Matlab cholesky_block


Απάντηση
3 φορές για τα block A(1:10,1:10),A(5:10,5:10),A(9:10,9:10) για τον αντίστοιχο λόγο με πάνω

5) Έστω συμμετρικό θετικά ορισμένο μητρώο Α

0.CSC CSR
Μεθοδολογία

CSR↑

1)Τα επόμενα διανύσματα περιγράφουν ένα 3χ3(3x3) μητρωο Α σε μορφή CSC

Απάντηση

Εαν col_ptr[3]=4 A(3,1)=0, A(2,2)=0, A(1,3)=0


Α=3 8 0
2 0 0
0 2 3
Εαν .col_ptr[3]=5 A(3,1)=0, A(2,2)=2, A(1,3)=0
Α=3 2 0
8 2 0
0 0 3
2)Τα επόμενα διανύσματα περιγράφουν ένα 3x3 μητρωο Α σε μορφή CSR

Απάντηση
Σωστή
Α= 9 0 0
0 1 0
0 8 3
Εξήγηση
Ξεκινάμε χρησιμοποιώντας την συναρτηση
πλήθος αριθμών στην grammh (i)= row_ptr(i+1)-row_ptr(i)

Για i = 1 δηλαδη για την πρώτη γραμμη


Εχουμε 2-1 = 1 στοιχεια που υπάρχουν στην 1η γραμμη
Ποιο? το 1ο μας απο το α δηλαδη το 9,
Σε ποια στηλη;στην 1η απο col_idx.
Μετά για i=2 δηλαδη δευτερη γραμμη 3-2=1 στοιχεια .
Ποιο; το επομενο,δλδ το 1(το επομενο απο τον πινακα a)
Σε ποια στηλη; στη 2 απο col_idx.
Μετα για i=3 δηλαδη 3η γραμμη 5-3 =2 στοιχεια
Δηλαδη τα επομενα 2 στοιχεία( το 8 και το 3)
Σε ποιές στήλες; στην 2 και την 3 αντιστοιχα ( απο col_idx)
row_ptr(i+1)-row_ptr(i) = πόσα στοιχεία έχει η i γραμμή
2-1 = 1
3-2 = 1
5-2 = 2

col_idx δείχνει το που βρίσκονται


(1 2 2 3)
Πρώτη γραμμή
(1) Στην πρώτη στήλη έχω
Τέλος με την πρώτη στήλη εφόσον έχει 1 στοιχείο
Δεύτερη γραμμή
(2) Στην δεύτερη στήλη έχω
Τέλος με την δεύτερη στήλη εφόσον έχει 1 στοιχείο
Τρίτη γραμμή
(2) Στην δεύτερη
(3) Στην τρίτη στήλη έχω
Τέλος με την τρίτη στήλη εφόσον έχει 2 στοιχείο

Μετά, με την σειρά, εξαντλώ τα στοιχεία του a

3)Τα επόμενα διανύσματα περιγράφουν ένα 3χ3(3x3) μητρωο Α σε μορφή CSC

Απάντηση

A(3,1)=0, A(2,3)=0, A(1,2)=0.


Α=1 0 0
3 4 0
0 0 3

col_ptr(i+1)-col_ptr(i) = πόσα στοιχεία έχει η i στήλη


3-1 = 2
4-3 = 1
5-4 = 1

row_idx δείχνει το που βρίσκονται


(1 2 2 3)
Πρώτη στήλη
(3) Στην πρώτη γραμμή έχω
(4) Στην δεύτερη γραμμή έχω
Τέλος με την πρώτη στήλη εφόσον έχει 2 στοιχεία
Δεύτερη στήλη
(2) Στην δεύτερη γραμμή
Τέλος με την δεύτερη στήλη εφόσον έχει 1 στοιχείο
Τρίτη στήλη
(3) Στην τρίτη γραμμή
Τέλος με την τρίτη στήλη εφόσον έχει 1 στοιχείο

Μετά, με την σειρά, εξαντλώ τα στοιχεία του a

4) Τα επόμενα διανύσματα περιγράφουν ένα 3χ3(3x3) μητρωο Α σε μορφή CSC

Απάντηση
Α(1,3)=5, Α(3,2)=0, Α(2,1)=0.
Α= 3 0 5
0 3 0
0 0 3

5)

A(1,2)=2 A(3,3)=2 A(4,1)=0 A(2,4)=0


A= 1 2 0 0
0 9 0 0
0 0 2 0
0 0 0 3

6)

A= 6 0 0 0
0 6 0 0
0 9 4 0
0 0 5 2

7)
A(2,2)=4 A(4,3)=0 A(3,4)=0 A(1,1)=1
A= 1 9 0 0
0 4 9 0
0 0 3 0
0 0 0 6
8)
A= 3 0 5 0
3 3 0 0
0 9 3 0
0 0 0 1

9)
A(2,3)=0 A(1,2)=0 A(4,4)=1 A(3,1)=0
A= 10 0 0 0
3 3 0 0
0 0 4 0
0 0 2 1
10)

A(2,3)=8 A(1,3)=0 A(2,4)=0 A(4,1)=9


A= 2 0 0 0
0 6 8 0
0 0 1 2
9 0 0 6

11)

A= 1 0 0 0
0 10 0 0
7 0 2 0
0 2 0 1
12)

A(3,4)=0 A(2,2)=9 A(1,3)=0 A(4,1)=9


A= 1 0 0 9
0 9 0 0
0 0 4 0
0 0 7 3
13)

A(1,2)=2 A(3,3)=2 A(4,1)=0 A(2,4)=0


A= 1 2 0 0
0 9 0 0
0 0 2 0
0 0 0 3

14)
A= 1 9 0 0
0 4 9 0
0 0 3 0
0 0 0 6

15)
A= 5 0 0 0
0 1 0 8
0 0 1 0
9 0 7 1
HADAMARD KRONECKER/ ΚΡΟΝΕΚΕΡ ΧΑΝΤΑΜΑΡΝΤ
11) Αντιστοίχηση

Απάντηση
1.A,
2.A,
3. B

4.B (Είναι 32χ32) //εδω γιατι ειναι 32x32; εγω το βγαζω 128x128 αν εχω καταλαβει σωστα
Για n εξωτερικά γινόμενα έχουμε 2^(n+1) την τελικη διάσταση, αρα τώρα είναι 4 και βγαίνει 2^5x2^5
5.Α
(3*3 x 3*1) * (3*1 x 3*3) -> 9x3 * 3x9 -> 9x9

12) Είναι υποσύνολο των στοιχείων του γινομένου Kronecker

Απάντηση
Σωστο (Γινόμενο Hadamard είναι σημαντικό υπομητρώο του Κρόνεκερ)

13) Αν τα μητρώα Α, Β είναι τριδιαγώνια, τότε το γινόμενο Κρονεκερ Α Β είναι:

Απάντηση
Μπλοκ τριδιαγώνιο γιατί κάθε στοιχείο του Α πολλαπλασιάζεται με το Β οπότε όπου το Α έχει άσσο
εκεί υπάρχει ένα τριδιαγώνιο block, και όπου έχει 0 εκεί υπάρχει ένα μηδενικό block
14) Αν τα μητρώα Α, Β είναι τριδιαγώνια, τότε το γινόμενο Hadamard Α Β είναι:

Απάντηση
Τριδιαγώνιο, τα στοιχεία σε κάθε θέση του Α πολλαπλασιάζονται με τα στοιχεία στην αντίστοιχη θέση
στο Β οπότε όπου το Α και Β έχει 0 (δηλαδή εκτός των τριων διαγωνίων) εκεί θα έχει 0 και το
αποτέλεσμα

15) Να συμπληρώσετε τα ζητούμενα στοιχεία του γινομένου Kronecker

Απάντηση

Για να βρούμε τα block του C βασιζόμαστε στο εξης


KRYLOV
1) Οι μέθοδοι Krylov για την επίλυση γραμμικού συστήματος στοχεύουν:

Απάντηση

Το δεύτερο, όπου Vm επιλεγμένη ΟΚ βάση του


υπόχωρου Krylov

στην προσέγγιση της λύσης μέσω γραμμικού συνδυασμού διανυσμάτων διανυσματικού χώρου για κάποιο
διάνυσμα r και για κάποιο μικρό φυσικό αριθμό k.
MATLAB
1) α.κ.υ.
Έστω ότι στη MATLAB εκτελείτε τις εντολές:
s=0;
h=1/10;
for i=1:10
s=s+h;
end
Ποιο από τα παρακάτω επιστρέφει logical 1 στο τέλος της διαδικασίας;
s==1.0
s==1
s~=1
s-1/10==h

Απάντηση
Το 3ο γιατί υπάρχει σφάλμα στις πράξεις με α.κ.υ οπότε δεν θα φτάσει ποτέ το s το 1.

2) Εκτελούμε τις επόμενες εντολές σε MATLAB


B = [[kron([1,2,3],ones(n-3,1)); zeros(3)]];
C = [10*eye(n-3); [zeros(3,n-6),diag(1:3)]];
A = [B,C];
u = A*ones(n,1)
Επιλέξτε την εντολή που θα επιστρέψει το ίδιο αποτέλεσμα για n=8
t=
u= [(1:n-3); 1; 2; 3;]
u= [ones(n-3)+10; kron(3,[1;2;3])]
u= [ones(n-3).*(1;n-3); [0;1;2]]

Απάντηση
Το πρωτο
3) Να επιλέξετε ποια από τις επόμενες εντολές MATLAB υπολογίζει ορθά και με τον πιο αποδοτικό τρόπο το
στοιχείο t = Ti,j όπου Τ = AvvT, για αραιό μητρώο A διαστάσεων n x n και στήλες u,v διάστασης n.

Απάντηση
Το δεύτερο, Υπολογίζουμε το u=A*u ολόκληρο καθώς ο Α είναι Αραιός άρα δεν κοστίζει πολύ και στην
συνέχεια πολλαπλασιάζουμε την στήλη i του u με την στήλη j του v για να προκύψει ο βαθμωτός Tij

4) Αν ο θετικός ακέραιος m>10 και


A=kron(eye(m),toeplitz(ones(1,3)))
τότε να επιλέξετε τι θα επιστρέψει η εντολή
max(A*ones(length(A),1)).

Απάντηση
3 είναι η σωστή απάντηση. Το A*ones(length(A),1) είναι ένα διάνυσμα μήκους 3m με όλα του τα
στοιχεία να είναι 3. Κατ επέκταση το μεγαλύτερο του στοιχείο είναι το 3 και άρα αυτό επιστρέφει η
max.

max(A*ones(length(A),1))

5) Επιλέξτε την εντολή MATLAB που κατασκευάζει το μητρώο όπου Α,Β και E είναι m x m μητρώα και Z είναι
το μητρώο που κατασκευάζεται από την εντολή zeros(m).

C=kron(eye(3),A) + kron(toeplitz([0 0 1]), B)


C=[A,B,zeros(m); B, A, B; zeros(m),A ]
C=kron(eye(3),A)+kron(triu(toeplitz[0 0 1])),E) +kron(tril(toeplitz[0 0 1]))),B)
κανένα από τα παραπάνω
Απάντηση
Τρίτο

6) Έστω ότι δίνεται ένας d-mode τανυστής με διαστάσεις αποθηκευμένες στο διάνυσμα n.
Χρησιμοποιώντας ορολογία MATLAB, τότε d=length(n). Να επιλέξετε ποιός από τους παρακάτω
τύπους υπολογίζει σωστά το συνολικό πλήθος ινών του τανυστή.
sum(length(n))
`
prod(n)/f
sum(prod(n)/sum(n))

Απάντηση
το 2ο γιατι
n1*n2*n3+n1*n2*n4+n1*n3*n4+n2*n3*n4=
n1*n2*n3*n4/n4+n1*n2*n3*n4/n3+n1*n2*n3*n4/n2+n1*n2*n3*n4/n1=
n1*n2*n3*n4*(1/n1+1/n2+1/n3+1/n4)

7) Έστω μητρώο για το οποίο γνωρίζουμε ότι κάθε μη μηδενικό του στοιχείο ικανοποιεί τη σχέση για .
Έστω ότι εκτελούνται οι ακόλουθες εντολές MATLAB για το X:
w = zeros(n,1); z = sum(X,2);
w(1) = z(1)/X(1,1);
for k=2:n
w(k)=(z(k)-X(k,1:k-1)*w(1:k-1))/X(k,k)
end
Απάντηση
z=sum(X,2)= n x 1 διάνυσμα που περιέχει το άθροισμα κάθε γραμμής (κάνουμε iterate ανα στοιχείο του
2ου άξονα)
Χ(i,j) κάτω τριγωνικό
w(1)=1 γιατί z(1)=Χ(1,1)
w(2)=(z(2)-X(2,1)*w(1,1))/Χ(2,2)=(Χ(2,1)+Χ(2,2)-Χ(2,1))/Χ(2,2)=1
….
αρα το τρίτο, το w θα περιέχει μόνο 1

8) ΜΗΔΕΝΙΚΩΝ
Έστω ότι εκτελούνται οι ακόλουθες εντολές Matlab για δεδομένους θετικούς ακέραιους n>1,a,b:
A=diag(ones(n,1))*a+diag(ones(n-1,1),1)*b;
W=kron(ones(2),A);

Απάντηση
Το δεύτερο γιατί A = n x n και W = 2n x 2n
Έχουμε a στην κύρια διαγώνιο (n μη μηδενικά) και b στην +1 διαγώνιο (πρώτη διαγώνιος από πάνω
άρα n-1 μη μηδενικά) οπότε 2n-1 μη μηδενικά στο Α και στο W 4*(2n-1) μη μηδενικά γιατί
πολλαπλασιάζουμε κάθε στοιχείο του W με το μητρώο Α.

9) ΜΗ ΜΗΔΕΝΙΚΩΝ

Απάντηση

Το πρώτο Αιτιολογείται όπως και πάνω αλλά αφαιρούμε τώρα τα μη μηδενικά από το πλήθος των
στοιχείων
(2n)^2 - 4*(2n-1) = 4(n^2-2n+1) = 4((n-1)^2)

10)

Απάντηση

Το 3ο διότι Α: n x n και y: k x 1, από kron() προκύπτει W: n*k x n και έχουμε α στην διαγώνιο του Α
άρα n μη μηδενικά και b στις διαγωνίους εκατέρωθεν της κεντρικής άρα 2*(n-1) μη μηδενικά. Στο y
εχουμε k-1 μη μηδενικά οπότε συνολικά (k-1)*(3*n-2).

,
11)
Απάντηση
Σωστό το 3ο
X άνω τριγωνικό
z = - [x11+...+x1n ; x22+...x2n; ….; xn-1n-1+xn-1n; xnn]
w(n) = (-X(n,n) - X(n,n+1:n)*w(n,n+1:n)/X(n,n) = -1
w(n-1) = (-X(n-1,n-1)-X(n-1,n) - X(n-1,n)*[-1])/X(n-1,n-1) = -1

X=triu(reshape(rand(1,16),4,4))
c
z=-sum(X,2)
for k=4:-1:1 w(k)=(z(k)-X(k,k+1:4)*w(k+1:4))/X(k,k); end

12)

Απάντηση
Σωστό το 2ο

13)

Απάντηση
Σωστό το τέταρτο
γιατί εχουμε μη μηδενικά: a: n + 2 (διαγώνιος), b: 2(n + 1) (υπερδιαγώνιος και υποδιαγώνιος) και k άρα
συνολικά k*(n+2+2n+2) = (3n+4)*k=3((n+2)-2)*k
14)

Απάντηση

Η σωστή απάντηση είναι η 3

15)

Απάντηση η μονη που επαληθεύεται ειναι η πρωτη

16)

Απάντηση

Σωστό γιατί όταν η z(i) διαβάσει τα x(i-1) και x(i) και στις δύο περιπτώσεις θα έχουν γραφεί οι ίδιες
τιμές
x=[1:4]
for i=2:n, x(i)=x(i-1)+y(i); end; for i=2:n, z(i)=x(i-1)+x(i); end
x=[1:4]
for i=2:n, x(i)=x(i-1)+y(i); z(i)=x(i-1)+x(i); end
17)

Απάντηση
Λάθος γιατι το z(i) διαβάζει και το x(i+1) το οποίο στην πρώτη περίπτωση δεν έχει γραφεί ακόμα ενώ
στην δεύτερη έχει γραφεί

18)

Απάντηση
Η σωστή είναι η πρώτη.

while (1+a/2) ~=1, a=a/2; end


a == eps()

19)

Απάντηση
Σωστή απάντηση η δεύτερη. u = eps/2.
w ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ
ΔΙΑΚΡΙΤΟΠΟΙΗΣΗ

1)

Απάντηση

Το 1o .Αναλυτική απάντηση πιο κάτω


που είναι η απάντηση?

2)

Απ: 1
Computer Analysis, Selides 95&98
3)

Απ: 2
Computer Anal, Selides 95&98

4)
5)
Το 1ο.

6)
To 1o.

7)
Σωστό .
8)

9)
10)

11)

To 2ο καθως το ( Ι+hA)^-1 μπορεί να παει απο την αλλη μερια και να γινει συστημα της μορφης Ax=b που
χρειαζεται μια lu και εμπρος και πισω αντικατασταση στα τριγωνικα L και u για να βρει το u(t+h) που ψαχνει.
12)

Το 1ο . Το έχω λύσει.
13)
Σωστό : Αν το n είναι περιττό , θα εκτυπωθεί το \(n^2\).

14)

15)
ΊΔΙΑ ΜΕ ΠΑΡΑΠΑΝΩ ΕΡΏΤΗΣΗ.
16)

17)

18)

19)
ΘΕΩΡΙΑ
1)Έστω μητρώο Α το οποίο είναι αποθηκευμένο ως sparse μητρώο στην Matlab σύμφωνα μ την παρακάτω
αναπαράσταση:

Απάντηση

Σωστή απάντηση το 2 νομίζω. Nαι το 2 το ειχε πει κι στο φροντ.


-gt?
-γιατί το U είναι άνω τριγωνικό με στοιχεία στη διαγώνια τους οδηγους του Α. και γιατι το έτρεξα
κυρίως :Ρ
-Αν μπορείς γράψε τον κωδικα

μια αιτιολόγηση που είχε κάνει: π.χ. για ένα μητρώο 6χ6 θα έχει τη μορφή
(1,1)=κ+1
(2,1)=κ
(2,2)=κ+1
(3,2)=κ
L1*L2*L3…*L6*A=U
A=L6^(-1)*.....*L1(-1)U
Το L θα είναι διδιαγώνιο που στην υποδιαγώνιο θα έχει -κ/(κ+1)
Το U θα έχει μονο τη διαγώνιο του Α.

2)Έστω μητρώο Α το οποίο είναι αποθηκευμένο ως sparse μητρώο στην Matlab σύμφωνα μ την παρακάτω
αναπαράσταση:

Απάντηση

Σωστή απάντηση το 3: Αν πάρουμε το μητρώο A = [ 1 2 0 0; 0 1 2 0; 0 0 3 4; 0 0 0 5] στη Matlab και


εκτελέσουμε LU, προκύπτει πως L = eye(4) και U = A.

3) Αν ο χρόνος εκτέλεσης ενός υπολογιστικού πυρήνα P1 είναι t και ενός άλλου, P2, ο χρόνος εκτέλεσης είναι
περισσότερος, έστω T>t, στο ίδιο σύστημα και κάτω από τις ίδιες συνθήκες χρονομέτρησης:

Απάντηση
Επειδή είμαστε στο ίδιο σύστημα τα Mflops/s είναι το ίδιο και για P1 και για P2. Στον P2 έχουμε
μεγαλύτερο χρόνο ( περισσότερες πράξεις) από τον P1, άρα αφού Mflops είναι ίσα θα πρέπει Ω2 > Ω1.
Αφού μ1 = 𝛷1/𝛺1 και μ2 = 𝛷2/𝛺2, θεωρώ κανένα από τα παραπάνω. Εξαρτάται και από τις πράξεις.
4) Επιλέξτε 1 ή περισσότερα από τα παρακάτω που είναι πλεονεκτήματα αν στην επίλυση του γραμμικού
συστήματος Ax=b γνωρίζουμε ότι το μητρώο A είναι τριδιαγώνιο.

Απάντηση
1ο-> Σωστο και 4ο ?? (νομίζω και 2ο και 4o Σωστό)

5) Η πράξη υπολογισμού των τιμών ενός πολυωνύμου για πολλές τιμές ανεξάρτητης μεταβλητής μπορεί να
διατυπωθεί ως πρόβλημα υπολογιστικής γραμμικής άλγεβρας. Ποιο είναι αυτό?

Απάντηση
A*x = b όπου Α είναι μητρώο (μάλλον Vandermonde), x είναι διάνυσμα (μάλλον με τους συντελεστές)
και b είναι διάνυσμα (μάλλον με τις τιμές ανεξάρτητης μεταβλητής). Άρα σωστή απάντηση είναι η
πρώτη ? ΜV πράξη

6) Το διακριτό μοντέλο αφορά κυρίως:


Απάντηση
Το πρώτο γιατί το δεύτερο είναι το αριθμητικό

7) Αν A=diag([3,3,1,-3]) και b=ones(4,1) και εφαρμόσουμε CG για την επίλυση, τότε σε αριθμητική άπειρης
ακρίβειας, η ακριβής λύση θα υπολογιστεί σε 4 το πολύ επαναλήψεις.

Απάντηση

8)

Απάντηση
Σωστο. Στη ματλαμπ
A=[0 1 1;0 0 -1;0 0 0]
exp(A)
Μπορει να ειναι λαθος, εχουμε συναρτηση μητρωου οποτε πρεπει να κανουμε
expm(A) και βγαινουν αλλα νουμερα. Σύμφωνα με το παρακατω
*αρα ΛΑΘΟΣ η ερώτηση

βαζω και αυτο:

9) Εστω οτι γνωριζετε τη διάσπαση SVD του Α= UΣV^T


Απάντηση

10) Το κυρίαρχο κόστος στην επίλυση τετραγωνικού γραμμικού συστήματος Ax= b με τη μέθοδο των συζυγών
κλίσεων όταν η μέθοδος συγκλίνει προέρχεται από:

Απάντηση
Η σωστή απάντηση είναι η δεύτερη, διότι στη μέθοδο των συζυγών κλίσεων το κυρίαρχο κόστος στην
επίλυση τετραγωνικού γραμμικού συστήματος Ax = b προέρχεται από λύση της μορφής:

δηλαδή επαναληπτικούς πολλαπλασιασμούς του A με διανύσματα.

11) Ο αλγόριθμος Strassen πολλαπλασιασμού μητρώων με αριθμούς κινητής υποδιαστολής


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

Απάντηση
Θεωρώ λάθος, γιατί ο αλγόριθμος Strassen εφαρμόζεται όταν 1) μητρώα είναι πολύ μεγάλα 2) για
μερικά βήματα μέχρι ότου η διάσταση των υπομητρώων να γίνει αρκετά μικρή 3) να συμφέρει η κλήση
σε αλγορίθμους Βlas 3. Εδώ δεν έχουμε κάποια πληροφορία για τη διάσταση του μητρώου. δλδ αν
είναι μικρό δεν υπάρχει τέτοιος λόγος για εφαρμογή του αλγορίθμου.

Λέει οτι ο κλασσικος αλγοριθμος ειναι BLAS-3 με 8 πολλαπλασιασμούς και 4 αθροίσματα υπομητρώων και
οτι ο Strassen έχει 7 πολλαπλασιασμούς και 18 προσθέσεις σε ένα παράδειγμα.(CA σελ.94). Άρα λάθος
ΜΙΓΑΔΙΚΑ ΜΗΤΡΩΑ
1) Ποιο από τα παρακάτω επιστρέφει τους πραγματικούς αριθμούς που είναι τα πραγματικά και
φανταστικά μέρη των στοιχείων του C= AB;

Απάντηση
Το 4ο . Σπαμε ουσιαστικα το πραγματικο και το φανταστικο μέρος καθε πινακα και τοποθετούμε με
τον εξής τρόπο Re=πραγματικο μέρος Im= φανταστικό
Για τον πίνακα Α θέλουμε
Γραμμη 1η Re(A(1,1)) Re(A(1,2)) -ImA(1,1)) -ImA(1,2))
Γραμμη 2η Re(A(2,1)) Re(A(2,2)) -ImA(2,1)) -ImA(2,2))
Γραμμη 3η Im(A(1,1)) Im(A(1,2)) Re(A(1,1)) Re(A(1,2))
Γραμμη 4η Im(A(2,1)) Im(A(2,2)) Re(A(2,1)) Re(A(2,2))

Ενώ για τον Β


Γραμμη 1η Re(Β(1,1)) Re(Β(1,2))
Γραμμη 2η Re(Β(2,1)) Re(Β(2,2))
Γραμμη 3η Im(Β(1,1)) Im(Β(1,2))
Γραμμη 4η Im(Β(2,1)) Im(Β(2,2))

2) Για να υπολογιστεί το γινόμενο δύο μιγαδικών μητρώων X=A+iB και Y=C+iD όπου A,B,C,D πραγματικά
τετραγωνικά μητρώα, απαιτούνται τουλάχιστον 4 πολλαπλασιασμοί και κάποιες προσθέσεις μεταξύ των όρων
A,B,C.
Απάντηση

Σωστό.
ΠΟΛΥΠΛΟΚΟΤΗΤΑ

1) Να επιλέξετε ποια από τις επόμενες εντολές MATLAB υπολογίζει ορθά και με τον πιο αποδοτικό τρόπο το
στοιχείο για αραιό μητρώο A διαστάσεων

Απάντηση:
Το 2ο.

2)

Να επιλέξετε ποιά ή ποιές από τις παρακάτω απλοποιήσεις δεν γίνονται στο βασικό μοντέλο Ω,Φ.

Απάντηση
Το 3ο
και το 2ο

3) Έστω ένα τετραγωνικό μητρώο


Απάντηση
Σωστό

4) Το γινόμενο πυκνού μητρώου με διάνυσμα παρότι έχει μικρότερο πλήθος αριθμητικών πράξεων

Απάντηση
Λαθος

Γιατί Φ1=n^2+n και Φ2=2n^2


και Ω1=2n^2-n και Ω2=2n^3-n^2

5) Ο ελάχιστος συνολικός αριθμός αριθμητικών πράξεων για τον υπολογισμό των στοιχείων του
B = AAT
Απάντηση

Σωστό το 3
Νομίζω το 1: https://stackoverflow.com/questions/8546756/matrix-multiplication-algorithm-time-
complexity#:~:text=The%20standard%20way%20of%20multiplying,be%20able%20to%20do%20better.

ΣΦΑΛΜΑ / EPS
1) Αν γνωρίζουμε το ακριβές σφάλμα e που προκύπτει σε μία άθροιση δύο αριθμών κινητής
υποδιαστολής a, b και υποθέσουμε ότι e είναι επίσης α.κ.υ., μία από τις τιμές

Απάντηση
Σωστό
ΤΑΝΥΣΤΕΣ
1)

Απάντηση
Το 2ο

3)

Απάντηση
Το 2ο

4)
Απάντηση
Το 1ο

το : στην τριτη διασταση σου δειχνει οτι θα παρεις στοιχεια και απο τις 2 διαστασεις του τανυστη.

οποτε απο το (2,1) καταλαβαινεις οτι θες δευτερη σειρα πρωτη στηλη

το πρωτο μητρωο του τανυστη εκει έχει το 2 και το δευτερο μητρωο του τανυστη παλι το 2

5)
Απάντηση
Το 1ο και το 5ο(76)

υπαρχει μια σχετικη ερωτηση πως υπολογιζουμε τις ινες στην matlab και η απαντηση ειναι prod(n)*sum(1./n)

αρα στο παραδειγμα σου θα ηταν ( 4 x 3 x 2 x 2)* (1/4 + 1/3 + 1/2 + 1/2) =76.

6)
Απάντηση

Λάθος….είναι τάξης 3
Διόρθωση! Ο βαθμός του είναι 3, η τάξη του επειδη τα Τ(:,:,1) και Τ(:,:,2) είναι εξαρτημένα μεταξύ τους
είναι 1

7)

Απάντηση
Ίνες (3x2x4)(⅓+½+¼ )=26
Φέτες 3+2+4=9
8)
9)

ΣΩΣΤΟ ΤΟ 2ο

10)

11)
60
είναι το σωστό.

12)

Κανένα

13)

(Το δοκίμασα για m=3 στην MATLAB και εκτύπωσε 27, οπότε υποθέτω είναι το 2ο)

14)
To 1o
****ΕΙΝΑΙ ΤΟ ΠΡΩΤΟ ΕΠΕΙΔΗ ΛΕΕΙ mode 2 ! ****
(ΕΑΝ ΕΛΕΓΕ mode 1 σωστη επιλογη θα ηταν το 3ο!) Αν ήταν Mode 3 εννοεί όποιος το έγραψε,
αν ήταν Mode-1 θα έκανε τις στήλες των υπομητρώων , στήλες του Α στο ξεδίπλωμα του Τ.

mode 3 [ 1 1 1
-1 -1 -1 και οθ το καθε εξης
15)το 3
ειναι η 3η διασταση

αρα θα πασ στο 3 μητρωο να κοιταξεις

και σου λεει (:,1) --> θελω ολες τι γραμμεσ απο την 1 στηλη

αρα την πρωτη στηλη

οποτε ειναι το 2 4
16)
To 2o
17)

To 3o
18)
Κανένα (είναι 10) , αφού A = [ 1 0 0 0;1 2 0 0;1 1 1 0 ; -1 3 1 1]
19)

Κανένα , θα βγάλει ( 0 0 0 0 ) κάθετα.

20)
To 2o
21)

Κανενα απο τα παραπανω -> 9*3 + 9*3 + 3*3 = 63


22)
To 3o

23)
(Το δοκίμασα για m=2 στην MATLAB και εκτύπωσε 0, οπότε υποθέτω είναι το 1ο)
24)
To 2o

25)
To 2o
26)

To 3o

27)

To 1o
28)
Το 3ο -> (2χ2χ4)(½+½+¼ )

29)

Κανένα (10)
Εχουμε Α(1) οπου το 1 συμβολίζει το mode-1 για το Τ(:,:,1,2) είναι
[1 0 0 0;1 2 0 0;1 1 1 0;-1 3 1 1]( CA σελιδα 168 απο αυτό που εχει 239 αλλιως σελ162 απο αυτο που
εχει συνολικα 213 σελίδες) άρα το αναμενόμενο πλήθος μη-μηδενικών στοιχείων σε αυτό το πίνακα
ειναι 10
30)
To 2o
GΩ/Φmin/

1)
Απάντηση
Έστω n=1200
Φ=n^2+n*1+1*n+n*1= 1200*1200+1200*1+1*1200+1200*1=1200*1200+3*1200=1443600 (το πρώτο)
Ω=n^2+n^2+(p-1)(2n^3-n^2)+n(2n-1)1=1200*1200+1200*1200+(5-1)(2*1200^3-1200^2)+1200(2*1200-
1)*1=2*1200^2+8*1200^3-4*1200^2+2*1200^2-1200=8*1200^3-1200=1382399…(το 2ο)

2)

Απάντηση
Έστω n=1700
Φ=n*1+1*n+n^2+n*1
Ω=n^2+n^2+(p-1)(2n^3-n^2)+n(2n-1)1(όπου p=4)

Ω=το πρωτο, Φ= 2896800 και σωστο ειναι το τριτο απο το τελος

3)
Απάντηση
Έστω n=5
Φ=n^2+n*1+1*n+n*1=25+5+5+5=40
Ω=n^2+n^2+(p-1)(2n^3-n^2)+n(2n-1)1=25+25+4(2*125-25)+5(10-1)=995

Ω το τρίτο Φ το πρώτο και p το πρώτο.

4)
Απάντηση
ΟΠΟΙΟΣ ΓΝΩΡΙΖΕΙ ΑΣ ΠΕΙ ΓΙΑ ΤΟ Ω

Φmin=n(για το d) + n(για το x) +n(για το υ και το υ^τ)


Φmin=3*n=450
t

5)

Απάντηση :
Ω = 1.140800 * 10^3 = 1.140,8 ~= 1200
Φmin = 20 ~= 17

w’(yu’)(yu’)...(yu’)u → w’(yu’)(yu’)...yu’u ((2n-1)+n)*5+ 2n-1=


6)

Απάντηση
Ω = 7.999.900 (το πρώτο)
Φ= 10.300(το τελευταίο)
Αναλυτικά λιγο πιο κάτω

7)

(Α)(Α)...(Χ+ss’)x → Xx+ss’
το Ω δε βγαινει ακριβως για καποιο λογο. (επεξηγηση στην επόμενη σελίδα)
Φ το 1ο
p το τελευταίο.
Απάντηση

8) Το Φmin του εσωτερικού γινομένου δυο πυκνών διανυσμάτων n στοιχείων είναι μικρότερη της αντίστοιχης
τιμης για τον πολλαπλασιασμό δύο πυκνών μητρώων nxn
Απάντηση: Σωστό

9) έστω ότι σας δίνονται δύο διαφορετικές υλοποιήσεις C1 και C2, ενός προγράμματος.

10)

12)
13)
14)

15)

16)
17)A
Απάντηση:
To Ω είναι κοινό αρα 2Ω/(t1+t2)

19) Έστω ότι σας δίνονται δύο διαφορετικές υλοποιήσεις, C1 και C2, ενός προγράμματος. Και οι δύο έχουν το
ίδιο Ω=1.00e+08.
Σ/Λ
ΟΙ ΑΠΑΝΤΗΣΕΙΣ ΣΤΙΣ ΕΙΚΟΝΕΣ ΔΕΝ ΕΙΝΑΙ ΣΙΓΟΥΡΕΣ
1) Αν το τετραγωνικό μητρώο Α είναι με αντιστρέψιμο τότε το μητρώο … μπορεί να είναι αντιστρέψιμο:

Απάντηση: Σωστο
π.χ.
A=[0 1 1;0 0 -1;0 0 0]
C=exp(A)
και τι σημαίνει αυτό? καταρχάς ειναι expm και όχι exp…
Ειναι σωστό γιατι λεει “μπορεί”

2) Έστω ότι σας δίνονται δύο διαφορετικές υλοποιήσεις, C1 και C2, ενός προγράμματος. Και οι δύο έχουν
το ίδιο Ω=3.00e+08.

Απάντηση:

3) Αν το μητρώο Q είναι ορθογώνιο 5x5, D=diag([1,1,1,-1,2]) και b=ones(5,1), θέσουμε


Απάντηση:Λαθος
Οι προϋποθέσεις μας είναι:
1.A να είναι ΣΘΟ
2.Οι επαναλήψεις μας να είναι τόσες όσο και το μέγεθος του b
π.χ.
Q=rand(5,5)
D=diag([1,1,1,-1,2])
A=Q'*D*Q
και το Α βγάζει μη ΣΘΟ

4) Αν το I είναι ταυτοτικό μητρώο και το Α είναι τριδιαγώνιο τότε το μητρώο kron(I,A) είναι τριδιαγώνιο.

Απάντηση: Σωστο
π.χ.
A=rand(4)
B = triu(tril(A,1),-1)
I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]
kron(I,B)

5) Δίνονται τα μητρώα Α, Β, τότε τα στοιχεία του γινομένου Kronecker

Απάντηση:
Λάθος, διότι ισχύει το αντίστροφο, το γινόμενο Hadamard είναι υποπερίπτωση (υποσύνολο) του γινομένου
Kronecker
6) Αν τα μητρώα Α,Β είναι nxn και κάτω τριγωνικά, τότε το γινόμενο Hadamard A επί Β είναι τριδιαγώνιο

Απάντηση:
Λάθος

7) Το Φ του εσωτερικού γινομένου δυο πυκνών διανυσμάτων n στοιχείων είναι μικρότερο της αντίστοιχης τιμής
του πολλαπλασιασμό δύο πυκνών μητρώων nxn.
Απάντηση: Σωστό
Φ1=2n
Φ2=2n^2

8) Αν το μητρώο Q είναι ορθογώνιο 5χ5, D=diag ([1,10,1000,100000,0.1]) και b=ones(5,1), θέσουμε A = Q^T
DQ και εφαρμόσουμε CG για την ακριβή επίλυση του Ax=b, τότε σε αριθμητική άπειρης ακρίβειας, η ακριβής
λύση θα υπολογιστεί σε 5 το πολύ επαναλήψεις.

Απάντηση: Λαθος
Οι προϋποθέσεις μας είναι:
1.A να είναι ΣΘΟ
2.Οι επαναλήψεις μας να είναι τόσες όσο και το μέγεθος του b

Αν το Q έχει αρνητικα τότε ειναι Λαθος σίγουρα. Στην περίπτωση μας δεν διευκρινίζεται.

π.χ.
Q=rand(5,5) -½
D=diag([1,10,1000,100000,0.1])
A=Q'*D*Q
που δεν είναι ΣΘΟ...

9) Αν το μητρώο Q είναι ορθογώνιο 5χ5, D=diag ([1,1,1,1,1.2]) και b=ones(5,1), θέσουμε A = Q^T DQ και
εφαρμόσουμε CG για την ακριβή επίλυση του Ax=b, τότε σε αριθμητική άπειρης ακρίβειας, η ακριβής λύση θα
υπολογιστεί σε 5 το πολύ επαναλήψεις.

Απάντηση: ΣΩΣΤΟ
Οι προϋποθέσεις μας είναι:
1.A να είναι ΣΘΟ
2.Οι επαναλήψεις μας να είναι τόσες όσο και το μέγεθος του b

Αν το Q έχει αρνητικα τότε ειναι Λαθος σίγουρα. Στην περίπτωση μας δεν διευκρινίζεται.

10) Αν το μητρώο Q είναι ορθογώνιο 5x5, D…. και b=ones(5,1) θέσουμε Α… και εφαρμόσουμε CG για την
επίλυση του Ax=b, τότε σε αριθμητική άπειρης ακρίβειας, η ακριβής λύση θα υπολογιστεί σε 5 το πολύ
επαναλήψεις.

Απάντηση: Σωστό
Οι προϋποθέσεις μας είναι:
1.A να είναι ΣΘΟ
2.Οι επαναλήψεις μας να είναι τόσες όσο και το μέγεθος του b

π.χ.
Q=rand(5,5)
D=diag([1,0,1,1,1])
A=Q'*D*Q

11) Αν το μητρώα Α,Β είναι κάτω τριγωνικά, τότε το γινόμενο Lrpnecker Α επι B είναι και κάτω τριγωνικό
Απάντηση:Σωστό

π.χ.
A=rand(4,4);
A=tril(A);
B=rand(4,4);
B=tril(B);
C=kron(A,B);

12) Στον αλγόριθμο Winograd επιτυγχάνεται περαιτέρω μείωση του συντελεστή α.;

Απάντηση
Λάθος, διότι o Winograd πέτυχε βελτίωση στο συντελεστή των προσθέσεων, δηλ. στο συντελεστή γ
και όχι στον α

13) Ο αλγόριθμος μπλοκ-LU έχει ως στόχο τη μείωση του πλήθους αριθμητικών πράξεων σε σχέση με τον
κλασικό αλγόριθμο LU.

Απάντηση

Λάθος? (Διότι ο αριθμός πράξεων μένει ο ίδιος απλά αλλάζει η τοπικότητα)

Χρησιμοποιώντας blocking (πλοκαδοποίηση) για την καλύτερη υλοποίηση του πολλαπλασιασμού


μητρώων , μπορούμε να πετύχουμε μείωση του αριθμού των μεταφορών Φ, όπου Κ είναι η
χωρητικότητα της κρυφής μνήμης.

14) Η μέθοδος συζυγών κλάσεων (Conjugate Gradient) για την επίλυση ενός συστήματος Ax=b όπου
Α είναι τετραγωνικό και συμμετρικό, συγκλίνει εφόσον η μικρότερη ιδιοτιμή του δεν είναι 0.

Απάντηση:Λάθος
Διότι για τη σύγκλιση της μεθόδου των συζυγών κλίσεων απαιτείται το μητρώο των συντελεστών των
αγνώστων να είναι ΣΘΟ. Για να συμβαίνει αυτό πρέπει το μητρώο να είναι συμμετρικό και θετικά ορισμένο. Για
να είναι θετικά ορισμένο, πρέπει όλες οι ιδιοτιμές του να είναι θετικές. Η διατύπωση ότι μικρότερη ιδιοτιμή του
δεν είναι «0», δεν εξασφαλίζει κάτι τέτοιο, διότι μπορεί να είναι και αρνητική. Όμως τότε το μητρώο Α δεν θα
είναι θετικά ορισμένο. Αν έλεγε ότι η μικρότερη ιδιοτιμή είναι θετική, θα ήταν τότε όλες θετικές και η πρόταση
θα ήταν σωστή.

15) Αν το μητρώο Q είναι ορθογώνιο 5x5

Απάντηση: Σωστο
Οι προϋποθέσεις μας είναι:
1.A να είναι ΣΘΟ
2.Οι επαναλήψεις μας να είναι τόσες όσο και το μέγεθος του b

π.χ.
Θέματα Ιουνίου 2021

1.
Το 2ο ειναι Λαθος γιατι ειναι 2χ10,2χ10. Το 3ο είναι λάθος διότι δεν ισχύει η
αντιμεταθετικότητα. Γενικά για να δούμε ότι ένα μητρώο είναι ορθογώνιο θα
πρέπει στη matlab κάνει Α*Α’=Ι
Άρα το 1.

2.

Απάντηση: κανένα από τα υπόλοιπα.

3.
Απάντηση: 1ο ανήκει στην κατηγορία BLAS-3

4.
Απάντηση: C(6,2) = -2, C(6,3)=0, C(4,5)=0, C(1,2)=0, C(2,4)=-2
5.
ΑΠΑΝΤΗΣΗ : 2

Απάντηση: Σωστό

A είναι τριδιαγώνιο και ΑΔΚ κατα σειρές. Η παραγοντοποίηση lu δίνει ένα άνω
τριγωνικο U και ένα κάτω τριγωνικό p^T*L. Που ο Γαλλό το ονομάζει ψυχολογικά κάτω
τριγωνικό.

You might also like