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

Σχετικά έγγραφα
Μαρία Λουκά. Εργαστήριο Matlab. Αριθμητικός υπολογισμός ιδιοτιμών και ιδιοδιανυσμάτων. Τμήμα Πληροφορικής και Τηλεπικοινωνιών.

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

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

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

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

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

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

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72

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

Γραφικά περιβάλλοντα από τον χρήστη Graphical User Interfaces (GUI)

Επαναληπτικές μέθοδοι για την επίλυση γραμμικών συστημάτων. Μιχάλης Δρακόπουλος

Εργαστήριο Γραμμικής Άλγεβρας. H Matlab ως γλώσσα προγραμματισμού

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

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

ιδάσκοντες :Τµήµα Α ( Αρτιοι) : Καθηγητής Ν. Μισυρλής,Τµήµα Β (Περιττοί) : Αριθµητική Επίκ.

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εργαστήριο 2 - Απαντήσεις. Επίλυση Γραμμικών Συστημάτων

Εισαγωγικές σημειώσεις στο Matlab

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 9 ο Εργαστήριο. Απαλοιφή Gauss με μερική οδήγηση - Παρεμβολη

Εισαγωγή στα Σήματα. Κυριακίδης Ιωάννης 2011

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 6)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 5)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 5: Πίνακες [1/2] (Διανύσματα)

Εισαγωγή στο Matlab (μέρος β) Κολοβού Αθανασία, ΕΔΙΠ,

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

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

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΤΟΥ MATLAB

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

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

ΔΙΔΑΚΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ. Βασικά στοιχεία για τη χρήση του MATLAB & Εφαρμογή σε προβλήματα κατασκευών

Χρονικές σειρές 8 o μάθημα: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΗ MATLAB (2)

Δομημένος Προγραμματισμός

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 1

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 3)

Εισαγωγή στον Προγραμματισμό με C++

Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Έξοδος Matlab: Έξοδος Matlab:

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

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

Ψηφιακή Επεξεργασία Σήματος

Τετραγωνικά μοντέλα. Τετραγωνικό μοντέλο συνάρτησης. Παράδειγμα τετραγωνικού μοντέλου #1. Παράδειγμα τετραγωνικού μοντέλου #1

Το πρόβλημα. Έχουμε έναν κύκλο με μοναδιαία ακτίνα. Η εξίσωσή του θα είναι:

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

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Τετραγωνικά μοντέλα. Τετραγωνικό μοντέλο συνάρτησης. Παράδειγμα τετραγωνικού μοντέλου #1. Παράδειγμα τετραγωνικού μοντέλου #1

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ηµιουργία αρχείου στον matlab editor Πληκτρολόγηση ακολουθίας εντολών


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

Προγραμματισμός I (Θ)

ΠΡΟΣΟΜΟΙΩΣΗ ΦΥΣΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ - MATLAB

4. Εισαγωγή στο Matlab

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

Λογικά Διανύσματα. >>x = -3/2*pi : pi/100 : 3/2*pi; >>y = tan(x); >>plot(x, y)

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Ιδιοτιμές & Ιδιοδιανύσματα Επαναληπτικές Μέθοδοι

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

2.3 Επιπλέον συναρτήσεις για δισδιάστατα γραφικά

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4

Υπολογισμός αθροισμάτων

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Συναρτήσεις - Όρια- Παράγωγοι- Ολοκληρώματα Ακολουθίες-Σειρές

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 14

ΑΣΥΜΜΕΤΡΙΑ Ας υποθέσουμε, ότι κατά την μελέτη της κατανομής δύο μεταβλητών, καταλήγουμε στα παρακάτω ιστογράμματα.

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

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

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

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

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

6 η ΕΝΟΤΗΤΑ Δομές επανάληψης

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

Γενικός τρόπος σύνταξης: Όνομα_συνάρτησης(όρισμα1,όρισμα2,,όρισμαΝ) Η ονομασία τους είναι δεσμευμένη. Παραδείγματος χάριν: sin(x) cos(x) tan(x) exp(x)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Εργαστήριο 1. Βαθμός ΑΜ Εργ1.2 Σχόλια Εργ1.3 Σχόλια (20)

ιαφάνειες παρουσίασης #4

ΜΕΜ251 Αριθμητική Ανάλυση

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΠΑΡΑΡΤΗΜΑ Α Εισαγωγή στο MATLAB

Πληροφορική. Ενότητα 2: Α. Μεταβλητές. Όλα είναι πίνακες. Β. Δεδομένα. Σφάλματα. Δομές. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

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

Προσομοίωση (simulation) στο Matlab

Transcript:

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

Βασικές συναρτήσεις του Matlab diag: Χρησιμοποιείται για τη δημιουργία ενός διαγώνιου πίνακα ή για την λήψη των διαγώνιων στοιχείων ενός πίνακα. D = diag(v) : Επιστρέφει έναν τετραγωνικό διαγώνιο πίνακα με τα στοιχεία του διανύσματος v στην κύρια διαγώνιο. Παράδειγμα: Έστω v = [2 - -2-5]; D = diag(v) = 2 2 5

Βασικές συναρτήσεις του Matlab D = diag(v,k) : Τοποθετεί τα στοιχεία του διανύσματος v στην k διαγώνιο. Με k= συμβολίζουμε τα στοιχεία στην κύρια διαγώνιο Με k> συμβολίζουμε τα στοιχεία πάνω από την κύρια διαγώνιο Με k< συμβολίζουμε τα στοιχεία κάτω από την κύρια διαγώνιο. Παράδειγμα: Έστω v = [2 - -2-5]; D = diag(v,) = 5 2 2

Βασικές συναρτήσεις του Matlab x = diag(a) : επιστρέφει ένα διάνυσμα στήλη με τα στοιχεία της κύριας διαγωνίου του Α. Παράδειγμα: Αν A = Τότε x = diag(a) = 2 5 2 4 6 3 7 5 2 7 3 8 7 2 8 5 6 8 7 8 3 2 6

Βασικές συναρτήσεις του Matlab x = diag(a,k) : επιστρέφει ένα διάνυσμα στήλη με τα στοιχεία της k-διαγωνίου του Α. Παράδειγμα: Αν A = Τότε x = diag(a,-)= 5 2 Δηλαδή επιστρέφει το διάνυσμα με τα στοιχεία της ης διαγωνίου κάτω από την κύρια διαγώνιο. 2 7 3 3 6 2 6 5 5 4 8 7 7 8 8 7 2 2 8 3 5

Βασικές συναρτήσεις του Matlab Προσοχή: Για τη δημιουργία του διαγώνιου πίνακα θα πρέπει να καλέσουμε τη συνάρτηση diag 2 φορές. Παράδειγμα : Αν Α= Τότε D=diag(diag(A))= 2 5 2 4 6 3 7 5 2 7 3 8 7 2 8 5 6 8 7 8 3 2 6

Βασικές συναρτήσεις του Matlab tril: Επιστρέφει το κάτω τριγωνικό μέρος ενός πίνακα. Ειδικότερα: L = tril(x) : επιστρέφει το κάτω τριγωνικό μέρος του X. Παράδειγμα: tril(ones(4,4))=

Βασικές συναρτήσεις του Matlab L = tril(x,k) : επιστρέφει τα στοιχεία επί και κάτω από την k διαγώνιο του X. Με k= συμβολίζουμε τα στοιχεία στην κύρια διαγώνιο Με k> συμβολίζουμε τα στοιχεία πάνω από την κύρια διαγώνιο Με k< συμβολίζουμε τα στοιχεία κάτω από την κύρια διαγώνιο. Παράδειγμα: tril(ones(4,4),-)=

Βασικές συναρτήσεις του Matlab triu: Επιστρέφει το πάνω τριγωνικό μέρος ενός πίνακα. Ειδικότερα: U = triu(x) : επιστρέφει το πάνω τριγωνικό μέρος του X. Παράδειγμα: triu(ones(4,4))=

Βασικές συναρτήσεις του Matlab U = triu(x,k) : επιστρέφει τα στοιχεία επί και πάνω από την k διαγώνιο του X. Με k= συμβολίζουμε τα στοιχεία στην κύρια διαγώνιο Με k> συμβολίζουμε τα στοιχεία πάνω από την κύρια διαγώνιο Με k< συμβολίζουμε τα στοιχεία κάτω από την κύρια διαγώνιο. Παράδειγμα : triu(ones(4,4),-)=

Βασικές συναρτήσεις του Matlab Παράδειγμα 2: triu(ones(4,4), )= norm: Μέτρο διανύσματος ή πίνακα n = norm(v) : επιστρέφει την 2-norm ή Ευκλείδεια norm του διανύσματος v. Παράδειγμα: Αν X = [-2 3 -]; Τότε n = norm(x)=3.747

Βασικές συναρτήσεις του Matlab n = norm(v,p) : επιστρέφει το διάνυσμα που ορίζεται από το sum(abs(v)^p)^(/p), όπου p είναι οποιαδήποτε θετική πραγματική τιμή, Inf, ή -Inf. Αν το p είναι Inf, τότε n = max(abs(v)). Αν το p είναι -Inf, τότε n = min(abs(v)). Παράδειγμα: Αν X = [-2 3 -]; τότε n=norm(x,inf)=3 και n2=norm(x,-inf)=

Βασικές συναρτήσεις του Matlab cputime : Επιστρέφει το συνολικό CPU χρόνο (σε δευτερόλεπτα) από τη στιγμή έναρξης της MATLAB εφαρμογή μας μέχρι τη λήξη της. Παράδειγμα: Ο ακόλουθος κώδικας επιστρέφει τον cpu χρόνο που χρειάζεται για να «τρέξει» την surf(peaks(4)); t = cputime; surf(peaks(4)); e = cputime-t Απάντηση: e =.4667

Βασικές συναρτήσεις του Matlab Με την εντολή continue μπορούμε να αγνοήσουμε την εκτέλεση του κώδικα για κάποια τιμή στην επανάληψη. Παράδειγμα for i = :5 if ( i == 3 ) continue end; fprintf( i = %2.f\n', i); end; Το διπλανό τμήμα κώδικα θα έχει το παρακάτω αποτέλεσμα : i = i = 2 i = 4 i = 5

Βασικές συναρτήσεις του Matlab Η διακοπή από ένα βρόχο for ή while μπορεί να γίνει με την εντολή break. Παράδειγμα sum = ; for i = : if ( sum > 2 ) break end; sum = sum + i; end; fprintf( i = %2.f sum = %2.f\n', i, sum); Το παραπάνω τμήμα κώδικα θα έχει το ακόλουθο αποτέλεσμα : i = 5 sum = 5

Βασικές συναρτήσεις του Matlab Η εντολή error Η εντολή error( message ) τοποθετείται εντός μιας επαναληπτικής δομής είτε σε ένα αρχείο κειμένου (script file), είτε σε ένα αρχείο συνάρτησης (function file). Με τη χρήση της δομής αυτής σταματά αυτόματα η εκτέλεση του αρχείου, εμφανίζεται στην οθόνη ένα μήνυμα λάθους και το σύστημα επιστρέφει τον έλεγχο στο πληκτρολόγιο και το παράθυρο εντολών.

Βασικές συναρτήσεις του Matlab Συναρτήσεις επεξεργασίας πινάκων length(v) size(a) ndims(a) numel(a) max(a) εμφανίζει το πλήθος των στοιχείων ενός διανύσματος εμφανίζει το πλήθος των σειρών και των στηλών ενός πίνακα εμφανίζει τον αριθμό των διαστάσεων ενός πίνακα εμφανίζει τον αριθμό των στοιχείων ενός πίνακα εμφανίζει τη μέγιστη τιμή από κάθε μια στήλη του πίνακα

Βασικές συναρτήσεις του Matlab min(a) mean(a) std(a) rot(a) fliplr(a) flipud(a) εμφανίζει την ελάχιστη τιμή από κάθε μια στήλη του πίνακα εμφανίζει το μέσο όρο των τιμών των στοιχείων κάθε στήλης του πίνακα εμφανίζει την τυπική απόκλιση των τιμών των στοιχείων κάθε στήλης ενός πίνακα στρέφει κατά ο ένα πίνακα μεταθέτει τα στοιχεία ενός πίνακα από αριστερά προς δεξιά μεταθέτει τα στοιχεία ενός πίνακα από πάνω προς τα κάτω

Μέθοδος SOR Υπολογισμός επαναλήψεων για τη σύγκλιση της μεθόδου. n=3; A=[2 - ; - 2 -; - 2]; b=[ ]'; tol=.; %Ανεκτικότητα maxits=3; %Μέγιστος αριθμός επαναλήψεων itcount=; %Αρχικοποίηση μετρητή CL=-tril(A, -); % Υπολογισμός κάτω τριγωνικού μέρους του πίνακα Α CU=-triu(A, ); % Υπολογισμός άνω τριγωνικού μέρους του πίνακα Α I=eye(n); % Υπολογισμός μοναδιαίου πίνακα D=diag(diag(A)); % Υπολογισμός διαγώνιου πίνακα D=inv(D); % Υπολογισμός αντίστροφου του διαγώνιου πίνακα L=D*CL; U=D*CU; B=L+U; %disp('b'); disp(b); % Πίνακας Jacobi x=eig(b); % disp(x); % Ιδιοτιμές του πίνακα B (Jacobi) rb=max(abs(x)); % disp(' rb'); disp( rb); % Υπολογισμός Φασματικής ακτίνας του Β omega=2./(.+sqrt(-rb*rb)); % disp('omega'); disp(omega); % Θεωρητική τιμή του ω x=[ ]'; x=x;

Αποτελέσματα SOR μεθόδου CL CU D.5.5.5 L.5.5 D 2 2 2 U.5.5

Μέθοδος SOR t=tic; while itcount<=maxits x=x; x=inv(i-omega*l)*((-omega)*i+omega*u)*x+omega*inv(i-omega*l)*d*b; nm=norm(x-x, Inf); if nm<tol disp('siglisi se'); disp(itcount); disp('epanalipseis'); break; end itcount=itcount+; end % while if nm>tol disp( όχι σύγκλιση μετά από'); disp(maxits); disp( επαναλήψεις'); end disp('x'); disp(x); e=toc(t); disp('e=cputime');disp(e); %συνολικός χρόνος εκτέλεσης της SOR μεθόδου

Αποτελέσματα SOR μεθόδου %Φασματική ακτίνα του Β rb.77 %Θεωρητική τιμή του ω omega.76 x.442.8284.85 nm.8284>. % η επανάληψη x

Αποτελέσματα SOR μεθόδου 2η επανάληψη x.442.8284.85 x..76. nm.5858>. 3η επανάληψη x..76. x.828.4.7 nm.244>.

Αποτελέσματα SOR μεθόδου 4η επανάληψη x.828.4.7 x... nm.72>. 5η επανάληψη x... x.5.. nm 7.787e-4<.

Αποτελέσματα SOR μεθόδου Σύγκλιση σε 4 επαναλήψεις. Η λύση του συστήματος είναι η ακόλουθη: x.5.. Συνολικός χρόνος εκτέλεσης της SOR μεθόδου. e=cputime.255

Μέθοδος SOR Στη συνέχεια θα προσδιορίσουμε πειραματικά την ελάχιστη τιμή της φασματικής ακτίνας για την SOR μέθοδο. Έστω το γραμμικό σύστημα Αx=b με πίνακα Α= 6/5 2 /5 /5 /5 7. /5.3 O επαναληπτικός πίνακας της SOR μεθόδου είναι ο: L ( D ωc ) [( ω)d + ωc ] = ( I ωl) [( ω) I ωu] ω = L U +

Μέθοδος SOR Ο κώδικας: disp('methodos SOR'); n=4; A=[ /5 /5; -7..3; 6/5 /5 ; 2 /5 ] CL=-tril(A, -); CU=-triu(A, ); I=eye(n); D=diag(diag(A));

Μέθοδος SOR % Δημιουργία των L και U D=inv(D); L=D*CL; U=D*CU; % Πίνακας Jacobi B=L+U; % Εύρεση ιδιοτιμών του πίνακα Β (Jacobi) x=eig(b); disp(x);.78.52 -.78 -.52

Μέθοδος SOR % Υπολογισμός φασματικής ακτίνας του Β και θεωρητικής τιμής του ω rb=max(abs(x)); % disp(' rb'); disp( rb); omega=2./(.+sqrt(-rb*rb)); %disp('omega'); disp(omega); rb=.78 omega=.6667 % Αρχικοποίηση μεταβλητών col=; mm=; % Άνοιγμα αρχείου για αποθήκευση τιμών fid6=fopen('sor.txt','a+'); fprintf(fid6, 'w r \n\n'); Εντολές fclose(fid6); %Κλείσιμο αρχείου

Μέθοδος SOR Εντολές for omega=.:.:2. L=I-omega*L; La=inv(L); % Δημιουργία επαναληπτικού πίνακα Lw=La*((-omega)*I+omega*U); lambda=eig(lw); s_sor=max(abs(lambda)); fprintf(fid6, '%f %f \n\n',omega, s_sor);..

Μέθοδος SOR %Αποθήκευση αποτελεσμάτων σε πίνακες για τη δημιουργία γραφικής %παράστασης col=col+; % καταχώριση των πειραματικών τιμών του ω και της φασματικής ακτίνας % σε πίνακες finw(col,)=omega; fins(col,)=s_sor; %disp(finw); disp(fins); % σχεδίαση της γραφικής παράστασης plot(finw,fins,'r-'); % plot(finw,fins,'r-',finw,finss,'go'); %Σχεδίαση 2 γραφικών παραστάσεων % αν είχαμε % Τίτλοι xlabel('\omega'); ylabel( \rho(l_{\omega_})'); title('behavior of \rho(l_{\omega_} with respect to \omega'); Παρατήρηση: Πλήρης συνεργασία Matlab και Latex

Μέθοδος SOR disp('ypologismos elaxistou apo peiramatiko prosdiorismo'); [elaxs, thesi]=min(fins); wopt=finw(thesi,); disp('wopt'); disp(wopt); disp('elaxs');disp(elaxs); disp('thesi');disp(thesi); mm=mm+; end %for

Μέθοδος SOR Αποτελέσματα εκτέλεσης του προγράμματος A =..2.2. -7..3 3.2.2. 2..2. CU= -.2 -.2 7. -.3 CL= -3.2 -.2-2. -.2 D= Αφού D=I -> inv(d)=i, άρα L=CL και U=CU

Μέθοδος SOR Ypologismos elaxistou apo peiramatiko prosdiorismo wopt elaxs thesi Wopt. elaxs.7 thesi 2 wopt.2 elaxs.55 thesi 3 wopt.3 elaxs.2 thesi 4 wopt.4 elaxs.8 thesi 5 wopt.5 elaxs.866 thesi 6 wopt.6 elaxs.828 thesi 7 wopt.7 elaxs.784 thesi 8 wopt.8 elaxs.733 thesi

Μέθοδος SOR wopt. elaxs.673 thesi wopt.5 elaxs.873 thesi 6 wopt elaxs.6 thesi Wopt.6 elaxs.86 thesi 7 wopt. elaxs.5 thesi 2 wopt.7 elaxs.7 thesi 8 Wopt.2 elaxs.38 thesi 3 wopt.7 elaxs.7 thesi 8 wopt.3 elaxs.25 thesi 4 wopt.7 elaxs.7 thesi 8 wopt.4 elaxs.48 thesi 5 wopt.7 elaxs.7 thesi 8

Μέθοδος SOR SOR.txt... 2...7875 3..2.552 4..3.282 5..4.843 6..5.8666 7..6.828 8..7.7844..8.7333...67262...6 2...586 3..2.384 4..3.255 5..4.4757 6..5.8733 7..6.862 8..7.7..8.8 2... 2. 2.. Παρατήρηση: ω_th=ω_exp

Μέθοδος SOR

Μέθοδος SOR

Ρυθμίσεις γραφικής παράστασης

Συναρτήσεις του Matlab Η συνάρτηση fliplr Η συνάρτηση fliplr(a) επιστρέφει έναν πίνακα Α με τις στήλες του να έχουν περιστραφεί με κατεύθυνση από αριστερά προς τα δεξιά γύρω από ένα κάθετο άξονα. Αν ο A είναι ένα διάνυσμα γραμμή τότε η fliplr(a) επιστρέφει ένα διάνυσμα ίδιου μήκους αλλά με αντεστραμμένη τη διάταξη των στοιχείων του. Αν ο A είναι ένα διάνυσμα στήλη τότε η fliplr(a) απλά επιστρέφει τον Α. Παράδειγμα : Έστω A = :, δηλαδή A = 2 3 4 5 6 7 8. Τότε B = fliplr(a)= 8 7 6 5 4 3 2 Παράδειγμα 2: A = {'a' 'b' 'c'; 'd' 'e' 'f'; 'g' 'h' 'i'}= 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' B = fliplr(a)= 'c' 'b' 'a' 'f' 'e' 'd' 'i' 'h' 'g'

Συναρτήσεις του Matlab Η συνάρτηση flipud Η συνάρτηση B = flipud(a) επιστρέφει τον πίνακα A με τις γραμμές του αντεστραμμένες πάνω κάτω δηλ. γύρω από ένα οριζόντιο άξονα. Αν ο A είναι ένα διάνυσμα στήλη τότε η flipud(a) επιστρέφει ένα διάνυσμα ίδιου μήκους με αντεστραμμένη τη διάταξη των στοιχείων του. Αν ο A είναι ένα διάνυσμα γραμμή, τότε η flipud(a) απλά επιστρέφει τον Α. Παράδειγμα : Αν A=(:) = 2 3 4 5 6 7 8 τότε B = flipud(a)= 8 7 6 5 4 3 2

Συναρτήσεις του Matlab Παράδειγμα 2: Αν A = {'a' 'b' 'c'; 'd' 'e' 'f'; 'g' 'h' 'i'}, δηλ. 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i τότε B = flipud(a)= 'g' 'h' 'i' 'd' 'e' 'f' 'a' 'b' 'c'

Συναρτήσεις του Matlab Η συνάρτηση get Η συνάρτηση get θέτει ερωτήματα επί των γραφικών παραστάσεων. Η v = get(h) επιστρέφει όλες τις ιδιότητες και τις τιμές για τα αντικείμενα που ορίζονται από το h. Παράδειγμα: Αν p = plot(:); get(p), τότε εμφανίζεται η ακόλουθη λίστα AlignVertexCenters: 'off' Annotation: [x matlab.graphics.eventdata.annotation] BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: '' Children: [] Clipping: 'on' Color: [.2.64.25] CreateFcn: '' DeleteFcn: '' DisplayName: '' HandleVisibility: 'on' HitTest: 'on' Interruptible: 'on LineStyle: '-' LineWidth:.5 Marker: 'none' MarkerEdgeColor: 'auto' MarkerFaceColor: 'none' MarkerSize: 6 Parent: [x Axes] PickableParts: 'visible' Selected: 'off' SelectionHighlight: 'on' Tag: '' Type: 'line' UIContextMenu: [] UserData: [] Visible: 'on' XData: [ 2 3 4 5 6 7 8 ] XDataMode: 'auto' XDataSource: '' YData: [ 2 3 4 5 6 7 8 ] YDataSource: '' ZData: [x double] ZDataSource: ''

Συναρτήσεις του Matlab Η v = get(h, propertyname ) επιστρέφει την τιμή μόνο της συγκεκριμένης ιδιότητας. Παράδειγμα : p = plot(:);get(p,'linewidth') Απάντηση:.5 Παράδειγμα 2: p = plot(:,'ro-'); props = {'LineWidth','Marker','MarkerSize'}; get(p,props) Απάντηση: [.5] 'o' [6]

Κώδικας 2 clf; mmax=.;col=; for t=.:.:. hw2=((2.-t)/(t*mmax))+t/2.; %disp('hw2');disp(hw2);% τιμή εισόδου lw2=t-(/mmax);%disp('lw2');disp(lw2);% τιμή εισόδου col=col+; %προσαύξηση μετρητή % Δημιουργία πινάκων για τη γραφική παράσταση tt(col,)=t; w_up(col,)=hw2; w_low(col,)=lw2; % Υπολογισμός των ανάστροφων πινάκων ttt=transpose(tt); w_up=transpose(w_up); w_low=transpose(w_low); T=[ttt,fliplr(ttt)]; % Δημιουργία πίνακα Τ W=[w_up, fliplr(w_low)]; % Δημιουργία πίνακα W fill(t,w,[.,.,.]); box off; end; %for t

Κώδικας 2 h = xlabel('\tau'); % Create label pos = get(h,'pos'); % Read position [x y z] set(h,'pos',pos+[. ]) % Move label to right h = ylabel('{\omega_2}','rot',); % Create label and rotate pos = get(h,'pos'); % Read position [x y z] set(h,'pos',pos+[-..5 ]) % Move label to up text('interpreter','latex',... 'string','$\bar\omega_2(\tau)=\frac{2- \tau}{\tau\mu_{max}}+\frac{\tau}{2}$',...'fontsize',2,'position',[.27,7.5]); text('interpreter','latex',... 'string','$\underline\omega_2(\tau)=\tau- \frac{}{\mu_{max}}$',... 'FontSize',2,'position',[.55,-.5]); text('interpreter','latex',... 'string','convergence',...'fontsize', 2, 'position', [.2,.5]);

Convergence area of the x method for μmax =..