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

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

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

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

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

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

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

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

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

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

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

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

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

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

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

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

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

OΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

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

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

Κεφάλαιο 6. Αριθμητική παρεμβολή

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

lnx ln x ln l x 1. = (0,1) (1,7].

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

3 η δεκάδα θεµάτων επανάληψης

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Αριθμητική Ανάλυση και Εφαρμογές

f x και τέσσερα ζευγάρια σημείων

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

ΜΑΘΗΜΑΤΙΚΑ Γ ΛΥΚΕΙΟΥ

Επαναληπτικό Διαγώνισμα Άλγεβρας Β Λυκείου. Θέματα. A. Να διατυπώσετε τον ορισμό μιας γνησίως αύξουσας συνάρτησης. (5 μονάδες)

Αριθµητική Ολοκλήρωση

II. Συναρτήσεις. math-gr

Θεώρημα Βolzano. Κατηγορία 1 η Δίνεται η συνάρτηση:

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 7: ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ - ΠΡΑΞΕΙΣ ΜΕ ΣΥΝΕΧΕΙΣ ΣΥΝΑΡΤΗΣΕΙΣ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΣΕ ΔΙΑΣΤΗΜΑΤΑ

Ο μαθητής που έχει μελετήσει το κεφάλαιο αυτό θα πρέπει:

<Πεδία ορισμού ισότητα πράξεις σύνθεση>

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

ΠΟΛΥΩΝΥΜΑ ΠΟΛΥΩΝΥΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

4.1. Πολυώνυμα. Η έννοια του πολυωνύμου

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

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

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

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

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

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

0x2 = 2. = = δηλαδή η f δεν. = 2. Άρα η συνάρτηση f δεν είναι συνεχής στο [0,3]. Συνεπώς δεν. x 2. lim f (x) = lim (2x 1) = 3 και x 2 x 2

Μεθοδική Επανα λήψή. Επιμέλεια Κων/νος Παπασταματίου. Θεωρία - Λεξιλόγιο Βασικές Μεθοδολογίες. Φροντιστήριο Μ.Ε. «ΑΙΧΜΗ» Κ.

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

4.1. Πολυώνυμα. Η έννοια του πολυωνύμου

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

Συναρτήσεις Θεωρία Ορισμοί - Παρατηρήσεις

Βασικά στοιχεία στο Matlab

να είναι παραγωγίσιμη Να ισχύει ότι f Αν μια από τις τρεις παραπάνω συνθήκες δεν ισχύουν τότε δεν ισχύει και το θεώρημα Rolle.

ΚΕΦΑΛΑΙΟ 1ο: ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΝΟΤΗΤΑ 2: ΜΕΤΡΟ ΜΙΓΑΔΙΚΟΥ ΑΡΙΘΜΟΥ - ΙΔΙΟΤΗΤΕΣ ΤΟΥ ΜΕΤΡΟΥ [Κεφ. 2.3: Μέτρο Μιγαδικού Αριθμού σχολικού βιβλίου].

10 ΑΡΙΘΜΗΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ

Πολυωνυμική εξίσωση βαθμού ν ονομάζεται κάθε εξίσωση της μορφής α ν x ν +α ν-1 x ν α 1 x+α 0 =0,με α 0,α 1,...

Kεφάλαιο 4. Συστήματα διαφορικών εξισώσεων. F : : F = F r, όπου r xy

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

4.3 ΠΟΛΥΩΝΥΜΙΚΕΣ ΕΞΙΣΩΣΕΙΣ & ΑΝΙΣΩΣΕΙΣ

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

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να εξετάσετε αν ισχύουν οι υποθέσεις του Θ.Μ.Τ. για την συνάρτηση στο διάστημα [ 1,1] τέτοιο, ώστε: C στο σημείο (,f( ))

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

ΚΕΦΑΛΑΙΟ 3ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 5: ΘΕΩΡΗΜΑ ROLLE [Θεώρημα Rolle του κεφ.2.5 Μέρος Β του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. 2x 1. είναι Τότε έχουμε: » τον χρησιμοποιούμε κυρίως σε θεωρητικές ασκήσεις.

ΠΟΛΥΩΝΥΜΑ. Λυμένα Παραδείγματα

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

1.8 ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΘΕΩΡΗΜΑ BOLZANO A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

ΚΕΦΑΛΑΙΟ 3ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 3: ΕΦΑΠΤΟΜΕΝΗ [Κεφάλαιο 2.1: Πρόβλημα εφαπτομένης του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β

Επαναληπτικά θέματα στα Μαθηματικά προσανατολισμού-ψηφιακό σχολείο ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ

1.2 Εξισώσεις 1 ου Βαθμού

2.3 Πολυωνυμικές Εξισώσεις

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, , 5 Ο ΕΞΑΜΗΝΟ ΔΙΔΑΣΚΩΝ: Δ. Βαλουγεώργης Απαντήσεις: ΠΡΟΟΔΟΣ 1, Επιμέλεια λύσεων: Γιώργος Τάτσιος

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΑ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

Συναρτήσεις Όρια Συνέχεια

ΜΕΡΟΣ 1 ΣΥΝΑΡΤΗΣΕΙΣ. f : A R και στη συνέχεια δίνουμε τον τύπο της συνάρτησης, π.χ.

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

Γ. Ν. Π Α Π Α Δ Α Κ Η Σ Μ Α Θ Η Μ Α Τ Ι Κ Ο Σ ( M S C ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ. ΠΡΟΓΡΑΜΜΑ: Σπουδές στις Φυσικές Επιστήμες

y 1 (x) f(x) W (y 1, y 2 )(x) dx,

Κεφάλαιο 4: Διαφορικός Λογισμός

ΚΕΦΑΛΑΙΟ 4 Ο ΣΤΟΙΧΕΙΑ ΟΛΟΚΛΗΡΩΤΙΚΟΥ ΛΟΓΙΣΜΟΥ

Συνθήκες Θ.Μ.Τ. Τρόπος αντιμετώπισης: 1. Για να ισχύει το Θ.Μ.Τ. για μια συνάρτηση f σε ένα διάστημα [, ] (δηλαδή για να υπάρχει ένα τουλάχιστον (, )

Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων

g(x) =α x +β x +γ με α= 1> 0 και

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

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

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

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές

Συνέχεια συνάρτησης σε διάστημα. Η θεωρία και τι προσέχουμε. x, ισχύει: lim f (x) f ( ).

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

Αριθμητική Ανάλυση και Εφαρμογές

ΣΥΣΤΗΜΑΤΑ. 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις)

Για να εκφράσουμε τη διαδικασία αυτή, γράφουμε: :

ΕΠΑΝΑΛΗΨΗ ΒΑΣΙΚΩΝ ΕΝΝΟΙΩΝ

Transcript:

Β ΜΕΡΟΣ: ΕΦΑΡΜΟΓΗ ΤΟΥ MATLAB ΣΤΗΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ 1. Εύρεση ρίζας Στο κεφάλαιο αυτό θα ασχοληθούμε με την εύρεση ρίζας μιας συνάρτησης ή αλλιώς με την ευρεση λύσης της εξίσωσης: Πριν αναφερθούμε στην εντολή εύρεση ρίζας, θα δούμε πως μπορούμε να ορίσουμε μια συνάρτηση στο Matlab. Αυτό γίνεται με την εντολή inline : όνομα συνάρτησης=inline( τύπος, μεταβλητή ) Για παράδειγμα, αν θέλουμε να ορίσουμε την συνάρτηση γράψουμε: >> f=inline('exp(x)*(x^2-3)','x') f= Inline function: f(x) = exp(x)*(x^2-3) Η εύρεση ρίζας γίνεται με την εντολή: fzero(συνάρτηση, x o ) όπου x o η αρχική τιμή. Η εντολή fzero υπολογίζει προσεγγιστικά μία πραγματική ρίζα της συνάρτησης, με αρχική προσέγγιση το x o. Tονίσαμε το μία, διότι μπορεί η συνάρτηση να έχει περισσότερες από μία ρίζες, η εντολή fzero όμως μας δίνει μόνο μία, αυτή που είναι πλησιέστερη στην αρχική τιμή x o. Άρα για να βρούμε μια πραγματική ρίζα μιας συνάρτησης, δουλεύουμε ως εξής: 1 ο βήμα: Ορίζουμε την συνάρτηση με την εντολή inline 2 ο βήμα: Βρίσκουμε μια ρίζα της με την εντολή fzero Παράδειγμα 1.1: Να βρεθεί μια πραγματική ρίζα της συνάρτησης κοντά στο x o =4. >> f=inline('exp(x)*(x^2-3)','x') f= Inline function: f(x) = exp(x)*(x^2-3) >> fzero(f,4) ans = 1.7321 Παράδειγμα 1.2:

Να βρεθεί μια πραγματική λύση της εξίσωσης: κοντά στο x o =4. >> f=inline( exp(-sqrt(x))+x^2+3*x-4','x') f= Inline function: f(x) = exp(-sqrt(x))+x^2+3*x-4 >> fzero(f,2.7) ans = 0.9222 ΕΠΙΛΥΣΗ ΠΟΛΥΩΝΥΜΙΚΗΣ ΕΞΙΣΩΣΗ Ειδικά για τις πολυωνυμικές συναρτήσεις, έχουμε την δυνατότητα να βρούμε όλες τις ρίζες. Αυτό γίνεται με την εντολή : roots(πολυώνυμο) Πιο αναλυτικά, για να βρούμε τις ρίζες μιας πολυωνυμικής συνάρτησης: 1 ο βήμα: Ορίζω το πολυώνυμο. Στο Matlab για να ορίσω ένα πολυώνυμο, γράφω τους συντελεστές του, σε έναν πίνακα γραμμή: Π.χ p=[α ν α ν-1... α 1 α ο ] 2 ο βήμα: Βρίσκω όλες τις ρίζες (πραγματικές και μιγαδικές): roots(p) Παράδειγμα 1.3 Να λυθεί η εξίσωση: >> p=[1-7 0 2.8-1 -8/9] p= 1.0000-7.0000 >> roots(p) ans = 6.9453 0.5420 + 0.4008i 0.5420-0.4008i -0.5147 + 0.1295i -0.5147-0.1295i 0 2.8000-1.0000-0.8889 Μέθοδος Newton Raphson: Το πρόγραμμα που ακολουθεί, υλοποιεί την αριθμητική μέθοδο εύρεσης ρίζας Newton Raphson, της οποίας ο επαναληπτικός τύπος είναι: Το κριτήριο διακοπής είναι:

Το κριτήριο διακοπής είναι: function[x,iter]=newtonraphson(f,df,x,tol) iter=0; xdiff=inf; while xdiff>tol & iter<50 iter=iter+1; x1=x; f1=feval(f,x1); x=x-f1/feval(df,x1); xdiff=abs(x-x1); end if iter>50 error('no root found') end όπου ε η ανοχή. Στο πρόγραμμα αυτό, f είναι η συνάρτηση της οποίας αναζητούμε την ρίζα, df είναι η παράγωγος της f, x είναι η αρχική τιμή (ως μεταβλητή εισόδου) και η ρίζα της συνάρτησης (ως μεταβλητή εξόδου) tol είναι η ανοχή, iter είναι ο αριθμός των επαναλήψεων Πριν καλέσουμε την συνάρτηση newtonraphson πρέπει να ορίσουμε τις συναρτήσεις f και df. Παράδειγμα 1.4 Με την βοήθεια της συνάρτησης newtonraphson θα βρούμε μια ρίζα της, με αρχική τιμή 4 και με ανοχή: >> f=inline('x^2-4*x+3','x'); >> df=inline('2*x-4','x'); >> [x,iter]=newtonraphson(f,df,4,10^-3) x= 3.0000 iter = 4 Εάν μικρύνουμε την ανοχή, παρατηρούμε ότι ο αριθμός επαναλήψεων μεγαλώνει. Για παράδειγμα, με ανοχή >> [x,iter]=newtonraphson(f,df,4,10^-8) x= 3 iter = 6

έχουμε 6 επαναλήψεις: 2. Επίλυση Γραμμικού Συστήματος Θεωρούμε το γραμμικό σύστημα: (Σ) Θεωρούμε επίσης τους παρακάτω πίνακες: Πίνακας που περιέχει τους συντελεστές των αγνώστων Πίνακας που περιέχει τους αγνώστους και Πίνακας που περιέχει τους σταθερούς όρους Τότε, το σύστημα (Σ) είναι ισοδύναμο με την ισότητα: Δηλαδή: Από την τελευταία ισότητα, λύνοντας ως προς τον πίνακα παίρνουμε: Από την τελευταία σχέση, συμπεραίνουμε ότι για να βρoύμε την λύση ενός συστήματος στο Matlab, εργαζόμαστε ως εξής: 1 ο βήμα: Ορίζω τον πίνακα με τους συντελεστές των αγνώστων a 2 ο βήμα: Ορίζω τον πίνακα με τους σταθερούς όρους b ο οποίος πρέπει να είναι πίνακας στήλη. 3 ο βήμα: Πολλαπλασιάζω τον αντίστροφο του α επί τον b οπότε βρίσκω τον πίνακα x, τα στοιχεία του οποίου είναι οι τιμές των ζητούμενων αγνώστων: Εναλλακτικά, στο τρίτο βήμα μπορούμε να χρησιμοποιήσουμε το σύμβολο \. Η εντολή: α\b επιλύει το γραμμικό σύστημα αx=b. (Χρησιμοποιεί απαλοιφή Gauss) Θα ασχοληθούμε με γραμμικά συστήματα, στα οποία ο πίνακας των συντελεστών είναι αντιστρέψιμος (ορίζουσα διάφορη του 0) και άρα έχουν μοναδική λύση. Παράδειγμα 2.1 Θα λύσουμε το σύστημα: α τρόπος >> a=[2-4 0.4;0 1 1;1/2-6 2]; >> b=[-1.2;-2;-11]; >> x=inv(a)*b x= 2.0000 1.0000-3.0000

1.0000-3.0000 β τρόπος >> a=[2-4 0.4;0 1 1;1/2-6 2]; >> b=[-1.2;-2;-11]; >> x=a\b x= 2.0000 1.0000-3.0000 Παράδειγμα 2.2 Να λυθεί το σύστημα: >> a=[1 -sqrt(2) 2.8 0;0 1 3-2;5-1 0 1;1-sqrt(2) 0-3 0]; >> b=[log(6)^2;2.3^(5/4);0;exp(1)]; >> x=a\b x= 0.1624-3.9936-0.9285-4.8058 Mέθοδος Jacobi Το παρακάτω πρόγραμμα υλοποιεί την επαναληπτική μέθοδο επίλυσης γραμμικού συστήματος Jacobi. Στην μέθοδο Jacobi γράφουμε τον πίνακα Α στην μορφή: Α=D+L+U όπου ο πίνακας D είναι ο διαγώνιος πίνακας του Α και L,U κάτω και άνω τριγωνικός αντίστοιχα. Ο επαναληπτικός τύπος της μεθόδου είναι: Το κριτήριο τερματισμού είναι: function [x,k]=jacobi(a,b,tol) n=length(b); L=tril(a,-1); U=triu(a,1); D=diag(diag(a),0); xnew=zeros(n,1); x=2*tol*ones(n,1); k=0; if nargin==2 tol=1.0e-6; end while max(abs(xnew-x))>tol όπου ε η ανοχή. x=xnew; k=k+1; xnew=-inv(d)*(l+u)*x+inv(d)*b; end x=xnew; end Στο πρόγραμμα,

Στο πρόγραμμα, a είναι ο πίνακας συντελεστών, b είναι ο πίνακας σταθερών όρων, tol είναι η ανοχή, x είναι η λύση του συστήματος και k ο αριθμός των επαναλήψεων Παράδειγμα 2.3 Να λυθεί το σύστημα, εφαρμόζοντας την μέθοδο Jacobi, με ανοχή 10-3 >> a=[13-1 -4;-1 3 1;2 3-7]; >> b=[17;3;-7]; >> [x,k]=jacobi(a,b,10^-3) x= 1.9997 1.0002 1.9998 k= 8 Εάν μικρύνουμε την ανοχή, ο αριθμός των επαναλήψεων μεγαλώνει: >> [x,k]=jacobi(a,b,10^-5) x= 2.0000 1.0000 2.0000 k= 12 Μέθοδος Gauss-Seidel Η μέθοδος Gauss-Seidel βασίζεται στον επαναληπτικό τύπο: Για να φτιάξουμε το πρόγραμμα της μεθόδου, το μόνο που αλλάζει σε σχέση με το προηγούμενο πρόγραμμα (Jacobi) είναι η 15 σειρά : xnew=-inv(l+d)*u*x+inv(l+d)*b; Παράδειγμα 2.4 Θα λύσουμε το σύστημα του παραδείγματος 2.3 με την μέθοδο Gauss-Seidel, με ανοχή >> a=[13-1 -4;-1 3 1;2 3-7]; >> b=[17;3;-7]; >> [x,k]=gseidel(a,b,10^-3) x= 2.0000 1.0000 2.0000 k= 5 Παρατηρούμε ότι η μέθοδος Gauss-Seidel, ήταν πιο γρήγορη στην επίλυση του συστήματος, αφου για την ίδια ανοχή έκανε λιγότερες επαναλήψεις. 3. Πολυωνυμική Παρεμβολή

3. Πολυωνυμική Παρεμβολή Το πρόβλημα της πολυωνυμικής παρεμβολής διατυπώνεται ως εξής: Δίνονται οι τιμές μιας (ενδεχομένως άγνωστης) συνάρτησης, που αντιστοιχούν σε διάφορες τιμές της ανεξάρτητης μεταβλητής. Ζητούμε να κατασκευάσουμε ένα πολυώνυμο βαθμού ν-1, τέτοιο ώστε οι τιμές του στα σημεία να συμπίπτουν με τις τιμές της συνάρτησης. Δηλαδή να ισχύει: Το πολυώνυμο αυτό ονομάζεται πολυώνυμο παρεμβολής των δοσμένων σημείων. Επίσης λέμε ότι το πολυώνυμο παρεμβάλει τα σημεία. Η γραφική παράσταση του πολυωνύμου παρεμβολής, διέρχεται από τα σημεία Το πολυώνυμο παρεμβολής, μας δίνει την δυνατότητα να προσεγγίσουμε τιμές της συνάρτησης, για τιμές της ανεξάρτητης μεταβλητής x, που βρίσκονται ενδιάμεσα στις δοσμένες. Στο Matlab, το πολυώνυμο παρεμβολής μπορεί να υπολογιστεί με την εντολή: polyfit. Έστω ότι δίνονται τα σημεία:. Αρχικά, ορίζουμε τους πίνακες γραμμή, οι οποίοι έχουν ως στοιχεία τους τις τετμημένες και τεταγμένες των σημείων αντίστοιχα: Τότε η εντολή: polyfit(x,y,n) μας δίνει το πολυώνυμο βαθμού n που παρεμβάλει τα δοσμένα σημεία. Ο βαθμός n του πολυωνύμου, πρέπει να είναι κατά ένα μικρότερος από το πλήθος των σημείων: Το αποτέλεσμα που προκύπτει είναι ένα διάνυσμα που περιέχει τους συντελεστές του πολυωνύμου παρεμβολής από την μεγαλύτερη δύναμη προς τον σταθερό όρο. Παράδειγμα 3.1 Θα προσδιορίσουμε το πολυώνυμο που παρεμβάλει τα σημεία: Χ i -3,2 2,56 (14) 1/2 5 6 Yi 9/5-1 -3,5 0 4 >> x=[-3.2 2.56 sqrt(14) 5 6]; >> y=[9/5-1 -3.5 0 4]; >> p=polyfit(x,y,4) (βάζουμε βαθμό 4, διότι τα σημεία είναι 5) p= -0.0761 0.8898-1.4572-9.8900 22.2076 Αριθμητική τιμή πολυωνύμου Εστω ότι έχουμε ορίσει στο Matlab ένα πολυώνυμο p(x).

Εστω ότι έχουμε ορίσει στο Matlab ένα πολυώνυμο p(x). Με την εντολή: polyval(p,a) υπολογίζουμε την τιμή του πολυωνύμου, αν θέσουμε στην μεταβλητή τον αριθμό α. Υπολογίζουμε δηλαδή το p(α) Παράδειγμα 3.2 Να υπολογιστεί το q(20,15 e ) Αν q(x) = -x 5-2x 4 +(1/7)x 3-4,8x -3 (Ορίζουμε το πολυώνυμο δίνοντας συντελεστές) >> q=[-1-2 1/7 0-4.8-3]; >> polyval(q,20.15^exp(1)) ans = -5.3356e+017 Παράδειγμα 3.3 Δίνεται το πολυώνυμο: p(x) = x 3-2,7x + 4 Να υπολογιστούν: p(20), p(e), p((π 5 ) (1/2) ), p( (5,6) 3 ), p(log200) >> p=[1 0-2.7 4]; >> u=[20 exp(1) sqrt(pi^5) 5.6^3 log10(200)]; >> polyval(p,u) ans = 1.0e+006 * 0.0080 0.0000 0.0053 5.4157 0.0000 Παράδειγμα 3.4 Δίνονται τα σημεία: i) Να βρεθεί το πολυώνυμο που παρεμβάλει τα σημεία :(-5,9), ii) Να βρεθεί η τιμή του πολυωνύμου στο (2015) (1/9) >> x=[-5-3.2^(4/3) 1/pi 3]; >> y=[9 exp(sqrt(3)) log(40) cos(pi/4)^3]; >> p=polyfit(x,y,3) p=

p= -0.2813-0.5037 3.2564 2.7124 >> polyval(p,2015^(1/9)) ans = 4.0115 Παράδειγμα 3.5 Δίνονται τα σημεία: (-3,-9), (-1,-3), Να σχεδιαστούν, στο ίδιο σύστημα αξόνων, τα σημεία και το πολυώνυμο που τα παρεμβάλει. >> x=[-3-1 0 4 5 6]; >> y=[-9-3 1-2 3-1]; >> plot(x,y,'o') >> q=polyfit(x,y,5) q= -0.0279 0.2062 0.1795-2.7459 1.3087 1.0000 >> xi=-4:0.01:7; >> yi=polyval(q,xi); >> hold on; plot(xi,yi,'r') Με το plot(x,y, o ) σχεδιάζονται τα σημεία. Με το o γίνονται κύκλοι (για να ξεχωρίζουν απ την γραφική παράσταση που θα σχεδιαστεί στην συνέχεια) και δεν ενώνονται μεταξύ τους. Με το hold on κρατάμε το πρώτο γράφημα ώστε να σχεδιαστεί το καινούριο πάνω στο παλιό. Με το plot(xi, yi, r ) σχεδιάζεται το γράφημα του πολυωνύμου παρεμβολής. Με το r γίνεται κόκκινο. Αξονας Y 30 20 10 0-10

-10-20 -30-40 Αξονας X - 4-2 0 2 4 6 8 Μέθοδος Lagrange Μια από τις πιο βασικές μεθόδους προσδιορισμού του πολυωνύμου παρεμβολής είναι η μέθοδος Lagrange. Εστω ότι αναζητούμε το πολυώνυμο που παρεμβάλει τα σημεία: Στην μέθοδο αυτή, κατασκευάζουμε τους συντελεστές: και γενικά: κι έπειτα βρίσκουμε το πολυώνυμο παρεμβολής από τον τύπο:

Η εντολή polyfit που είδαμε, χρησιμοποιεί την μεθοδολογία των ελαχίστων τετραγώνων και όχι την μέθοδο Lagrange. Στο παρακάτω πρόγραμμα υλοποιείται η μέθοδος Lagrange. function[yi]=lagrange(x,y,xi) %xi ta parembolima simeia n=length(x); m=length(xi); L=ones(n,m); for i=1:n for j=1:n if i~=j L(i,:)=L(i,:).*(xi-x(j))/(x(i)-x(j)); end end end yi=y*l Το παραπάνω πρόγραμμα, δεν μας δίνει τους συντελεστές του πολυωνύμου παρεμβολής, όπως συνέβαινε με την εντολή polyfit, αλλά μας δίνει την τιμή του πολυωνύμου στο. To μπορεί να είναι και διάνυσμα όπως είναι στο παράδειγμα που ακολουθεί. Παράδειγμα 3.6 Δίνονται τα σημεία Να σχεδιαστούν στο ίδιο σύστημα αξόνων, τα σημεία και το πολυώνυμο Lagrange που τα παρεμβάλει: >> x=[-5-1 1 3 4]; >> y=[6 1-4 6 8]; >> plot(x,y,'o') >> xi= -6:0.1:6; >> yi=lagrange(x,y,xi); >> hold on;

>> hold on; plot(xi,yi,'r') -5-1 1 3 4 6-1 -4 6 8 Αξονας Y 30 20 10 0-10 -20-30 -40 Αξονας X -6-4 -2 0 2 4 6

4. Αριθμητική Ολοκλήρωση Στην παράγραφο αυτή θα ασχοληθούμε με τον υπολογισμό με αριθμητικές μεθόδους ορισμένου ολοκληρώματος : Το Matlab διαθέτει για την προσέγγιση της τιμής ενός ορισμένου ολοκλήρώματος, τις εντολές: quad και quadl (από την λέξη quadtrature που σημαίνει αριθμητική ολοκλήρωση), των οποίων η σύνταξη είναι: [q,i]=quad(f,α,b,tol) [q,i]=quadl(f,α,b,tol) όπου: f είναι η συνάρτηση μέσα στο ολοκλήρωμα a, b το κάτω και άνω άκρο του ολοκληρώματος, αντίστοιχα tol η επιθυμητή ανοχή Τα q και i είναι μεταβλητές εξόδου, και σημαίνουν: q είναι η τιμή του ολοκληρώματος i ο αριθμός των υπολογισμών της συνάρτησης που έγιναν μέχρι να υπολογιστεί η τιμή με την συγκεκριμένη ανοχή. Η quad, εφαρμόζει μια παραλλαγή της Simpson με Romberg extrapolation, ενώ η quadl βασίζεται σε μεθόδους μεγαλύτερης ακρίβειας Lobatto-Kronrod. Για να υπολογίσουμε ένα ορισμένο ολοκλήρωμα στο Matlab εργαζόμαστε ως εξής: 1 ο βήμα: Δηλώνουμε την συνάρτηση του ολοκληρώματος με την εντολή inline 2 ο βήμα: Υπολογίζουμε το ολοκλήρωμα με την εντολή quad ή quadl Παρατήρηση: Στην εντολή inline, εάν ο τύπος της συνάρτησης έχει πολλαπλασιασμό, διαίρεση ή δύναμη μεταξύ του x, θα πρέπει πριν από αυτές τις πράξεις να βάζουμε τελεία. Π.χ: x./sqrt(x) exp(x).*x x.^4.*log(x) Αυτό είναι απαραίτητο διότι το x είναι διάνυσμα, και θέλουμε οι πράξεις αυτές

Αυτό είναι απαραίτητο διότι το x είναι διάνυσμα, και θέλουμε οι πράξεις αυτές να γίνουν στοιχείο προς στοιχείο. Παράδειγμα 4.1 Θα υπολογίσουμε το ορισμένο ολοκλήρωμα >> f=inline('x.^2.*exp(-x.^4),'x'); >> [q,i]=quad(f,1,4.5,10^-3) q= 0.0794 i= 13 Εάν μικρύνουμε την ανοχή, έστω γίνει 25): >> [q,i]=quad(f,1,4.5,10^-5) q= 0.0797 i= 25 Παράδειγμα 4.2 Να υπολογιστεί το ολοκλήρωμα >> f=inline('(x.^3+log(x).^2)./(x.*sin(x)),'x'); >> [q,i]=quad(f,5^(1/3),2.8,10^-4) q= 9.6011 i= 21 Κανόνας Τραπεζίου με ανοχή, ο αριθμός του i μεγαλώνει, (από 13 θα με ανοχή Στην μέθοδο αυτή, το διάστημα ολοκλήρωσης [α,b] χωρίζεται σε n ίσα υποδιαστήματα. Η τιμή του ολοκληρώματος υπολογίζεται από τον τύπο:

Όπου: και, κ.λ.π Το παρακάτω πρόγραμμα υλοποιεί την μέθοδο Τραπεζίου: function[i]=trap(f,a,b,n) if n<2 error('length<2') end h=(b-a)/n; sum=f(a)+f(b); for i=1:n-1 x=a+i*h; sum=sum+2*f(x); end I=h/2*sum; end Κανόνας Simpson Στην μέθοδο αυτή, το διάστημα χωρίζεται σε άρτιο πλήθος υποδιαστημάτων 2n. Ο τύπος της μεθόδου είναι: Όπου: και, To πρόγραμμα που υλοποιεί την μέθοδο Simpson είναι: function[i]=simpson(f,a,b,n) if n<3 error('o arithmos diastimatwn prepei >=4') end if mod(n,2)~=0 error('o arithmos diastimatwn prepei na einai artios') end h=(b-a)/n; sum=0; κ.λ.π for i=0:2:n-2 x0=a+i*h; x1=x0+h; x2=x1+h; sum=sum+(f(x0)+4*f(x1)+f(x2)); end I=h/3*sum; end Στα δύο προγράμματα:

Στα δύο προγράμματα: f είναι η συνάρτηση μέσα στο ολοκλήρωμα, την οποία πρέπει να ορίσουμε α,b το κάτω και άνω άκρο του ολοκληρώματος αντίστοιχα n ο αριθμός των υποδιαστημάτων στα οποία χωρίζεται το διάστημα Παράδειγμα 4.3 Να υπολογιστεί το ολοκλήρωμα: i) Με κανόνα Τραπεζίου ii) Με κανόνα Simpson διαμερίζοντας το διάστημα [0,1] σε 50 υποδιαστήματα. >> f=inline( cos(pi*x.^2/2)','x'); >> trap(f,0,1,50) ans = 0.7798 >> simpson(f,0,1,50) ans = 0.7799