Μετάβαση στο περιεχόμενο

Επιστημονικός Υπολογισμός — Ιανουάριος 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=[\![l;U,V,W]\!]=\sum_i l_i;\ w_i\circ u_i\circ w_i\]

Υπολογίστε το \(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.


✖ Βρήκα λάθος στη μεταγραφή