Επιστημονικός Υπολογισμός — Ιανουάριος 2025 — Εργαστήριο (MATLAB)¶
Μεταγραφή από τα αρχεία: themata-winter2025.pdf.
themata-winter2025.pdf¶
Ερώτηση 1¶
Δίνονται οι παρακάτω εντολές αρχικοποίησης τιμών και μητρώου Β καθώς και ένας τύπος υπολογισμού δύναμης του μητρώου που βασίζεται αποκλειστικά στη συνάρτηση mtimes (Τελεστής *) Και όχι στην mpower (Τελεστής ^).
-
1) Συμπλήρωσε το πλαίσιο με κώδικα matlab για εναλλακτικό υπολογισμό του Β^p που χρησιμοποιεί mtimes, αλλά είναι πολύ αποδοτικότερο σε πράξεις και μνήμη από τον παραπάνω υπολογισμό. Προσοχή: δεν επιτρέπεται η χρήση του τελεστή «^», ούτε υπερταχέων μεθόδων, ούτε ζητάμε να γράψετε υλοποίηση του πολλαπλασιασμού μητρώου με εμφωλευμένους βρόχους τύπου ijk
-
2) Να υπολογίσετε όσο ακριβέστερα μπορείτε την τιμή του Ω που αντιστοιχεί στην αποδοτικότερη μέθοδο. Υπενθύμιση: Η mtimes δεν χρησιμοποιεί υπερταχείες μεθόδους.
A = rand(350); B = kron(eye(2),A); p=26; %
B_rec = B; for j = 1 : p – 1, B_rec = mtimes(B, B_rec); end; % προφανής υπολογισμός
Ερώτηση 2¶
Κάτω από την επικεφαλίδα οι 3 γραμμές του πίνακα περιέχουν τις τιμές, τον αριθμό στήλης και τον δείκτη γραμμής της CSR ενός A є 𝑅7𝑥7 . Inf = κενό.
| 21 | 15 | 5 | 38 | 2 | 35 | 32 | 2 | 29 | 2 | 2 | 5 | 15 | 16 | 29 | 30 | 5 | 35 | 41 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 5 | 7 | 2 | 4 | 7 | 3 | 4 | 6 | 2 | 3 | 4 | 1 | 5 | 3 | 6 | 1 | 2 | 7 |
| 1 | 4 | 7 | 10 | 13 | 15 | 17 | 20 | inf | inf | inf | inf | inf | inf | inf | inf | inf | inf | inf |
(Συμμετρικό θετικά ορισμένο sparce στη matlab.)
[Σχήμα: χειρόγραφο γράφημα με 7 κόμβους, αριθμημένους 1 έως 7, μέσα σε πλαίσιο· δεν σχεδιάζονται ακμές.]
-
1) Συμπλήρωσε το παρακάτω γράφημα με μη κατευθυνόμενες ακμές, χωρίς αυτοβρόχους. ώστε να είναι το γράφημα του μητρώου.
-
2) Έστω ότι καλούμε A = chol(A). Να συμπληρώσετε τον πίνακα με τις θέσεις γραμμών i και στηλών j, στις οποίες προβλέπεται ότι θα υπάρξει fill-in λόγω της παραπάνω κλήσης. Προσοχή: μόνο τα νέα μη μηδενικά στοιχεία στο άνω τριγωνικό R. H σειρά απαρίθμησης θα πρέπει να είναι row major με από τα αριστερά προς τα δεξιά. Υπόδειξη: μην κάνετε την αριθμητική παραγοντοποίηση Cholesky. Tροποποιήστε το γράφημα με την προσθήκη των νέων ακμών με διαφορετική διαγράμμιση που δείχνουν το fill-in της παραγοντοποίησης. Cholesky.
-
3) Αν στη συνέχεια δοθεί η εντολή p = symrcm(A), επιστρέφεται το διάνυσμα p = ( 5 1 7 2 4 3 6). Να συμπληρώσετε τις τιμές του μητρώου A(q, p).
-
4) Για τα συγκεκριμένα A, p να υπολογίσετε την τιμή της κατανομής (profile) του A(p, p).
Ερώτηση 3¶
Δίνονται το διάνυσμα και τα μητρώα \(l=\begin{pmatrix}-2\\-1\end{pmatrix}\), \(U=\begin{pmatrix}0 & 1\\2 & 3\end{pmatrix}\), \(V=\begin{pmatrix}4 & 3\\-4 & -5\\-2 & -3\end{pmatrix}\), \(W=\begin{pmatrix}0 & 2\\3 & 5\\0 & 2\end{pmatrix}\). Αυτά τα χρησιμοποιούμε για να ορίσουμε την αναπαράσταση Kruskal.
Υπολογίστε το \(T_{2,:,:}\).
Ερώτηση 4 + Ερώτηση 5¶
Σ/Λ + αιτιολόγηση σε 3 από τα ερωτήματα
-
1) Κανένα
-
2) Όλα
-
3) Αν στο κλασικό σημείων για μια άγνωστη συνάρτηση U(x), ο συντελεστής του όρου ux δεν είναι μηδενικός, τότε το μητρώο που προκύπτει από την κλασική διακριτοποίηση με κεντρισμένες πεπερασμένες διαφορές αποκλείεται να είναι συμμετρικό.
-
4) Αν T = Toeplitz([1:4], [1:2:2*4]); S = T(end: -1:1,:);, τότε S θα είναι μητρώο Hankel.
-
5) Δοθέντος ΣΘΟ A є 𝑅𝑛𝑥𝑛 όπου n το μητρώο μπορεί να είναι πολύ μεγάλο. Προτιμότερος τρόπος να προσεγγίσουμε το 𝑒−𝐴 𝑒1 με εντολές matlab είναι να προσεγγίσουμε το μητρώο Β = 𝑒−𝐴 μέσω της expm και να επιλέξουμε την πρώτη στήλη του μητρώου.
-
6) Αν A = rand(100) και x = rand(100, 1) τότε το μητρώο u = [x, 𝐴𝑥, 𝐴2 𝑥, … , 𝐴𝑛−1 𝑥 ] αναμένεται να έχει κακό δείκτη κατάστασης.
-
7) Αν n>1 το ταυτοτικό μητρώο u,v ε 𝑅𝑛 , τότε 𝑢𝑇 (𝐼+ 𝑢𝑣𝑇 )9 𝑢 μπορεί να υπολογιστεί σε O(n) πράξεις.
-
Σε ξεχωριστό θέμα αιτιολόγηση για τρία από τα παραπάνω (περιεκτικά)
Ερώτηση 6
n = 40; U = rand(n, 3); V = rand(n,3); A = eye(n) + U*V’ ; y = rand(n,1); b = A * ones(n,1);
Παρατηρούμε ότι κάθε φορά που καλείται gmres(A,b) η matlab επιστρέφει
«gmeres converges at iteration 4 to a solution with relative residual XXXX» (ΧΧΧΧ=αριθμός τάξης έψιλον μηχανής).
Να αποδείξετε γιατί ο αριθμός επαναλήψεων θα είναι πάντα (το πολύ) 4.