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

Σχετικά έγγραφα
Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ

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

Ιστοσελίδα : Εργαστήριο 3 Απαντήσεις. Επίλυση Μη Γραμμικών Εξισώσεων και Συστημάτων

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

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

( ) ( ) ( ) ( ) ενώ η εξίσωση της παραβολής είναι η

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

Κεφάλαιο 1 Εισαγωγή Μιγαδικοί Αριθµοί

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

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

3η ΕΡΓΑΣΙΑ. 3.1 Αµεσοι µέθοδοι για την Αριθµητική Επίλυση Γραµµικών Συστηµάτων

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

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

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

Εφαρμοσμένα Μαθηματικά ΙΙ 7ο Σετ Ασκήσεων (Λύσεις) Γραμμικά Συστήματα- Απαλοιφή Gauss Επιμέλεια: I. Λυχναρόπουλος

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ

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

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

Μάθημα Επιλογής 8 ου εξαμήνου

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

ÁñéèìçôéêÞ ÁíÜëõóç É - ÓÅÌÖÅ Åñãáóßá 2 ìåóåò êáé åðáíáëçðôéêýò ìýèïäïé

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

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

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

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

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

A Τελική Εξέταση του μαθήματος «Αριθμητική Ανάλυση» Σχολή Θετικών Επιστημών, Τμήμα Μαθηματικών, Πανεπιστήμιο Αιγαίου

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

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

Παναγιώτης Ψαρράκος Αν. Καθηγητής

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

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια)

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

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

µέχρι και την Τρίτη και ώρα 22:30 1η Ασκηση ΑΜΕΣΟΙ ΜΕΘΟ ΟΙ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟ ΟΣ:

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

Εφαρμοσμένα Μαθηματικά 3η εργαστηριακή άσκηση

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

Παράδειγμα #10 ΠΡΟΒΛΗΜΑΤΑ ΟΡΙΑΚΩΝ ΤΙΜΩΝ ΕΛΛΕΙΠΤΙΚΕΣ ΜΔΕ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

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

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος

Επιστηµονικός Υπολογισµός ΙΙ

Επιστηµονικός Υπολογισµός Ι

Ειδικά θέματα στην επίλυση

Παράδειγμα #5 ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ & ΜΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης

Επίσης, γίνεται αναφορά σε µεθόδους πεπερασµένων στοιχείων και νευρονικών δικτύων.

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

i. Επιλύστε με απαλοιφή Gauss μερικής οδήγησης το σύστημα:

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

Παρουσίαση 3ης Άσκησης

Παρουσίαση 2 ης Άσκησης:

Παραδείγματα Απαλοιφή Gauss Απαλοιφή Gauss-Jordan Παραγοντοποίηση LU, LDU

Παράδειγμα #4 EΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

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

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

Εισαγωγή στην πληροφορική

Εισαγωγή στον επιστημονικό προγραμματισμό 2 o Μάθημα

Πρακτικό Βγάλτε στυλό και χαρτί για να σχηματίσετε τον σκελετό και την λογική του προγράμματός σας πριν το περάσετε στην οθόνη.

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Πίνακας Περιεχομένων

Εφαρμογή της μεθόδου πεπερασμένων διαφορών στην εξίσωση θερμότητας

Κεφ. 6Α: Συνήθεις διαφορικές εξισώσεις - προβλήματα δύο οριακών τιμών

Πίνακας Περιεχομένων

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

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

12/3/2012. Εργαστήριο Αλγόριθμοι Γραμμικής Βελτιστοποίησης. Lab03 1. Διανυσματοποίηση Βρόχων. Αρχικοποίηση μητρών (preallocating)

17. Εισαγωγή σε αριθμητικές μεθόδους για μηχανικούς και αλγορίθμους

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

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

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

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

Αριθμητική Επίλυση Συνήθων Διαφορίκών Εξισώσεων 3ο Εργαστήριο 27/03/2015 1

Αξιοποίηση Η/Υ και Πληροφορικής στην Μηχανική

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ηµεροµηνία Αποστολής στον Φοιτητή: 15 Οκτωβρίου 2006

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Παράδειγμα #9 ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΟΡΙΑΚΩΝ ΤΙΜΩΝ ΕΛΛΕΙΠΤΙΚΕΣ ΣΔΕ ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α. Πρόλογος...15 ΚΕΦΑΛΑΙΟ 1. Σφάλματα

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

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

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

Η πλήρως ανεπτυγµένη ροή λόγω διαφοράς πίεσης σε κυλινδρικό αγωγό περιγράφεται από την συνήθη διαφορική εξίσωση

Επίλυση Γραµµικών Συστηµάτων

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]

Επιστηµονικοί Υπολογισµοί (Αρ. Γρ. Αλγεβρα)Επαναληπτικές µέθοδοι και 31 Μαρτίου Ηµι-Επαναληπτικές Μέθοδο / 17

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

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

Εισαγωγή στην πληροφορική

ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΣΥΓΚΡΙΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΠΙΛΥΣΗΣ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΕ GPU

- 1+x 2 - x 3 + 7x x x x x x 2 - x 3 - -

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

Επίλυση δικτύων διανοµής

ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ ΣΤΗ MATLAB

Παράδειγμα #5 EΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΕΘΟΔΟ NEWTON ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης. ( k ) ( k)

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΜΑΘΗΜΑ: ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΚΑΙ ΕΡΓΑΣΤΗΡΙΟ Ι Ιστοσελίδα : http://www.math.ntua.gr/~fargyriou Εργαστήριο 2 - Απαντήσεις Επίλυση Γραμμικών Συστημάτων ΟΝΟΜΑ gauss.m declu.m solvelu.m invlu.m jacobi.m gseidel.m ovrel.m ΠΕΡΙΓΡΑΦΗ Επίλυση συστήματος με άμεση μέθοδος απαλοιφής Gauss Παραγοντοποίηση πίνακα LU Επίλυση συστήματος με παραγοντοποίηση LU Αντιστροφή πίνακα με LU Επίλυση συστήματος με επαναληπτική μέθοδο Jacobi Επίλυση συστήματος με επαναληπτική μέθοδο Gauss-Seidel Επίλυση συστήματος με επαναληπτική μέθοδο SOR Στο εργαστήριο αυτό θα χρησιμοποιήσουμε τα παραπάνω αρχεία για να εφαρμόσουμε τις διαδικασίες που ακολουθούν. Για κάθε μέθοδο θα φτιάξετε ένα πρόγραμμα εντολών (script) που θα την υλοποιεί και θα κρατήσετε σημειώσεις και παρατηρήσεις για τα αποτελέσματά τους. 1. Δημιουργήστε ένα φάκελο εργασίας με το όνομα lab3 και αποθηκεύστε τον στην Επιφάνεια Εργασίας. 2. Κάντε ενεργό το φάκελο στο MATLAB. 3. Χρησιμοποιείστε τη μέθοδο Gauss για να επιλύσετε το σύστημα: 1 1 2 1 x 8 2 2 3 3 y 20 = 1 1 1 0 z 2 1 1 4 3 w 4 1

q3.m A=[1,-1,2,-1;2,-2,3,-3;1,1,1,0;1,-1,4,3] b=[-8;-20;-2;4] x=gauss(a,b) error_system=max(abs(a*x-b)) 4. Χρησιμοποιείστε τη μέθοδο παραγοντοποίησης LU για να επιλύσετε το σύστημα: 3 1 2 x 12 1 2 3 y 11 = 2 2 1 z 2 5. Υπολογίστε τον αντίστροφο για τον πίνακα του συστήματος του Ερωτήματος 2. q4_5.m A=[3,-1,2;1,2,3;2,-2,-1] b=[12;11;2] x=solvelu(a,b) error_system=max(abs(a*x.'-b)) inv_a=invlu(a) error_inv=max(max(abs(a*inv_a-eye(3)))) 6. Χρησιμοποιείστε τη μέθοδο παραγοντοποίησης LU για να λύσετε το σύστημα του Ερωτήματος 1. 2

q6.m A=[1,-1,2,-1;2,-2,3,-3;1,1,1,0;1,-1,4,3] b=[-8;-20;-2;4] [l,u]=declu(a) x=solvelu(a,b) error_system=max(abs(a*x.'-b)) 7. Χρησιμοποιείστε τη μέθοδο απαλοιφή Gauss για να επιλύσετε το σύστημα: 1 1 2 1 x 8 2 2 3 3 y 20 = 1 1 1 0 z 2 2 2 4 2 w 16 q7.m A=[1,-1,2,-1;2,-2,3,-3;1,1,1,0;2,-2,4,-2] b=[-8;-20;-2;16] x=gauss(a,b) error_system=max(abs(a*x-b)) 8. Χρησιμοποιείστε την επαναληπτική μέθοδο Jacobi για να επιλύσετε το ακόλουθο σύστημα, για δύο τιμές της παραμέτρου ανοχής TOL 1e 6και 1e 8, και οποιοδήποτε αρχικό διάνυσμα x 0 (γιατί;): 10 1 2 0 x 6 1 11 1 3 y 25 = 2 1 10 1z 11 0 3 1 8 w 15 3

q8.m A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8] b=[6;25;-11;15] x0=[1;0;0;1]; [x_1,k_1]=jacobi(a,b,x0,10^(-6)) error_system_1=max(abs(a*x_1-b)) [x_2,k_2]=jacobi(a,b,x0,10^(-9)) error_system_2=max(abs(a*x_2-b)) 9. Επαναλάβετε για την επαναληπτική μέθοδο Gauss-Seidel. q9.m A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8] b=[6;25;-11;15] x0=[1;0;0;1]; [x_1,k_1]=gseidel(a,b,x0,10^(-6)) error_system_1=max(abs(a*x_1-b)) [x_2,k_2]=gseidel(a,b,x0,10^(-9)) error_system_2=max(abs(a*x_2-b)) 10. Επαναλάβετε για την επαναληπτική μέθοδο SOR για ω= 1.25και ω= 1. Τι παρατηρείτε; q10.m A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8] b=[6;25;-11;15] x0=[1;0;0;1]; tol=10^(-6); [x_1,k_1]=ovrel(a,b,x0,tol,1.25) 4

error_system_1=max(abs(a*x_1-b)) [x_2,k_2]=ovrel(a,b,x0,tol,1) error_system_2=max(abs(a*x_2-b)) 11. Με τη χρήση επαναληπτικής διαδικασίας for, παρουσιάστε γραφικά τον αριθμό των επαναλήψεων που κάνει η SOR για να επιλύσει το σύστημα όταν το ω μεταβάλλεται από 0.1 έως 0.9, με βήμα 0.1 (TOL 1e 5). q11.m close all; A=[10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8] b=[6;25;-11;15] D=diag(diag(A)) L=tril(A,-1) U=triu(A,+1) x0=[1;0;0;1]; tol=10^(-5); w=0.1:0.1:1.9; for i=1:19 [x,k(i)]=ovrel(a,b,x0,tol,w(i)); error_system(i)=max(abs(a*x-b)); rho(i)=max(abs(eig((1-w(i))*eye(4)+(w(i)*inv(d-l)*u)))); end plot(w,k,'b-*') plot(w,log10(error_system),'r-') plot(w,rho,'g-o') 12. Επαναλάβετε το Ερώτημα 11 για το παρακάτω σύστημα: 5

4 1 1 1 1 1 4 1 1 1 x= 1 1 4 1 1 1 1 1 4 1 q12.m close all; A=[-4,1,1,1;1,-4,1,1;1,1,-4,1;1,1,1,-4] b=[1;1;1;1] D=diag(diag(A)) L=tril(A,-1) U=triu(A,+1) x0=[1;0;0;1]; tol=10^(-5); w=0.1:0.1:1.8; for i=1:18 [x,k(i)]=ovrel(a,b,x0,tol,w(i)); error_system(i)=max(abs(a*x-b)); rho(i)=max(abs(eig((1-w(i))*eye(4)+(w(i)*inv(d-l)*u)))); end plot(w,k,'b-*') plot(w,log10(error_system),'r-') plot(w,rho,'g-o') Δοθέντες συναρτήσεις: gauss.m function x=gauss(a,b); % solving ax=b, where a in R^nxn, x,b in R^n n=length(b); 6

for i=1:n-1, [amax,imax]=max(abs(a(i:n,i))); if amax<eps disp(' Singular Matrix'); break; end imax=imax+i-1; if imax~=i, sa=a(imax,i:n);sb=b(imax); a(imax,i:n)=a(i,i:n); b(imax)=b(i);a(i,i:n)=sa;b(i)=sb; end b(i+1:n)=b(i+1:n)-b(i)*a(i+1:n,i)/a(i,i); a(i+1:n,1:n)=a(i+1:n,1:n)-a(i+1:n,i)*a(i,1:n)/a(i,i); if abs(a(n,n))<eps, disp(' Singular Matrix');return;end % back up substitution x(n,1)=b(n)/a(n,n); for i=n-1:-1:1, x(i,1)=(b(i)-a(i,i+1:n)*x(i+1:n,1))/a(i,i); declu.m function [l,u]=declu(a); % decomplses l*u=a n=length(a(1,:)); l=zeros(n);u=zeros(n); u(1,1:n)=a(1,1:n); l(2:n,1)=a(2:n,1)/u(1,1); for i=1:n,l(i,i)=1; for i=2:n-1 u(i,i:n)=a(i,i:n)-l(i,1:i-1)*u(1:i-1,i:n); l(i+1:n,i)=(a(i+1:n,i)-l(i+1:n,1:i-1)*u(1:i-1,i))/u(i,i); u(n,n)=a(n,n)-l(n,1:n-1)*u(1:n-1,n); 7

solvelu.m function x=solvelu(a,b); % solves a system using LU n=length(a(1,:)); [l,u]=declu(a) % 1st back up substitution y(1)=b(1); for i=2:n,y(i)=b(i)-l(i,1:i-1)*y(1:i-1)'; % 2nd back up substitution x(n)=y(n)/u(n,n); for i=n-1:-1:1,x(i)=(y(i)-u(i,i+1:n)*x(i+1:n)')/u(i,i); invlu.m function x=invlu(a); % Invertion of a, using LU decomposition n=length(a(1,:)); [l,u]=declu(a); e=eye(n); for k=1:n, % 1st back up substitution y(1)=e(k,1); for i=2:n,y(i)=e(k,i)-l(i,1:i-1)*y(1:i-1)'; % 2nd back up substitution x(n,k)=y(n)/u(n,n); for i=n-1:-1:1,x(i,k)=(y(i)-u(i,i+1:n)*x(i+1:n,k))/u(i,i); jacobi.m function [x,k]=jacobi(a,b,x0,tol); % method of Jacobi, for solution of sparse linear system a*x=b n=length(b); l=-tril(a);for i=1:n,l(i,i)=0; u=-triu(a);for i=1:n,u(i,i)=0; 8

d=a+u+l; for i=1:n;d(i,i)=1/d(i,i); g=d*(l+u); gg=d*b; x=rand(n,1);xnew=x0;k=0; if nargin==2,tol=1.0e-6;xnew=rand(n,1); % maximum number of iterations 2000 while max(abs(xnew-x))>tol & k <2000, x=xnew;k=k+1; xnew=g*x+gg; x=xnew; gseidel.m function [x,k]=gseidel(a,b,x0,tol); % method of SOR, for solution of sparce linear system a*x=b n=length(b); l=-tril(a);for i=1:n,l(i,i)=0; u=-triu(a);for i=1:n,u(i,i)=0; d=a+u+l; g=inv(d-l); gg=g*b;g=g*u; x=rand(n,1);xnew=x0;k=0; if nargin==2,tol=1.0e-6;xnew=rand(n,1); % maximum number of iterations 2000 while max(abs(xnew-x))>tol & k <2000, x=xnew;k=k+1; xnew=g*x+gg; x=xnew; ovrel.m function [x,k]=ovrel(a,b,x0,tol,w); % method of SOR, for solution of sparce linear system a*x=b if nargin==2,tol=1.0e-6;w=1; if nargin==3,w=1; 9

n=length(b); l=-tril(a);for i=1:n,l(i,i)=0; u=-triu(a);for i=1:n,u(i,i)=0; d=a+u+l; g=inv(d-l); gg=w*g*b;g=(1-w)*eye(n)+w*g*u; x=rand(n,1);xnew=x0;k=0; % maximum number of iterations 2000 while max(abs(xnew-x))>tol & k <2000, x=xnew;k=k+1; xnew=g*x+gg; x=xnew; 10