Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης. Numerical Analysis Network Software

Σχετικά έγγραφα
Επαναληπτικές μέθοδοι

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: ΟΡΙΖΟΥΣΕΣ

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ, 5 Ο ΕΞΑΜΗΝΟ, ΠΕΡΙΕΧΟΜΕΝΑ ΠΑΡΑΔΟΣΕΩΝ. Κεφ. 1: Εισαγωγή (διάρκεια: 0.5 εβδομάδες)

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

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

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

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

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

Κεφ. 2: Επίλυση συστημάτων εξισώσεων. 2.1 Επίλυση εξισώσεων

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

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

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

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

Κεφ. 2: Επίλυση συστημάτων αλγεβρικών εξισώσεων. 2.1 Επίλυση απλών εξισώσεων

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

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

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

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

Για την κατανόηση της ύλης αυτής θα συμβουλευθείτε επίσης το: βοηθητικό υλικό που υπάρχει στη

Η Θεωρία στα Μαθηματικά κατεύθυνσης της Γ Λυκείου

2.1 Αριθμητική επίλυση εξισώσεων

Κεφ. 3: Παρεμβολή. 3.1 Εισαγωγή. 3.2 Πολυωνυμική παρεμβολή Παρεμβολή Lagrange Παρεμβολή Newton. 3.3 Παρεμβολή με κυβικές splines

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

V. Διαφορικός Λογισμός. math-gr

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

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

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

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

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

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

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

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

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

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

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

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

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

Non Linear Equations (2)

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

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

Ο ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ LAPLACE

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

b. Για κάθε θετικό ακέραιο m και για κάθε A. , υπάρχουν άπειρα το πλήθος πολυώνυμα ( x) [ x] m και ( A) 0.

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

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

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

Σχολή Μηχανολόγων Μηχανικών ΕΜΠ 4 ο Εξάμηνο ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ. Πρώτη Ενότητα Αριθμητική Επίλυση Μη-Γραμμικών Εξισώσεων

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

τα βιβλία των επιτυχιών

Εφαρμοσμένα Μαθηματικά ΙΙ 9ο Σετ Ασκήσεων (Λύσεις) Διανυσματικοί Χώροι

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

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

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

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

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

ΜΑΘΗΜΑΤΙΚΑ Θετικής & Τεχνολογικής Κατεύθυνσης Β ΜΕΡΟΣ (ΑΝΑΛΥΣΗ) ΚΕΦ 1 ο : Όριο Συνέχεια Συνάρτησης

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΡΑΜΜΙΚΗΣ ΑΛΓΕΒΡΑΣ. ρ Χρήστου Νικολαϊδη

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

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

Πεπερασμένες Διαφορές.

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

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

Γραμμικός Προγραμματισμός Μέθοδος Simplex

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

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

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

15 εκεµβρίου εκεµβρίου / 64

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

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

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

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

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

Κεφ. 3: Παρεμβολή. 3.1 Εισαγωγή. 3.2 Πολυωνυμική παρεμβολή Παρεμβολή Lagrange Παρεμβολή Newton. 3.3 Παρεμβολή με κυβικές splines

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

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

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

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

ΘΕΩΡΗΜΑ ROLLE ΘΕΩΡΗΜΑ ROLLE

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

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

( ) ( ) Τοα R σημαίνει ότι οι συντελεστές δεν περιέχουν την μεταβλητή x. αντικ σταση στο που = α. [ ο αριθµ ός πουτο µηδεν ίζει

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

Εφαρμοσμένα Μαθηματικά ΙΙ Τελική Εξέταση 8/6/2017 Διδάσκων: Ι. Λυχναρόπουλος

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΜΕΑΣ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης Numerical Analysis Network Software Πτυχιακή Εργασία ΚΟΜΠΟΘΑΝΑΣΗ ΝΙΚΗ (ΑΕΜ 2250) ΠΑΠΑΔΗΜΟΠΟΥΛΟΥ ΑΝΤΩΝΙΑ (ΑΕΜ 2204) Επιβλέπων Καθηγητής: Δρ. Χρήστος Λαυράνος ΚΑΒΑΛΑ 2013

ΠΡΟΛΟΓΟΣ Tα τελευταία χρόνια έχει σημειωθεί ραγδαία ανάπτυξη της τεχνολογίας, η οποία κατάφερε να εισχωρήσει σε όλους τους τομείς της ζωής μας.η εξέλιξη της αυτή συνέβαλε σημαντικά στον κλάδο των μαθηματικών και ιδιαίτερα στον κλάδο της Αριθμητικής Ανάλυσης, η οποία μπορούμε να πούμε ότι θεωρεί σχεδόν απαραίτητη την χρήση των ηλεκτρονικών υπολογιστών. Η αριθμητική ανάλυση ασχολείται με τον σχεδιασμό, την κατασκευή και την μελέτη αλγορίθμων για την προσέγγιση με ικανοποιητικό τρόπο, των λύσεων προβλημάτων τα οποία μπορούν να εκφραστούν με μαθηματικά μοντέλα. Οι ηλεκτρονικοί υπολογιστές βοηθούν στην εφαρμογή των μεθόδων της Αριθμητικής Ανάλυσης και στην πληρέστερη κατανόηση αυτών για περαιτέρω ανάπτυξή τους, μέσω διαδραστικών εικόνων, οι οποίες συντελούν στην απεικόνιση των βημάτων εύρεσης του κάθε αλγοριθμικού τύπου. Το συμπέρασμα είναι λοιπόν ότι οι ηλεκτρονικοί υπολογιστές, εκτός από την ταχύτητα προσδιορισμού της προσεγγιστικής τιμής στην οποία οδηγεί η κάθε μέθοδος, αποτελούν και αναπόσπαστο κομμάτι κατά την διδασκαλία των διαφόρων μεθόδων. Η εργασία αυτή είναι αποτέλεσμα θεωρητικής και εμπειρικής έρευνας που δεν θα μπορούσε να πραγματοποιηθεί χωρίς την καθοδήγηση, τις γνώσεις και την πολύτιμη βοήθεια του επιβλέποντα καθηγητή αυτής της πτυχιακής Δρ. Λαυράνο Χ. του οποίου και οφείλουμε τις θερμότερες ευχαριστίες μας. Τέλος θα θέλαμε να ευχαριστήσουμε τις οικογένειές μας για την πολύτιμη συμπαράστασή και συναισθηματική υποστήριξη. 1 Σ ε λ ί δ α

Περιεχόμενα ΠΕΡΙΛΗΨΗ... 3 1 ΠΑΡΟΥΣΙΑΣΗ. ΤΩΝ ΓΕΝΙΚΩΝ ΜΕΘΟΔΩΝ... 4 1.1Μέθοδος Διχοτόμησης (Bolzano)... 4 1.1.1 Πλεονεκτήματα και Μειονεκτήματα της Μεθόδου της Διχοτόμησης:... 6 1.2 Μέθοδος Newton-Raphson... 6 1.2.1 Πλεονεκτήματα και Μειονεκτήματα της Μεθόδου Newton-Raphson:... 8 1.2.2 Σύγκλιση της μεθόδου... 9 2. ΣΥΣΤΗΜΑΤΑ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ... 11 2.1 Μέθοδος GAUSS... 12 2.2 Μέθοδος LU... 15 2.2.1 Γενικός τύπος για «LU» ανάλυση... 17 2.3 Μέθοδοι LDM T και LDL T Παραγοντοποίησης... 17 2.4 Μέθοδος JACOBI (Επαναληπτική)... 20 2.5 Μέθοδος GAUSS SEIDEL... 22 2.6 Μέθοδος Cholesky(LLT)... 23 3. ΠΡΟΣΕΓΓΙΣΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ... 26 3.1 Η µέθοδος τραπεζίου... 26 3.2 Μέθοδος Simpson:... 29 4. ΠΟΛΥΩΝΥΜΙΚΗ ΠΑΡΕΜΒΟΛΗ... 31 4.1 Πολυώνυμο LAGRANGE... 31 4.2 Μέθοδος Πεπερασμένης Διαφοράς... 32 4.3 Μέθοδος Ελαχίστων Τετραγώνων... 33 5. ΑΠΟ ΤΗΝ ΘΕΩΡΙΑ ΣΤΗΝ ΠΡΑΞΗ... 35 6. ΠΑΡΑΡΤΗΜΑ... 44 ΒΙΒΛΙΟΓΡΑΦΙΑ... 150 2 Σ ε λ ί δ α

ΠΕΡΙΛΗΨΗ Η εργασία αυτή αναφέρεται στην αριθμητική επίλυση εξισώσεων με την βοήθεια λογισμικού, το οποίο εφαρμόζει τις μεθόδους σε συγκεκριμένες συναρτήσεις με σκοπό την απεικόνιση, επίλυση και κατανόηση της κάθε μεθόδου. Το γενικό λογισμικό αρχικά παρουσιάζει μία εφαρμογή λογισμικού στο περιβάλλον της Visual C++ ακολουθώντας τις αρχές της τεχνολογίας λογισμικού, ενώ ταυτόχρονα θα αποκτά μια σημαντική εμπειρία στην επίλυση προβλημάτων με αριθμητικές τεχνικές. Πιο συγκεκριμένα θα αναφερθούμε στην επίλυση εξισώσεων με τη μέθοδο Bolzano και τη μέθοδο Newton,στην επίλυση γραμμικών συστημάτων με τη μέθοδο GAUSS, τη μέθοδο LU, LL T, LDM, LDL T, Jacobi και Gauss-Siedel,στην επίλυση ολοκληρωμάτων με τη μέθοδο Τραπεζίου και Simpson, στην υλοποίηση συμπτωτικής παρεμβολής με τη μέθοδο Lagrange και με τη μέθοδο πεπερασμένων διαφορών και τέλος στην υλοποίηση μη συμπτωτικής παρεμβολής με τη μέθοδο των ελαχίστων τετραγώνων. Η εφαρμογή μαζί με την απαραίτητη βιβλιογραφική υποστήριξη θα γίνει διαθέσιμη και μέσω διαδικτύου. Η εργασία θα αποτελέσει ένα χρήσιμο εκπαιδευτικό εργαλείο για όλους τους φοιτητές θετικών επιστημών, ιδιαιτέρως δε για τους φοιτητές τμημάτων ΑΕΙ/ΤΕΙ στις ειδικότητες Μαθηματικών, Πληροφορικής και Μηχανικών όλων των ειδικοτήτων καθώς και απλούς χρήστες. 3 Σ ε λ ί δ α

Γενικά 1. ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΓΕΝΙΚΩΝ ΜΕΘΟΔΩΝ Ένα από τα κλασικά προβλήματα των εφαρμοσμένων μαθηματικών είναι η επίλυση της εξίσωσης f ()=0, ήτοι η εύρεση μιας ή περισσοτέρων τιμών που μηδενίζουν τη συνάρτηση f ().Ως γνωστόν, αναλυτική έκφραση των τιμών αυτών (ριζών) μπορεί να δοθεί σε πολύ λίγες περιπτώσεις. Άρα αποτελεί επιτακτική ανάγκη η χρησιμοποίηση αριθμητικών μεθόδων για την προσέγγιση των ριζών μιας δοθείσας συνάρτησης. Σε αυτή την περίπτωση οι μέθοδοι είναι επαναληπτικές οπότε ξεκινώντας από μια αρχική εκτίμηση εφαρμόζουμε τον κατάλληλο αλγόριθμο που θα δημιουργήσει μια ακολουθία αριθμών, η οποία συγκλίνει στη ζητούμενη ρίζα ρ. Στη συνέχεια παρουσιάζουμε τις πιο γνωστές μεθόδους, ήτοι τη μέθοδο της Διχοτόμησης και της Newton-Raphson. 1.1Μέθοδος Διχοτόμησης (Bolzano) Η μέθοδος της διχοτόμησης βασίζεται κυρίως στο θεώρημα του Bolzano, το οποίο δίνουμε στη συνέχεια, και γι' αυτό πολλές φορές συναντάμε τη μέθοδο αυτή και ως μέθοδο Bolzano. Θεώρημα Αν η συνάρτηση f () είναι συνεχής στο κλειστό διάστημα [a,β] και ισχύει f (a) f (β)<0, τότε υπάρχει τουλάχιστον μια ρίζα ρ της συνάρτησης f () στο διάστημα αυτό. Αν επιπλέον στο διάστημα [a, β ] ισχύει f '() 0 για κάθε [a,β ], η ρίζα αυτή είναι μοναδική.το θεώρημα αυτό είναι πολύ χρήσιμο στην διαδικασία του εντοπισμού μιας ρίζας της εξίσωσης f () =0. Εφαρμόζοντας την μέθοδο της διχοτόμησης παίρνουμε αρχικά το διάστημα [αₒ,βₒ] όπου η συνάρτηση f() είναι συνεχής και ισχύει f (αₒ) f (βₒ ) < 0,οπότε υπάρχει ρίζα της εξίσωσης f () = 0, βάσει του παραπάνω θεωρήματος, στο διάστημα αυτό. Επίσης θεωρούμε ότι ισχύει f '() 0, για κάθε [αₒ,βₒ] ούτως ώστε η ρίζα στο υπό μελέτη διάστημα να είναι μοναδική. Θεωρούμε το μέσον 4 Σ ε λ ί δ α

του διαστήματος [α 0,β 0 ]. Αν f ( 0 ) = 0, τότε η ζητούμενη ρίζα είναι ρ= 0. Αν f ( 0 ) 0, τότε θεωρούμε τα γινόμενα f( a 0 ) f ( 0 ) και f ( 0 ) f (β 0 ) των τιμών της f () στα άκρα των διαστημάτων [ a 0, 0 ] και [ 0, β 0 ] αντίστοιχα. Ένα από τα δύο γινόμενα αυτά είναι αρνητικό και ονομάζουμε [ 1, 1 ] το νέο διάστημα. Δηλαδή αν f( aₒ) f (ₒ ) < 0, θέτουμε 1 = aₒ και 1 = ₒ αν f (ₒ) f (βₒ) < 0, θέτουμε 1 = ₒ και 1 = βₒ Θεωρούμε πάλι το μέσον του νέου διαστήματος και συνεχίζουμε τη διαδικασία με τον ίδιο τρόπο, οπότε ορίζεται η ακολουθία k, k=0,1,.των μέσων των διαστημάτων, η οποία προσεγγίζει την τιμή της ρίζας ρ. Το ότι η ακολουθία που δημιουργείται συγκλίνει πάντοτε στη ρίζα ρ αποδεικνύεται εύκολα αν θεωρήσουμε το σφάλμα στο πρώτο βήμα 0 για το οποίο ισχύει Στο δεύτερο βήμα θα έχουμε και στο k βήμα 0 0 0 0 2 1 k1 1 1 1 0 0 2 2 2 k k k 2 0 0 k 1 2 5 Σ ε λ ί δ α

1.1.1 Πλεονεκτήματα και Μειονεκτήματα της Μεθόδου της Διχοτόμησης: 1. Είναι η μόνη μέθοδος που συγκλίνει ακόμη και όταν η αρχική τιμή δεν βρίσκεται κοντά στην επιθυμητή προσέγγιση της ρίζας, ήτοι υπάρχει πάντα σύγκλιση στο διάστημα εφαρμογής της. 2. Ο απαιτούμενος αριθμός επαναλήψεων k που χρειάζονται για την προσέγγιση της ρίζας είναι γνωστός εξ αρχής. 3. Δεν χρειάζονται περαιτέρω πληροφορίες κατά την εφαρμογή της μεθόδου εκτός από το αλγεβρικό πρόσημο της f () σε κάθε σημείο. 4. Συγκλίνει αργά στην προσεγγιστική τιμή. 5. Σε ορισμένες περιπτώσεις μπορεί να εμφανιστεί καλύτερη προσέγγιση της ρίζας σε μικρότερο αριθμό βημάτων από τον προκαθορισμένο αριθμό, οπότε τα επιπλέον βήματα είναι περιττά. 1.2 Μέθοδος Newton-Raphson Η μέθοδος Newton-Raphson αποτελεί την ταχύτερη από τις μεθόδους προσέγγισης ρίζας μιας συνάρτησης και για αυτό το λόγο χρησιμοποιείται συχνότερα σε προβλήματα επίλυσης εξισώσεων, καθώς και σε συστήματα μη γραμμικών εξισώσεων. Για το τύπο της μεθόδου στην οποία αναφερόμαστε, θεωρούμε ένα σημείο του άξονα, όπου η τιμή της συνάρτησης, η οποία πληροί τις προϋποθέσεις του θεωρήματος Bolzano, είναι ίση με. Στο σημείο βρίσκουμε την εξίσωση της εφαπτομένης. Αν α η κλίση αυτής τότε έχουμε την εξίσωση η οποία περνά από το σημείο Άρα και τέμνει τον άξονα, έστω στο σημείο και εκ των οποίων παίρνουμε 6 Σ ε λ ί δ α

Οπότε αντικαθιστώντας την κλίση α της ευθείας με την παράγωγο έχουμε από την οποία προκύπτει ο γνωστός αλγοριθμικός τύπος Η μέθοδος Newton-Raphson αποτυγχάνει να συγκλίνει σε τρεις περιπτώσεις: 1. Όταν η παράγωγος σε κάποια επανάληψη μηδενιστεί. Τότε δεν είναι πλέον δυνατός ο προσδιορισμός του k+1 Σχήμα 1. Πρώτη περίπτωση αποτυχίας 2.Όταν η συνάρτηση αλλάζει πρόσημο σε δύο σημεία π.χ. τα και, ενώ η παράγωγός της στα σημεία αυτά έχει την ίδια τιμή. Σε αυτή την περίπτωση, η μέθοδος Newton-Raphson εισέρχεται σε ένα κλειστό βρόχο, από τον οποίο δεν μπορεί να εξέλθει παρά μόνο, όταν εξαντληθούν οι επαναλήψεις που έχει δηλώσει ο χρήστης για την εύρεση της ρίζας (Σχ. 2). 7 Σ ε λ ί δ α

Σχήμα 2. Δεύτερη περίπτωση αποτυχίας της μεθόδου 3. Όταν η συνάρτηση προσεγγίζει ασυμπτωτικά το μηδέν και έχει γίνει λανθασμένη επιλογή αρχικού σημείου. Σ αυτή την περίπτωση η μέθοδος Newton μπορεί να απομακρύνεται από την ρίζα της συνάρτησης (Σχ. 3). Σχήμα 3. Τρίτη περίπτωση αποτυχίας της μεθόδου 1.2.1 Πλεονεκτήματα και Μειονεκτήματα της Μεθόδου Newton-Raphson: 1. Το κυριότερο πλεονέκτημα της μεθόδου είναι η μεγάλη ταχύτητα σύγκλισης (2ης τάξης), η οποία ξεπερνά την ταχύτητα σύγκλισης πολλών άλλων μεθόδων. 2. Η μέθοδος είναι επιρρεπής σε ταλαντώσεις. 3. Δεν υπάρχει εγγύηση ότι η μέθοδος θα συγκλίνει. 8 Σ ε λ ί δ α

4. Απαιτεί σε κάθε ρίζα, η παράγωγος να είναι μη μηδενική, αλλιώς η μέθοδος αποτυγχάνει. Αν μηδενιστεί, τότε τείνει στο άπειρο η προσεγγιστική τιμή της ρίζας και δεν μπορούμε να την επανεκκινήσουμε. 5. Είναι απαραίτητος ο υπολογισμός της παραγώγου. Για την αντιμετώπιση των ανωτέρω μειονεκτημάτων ελέγχουμε αρχικά την μοναδικότητα της ρίζας στο διάστημα, όπου θα γίνει η εφαρμογή, με θεωρήματα, τα οποία έχουν αναφερθεί στην μέθοδο της διχοτόμησης, και κατόπιν εξετάζουμε την περίπτωση σύγκλισης στην ρίζα. 1.2.2 Σύγκλιση της μεθόδου Έστω Ι ένα διάστημα στο οποίο υπάρχει ρίζα της και ισχύει η συνάρτηση είναι συνεχής και υπάρχουν οι παράγωγοι πρώτης και δεύτερης τάξης και συνεχείς, με. Αν και η g απεικονίζει το Ι στο Ι, τότε η ακολουθία που παράγεται από τον αλγόριθμο Newton-Raphson συγκλίνει στη ρίζα ρ. Δηλαδή ικανή συνθήκη για την σύγκλιση είναι η ακολουθία, που παράγεται από τον αλγόριθμο να ανήκει στο διάστημα Ι. Αφ' ετέρου, εφόσον έχουμε εντοπίσει μία απλή ρίζα της είναι δυνατόν να βρούμε διάστημα ώστε η ακολουθία που παράγεται να συγκλίνει όπως προκύπτει από τα ακόλουθα. Θεωρούμε το ανάπτυγμα Taylor Θέτοντας χ=ρ και προκύπτει, από τον τύπο του αλγορίθμου στην πρώτη επανάληψη, 9 Σ ε λ ί δ α

άρα Οι f '() και f "(), αφού είναι συνεχείς στο Ι, είναι και φραγμένες, άρα υπάρχουν Μ 1 και Μ 2, τέτοια ώστε και, για όλα τα στο υπό μελέτη διάστημα, 2 οπότε θέτοντας Μ= 2 έχουμε 1 το οποίο αποδεικνύει την δεύτερης τάξης σύγκλιση της μεθόδου Newton-Raphson. Η σχέση (1) μπορεί να γραφτεί όπου α και β τα άκρα του διαστήματος. Για να έχουμε σύγκλιση πρέπει Η τελευταία σχέση μας δίνει τη δυνατότητα εύρεσης του διαστήματος, στο οποίο έχουμε σύγκλιση. Δηλαδή, αν, διχοτομούμε το αρχικό διάστημα και, με τη βοήθεια του θεωρήματος Bolzano, επαναλαμβάνουμε τη διαδικασία, μέχρις ότου εγκλωβίσουμε τη ρίζα σε ένα διάστημα για το οποίο θα ισχύει 10 Σ ε λ ί δ α

Ορισμός 2. ΣΥΣΤΗΜΑΤΑ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ Σύστημα γραμμικών εξισώσεων ή ανισώσεων ή αλλιώς γραμμικό σύστημα είναι ένα σύνολο από γραμμικές εξισώσεις ή ανισώσεις με τους ίδιους αγνώστους, τους οποίους προσπαθούμε να προσδιορίσουμε ώστε να επαληθεύουν όλες τις εξισώσεις ή ανισώσεις του συνόλου. Η πιο απλή μη τετριμμένη περίπτωση γραμμικού συστήματος είναι όταν έχουμε δύο άγνωστες μεταβλητές: Για παράδειγμα, ένα σύστημα γραμμικών εξισώσεων δύο άγνωστων μεταβλητών είναι: ενώ αντίστοιχο σύστημα γραμμικών ανισώσεων είναι: Η λύση συστημάτων γραμμικών εξισώσεων απαντάται σε μια πλειάδα προβλημάτων κάθε επιστημονικού κλάδου. Σε πολλές περιπτώσεις, χρειάζεται να λύσει κανείς γραμμικά συστήματα πολύ μεγάλου μεγέθους, π.χ. 1000 1000 συντελεστών. Η λύση ενός τέτοιου συστήματος απαιτεί ένα πολύ μεγάλο αριθμό πράξεων. Ακόμη και με τη χρήση γρήγορου υπολογιστή, η λύση μπορεί να είναι χρονοβόρα και να απαιτεί μεγάλη υπολογιστική μνήμη. Επίσης, όσο μεγαλύτερος είναι ο αριθμός των βημάτων, τόσο αυξάνει το συνολικό σφάλμα στρογγυλοποίησης των αριθμητικών πράξεων στη μνήμη του υπολογιστή. Οι μέθοδοι επίλυσης γραμμικών συστημάτων κατατάσσονται σε δύο κατηγορίες, στις άμεσες και στις επαναληπτικές μεθόδους. Οι άμεσες μέθοδοι μπορούν να οδηγήσουν σε ακριβή λύση του συστήματος, ενώ οι επαναληπτικές μέθοδοι ξεκινούν με κάποια αρχική εκτίμηση της λύσης και βελτιώνουν την εκτίμηση μέχρι κάποια επιθυμητή ακρίβεια. Για πολύ μεγάλα γραμμικά συστήματα, οι επαναληπτικές μέθοδοι είναι ασύγκριτα πιο γρήγορες απ ότι οι άμεσες μέθοδοι. Για ορισμένους τύπους γραμμικών συστημάτων π.χ. για συστήματα που ανάγονται σε συμμετρικό πίνακα ή σε πίνακα με διαγώνια δομή, έχουν αναπτυχθεί εδικές μέθοδοι που 11 Σ ε λ ί δ α

επιτυγχάνουν την επίλυση του συστήματος με λιγότερες πράξεις από ότι με τη χρήση γενικών μεθόδων. 2.1 Μέθοδος GAUSS Σε αυτή την ενότητα θα παρουσιάσουμε μια βασική μέθοδο για την επίλυση γραμμικών συστημάτων N εξισώσεων με N αγνώστους. Το βασικό βήμα είναι η μετατροπή του συστήματος σε ένα άνω-τριγωνικό σύστημα οπότε στη συνέχεια η διαδικασία υπολογισμού των λύσεων είναι απλή. Υπενθυμίζουμε ότι στα γραμμικά συστήματα επιτρέπονται οι παρακάτω πράξεις που δεν αλλοιώνουν τις λύσεις του αρχικού συστήματος : Αλλαγή της σειράς δύο εξισώσεων Πολλαπλασιασμός μιας εξίσωσης με μία μη-μηδενική σταθερά Μια εξίσωση μπορεί να αντικατασταθεί από το άθροισμα αυτής της εξίσωσης και ένα πολλαπλάσιο κάποιας από τις υπόλοιπες. Ας υποθέσουμε ότι δίδεται το γραμμικό σύστημα: A = B με det (A) 6= 0. a11 a a... a b 1 1 12 22 2 2 13 23 3 3 1N a21 a a... a b a N 2 N3... 2N a a... a N1 1 2 3 NN N N N 1 2 b N Για τη μετατροπή του παραπάνω συστήματος σε άνω τριγωνικό θα ακολουθήσουμε τα επόμενα βήματα: 12 Σ ε λ ί δ α

Βήμα 1ο Πολλαπλασιάζω την πρώτη εξίσωση με a 21 / a 11και την αφαιρώ από τη δεύτερη εξίσωση. Ομοίως, πολλαπλασιάζω την πρώτη με λαμβάνω: a 31 / a 11 και την αφαιρώ από την τρίτη κ.ο.κ., οπότε a11 a a... a b 1 12 2 2 23 13 3 3 2N 1N 0 a22 a... a b 0 an 22 an33......... a NN N N N 2 b N 1 Όπου για παράδειγμα, είναι a a a 12 21 22 a22 a11 Βήμα 2ο Η πρώτη γραμμή και η πρώτη στήλη παραμένουν οπότε πολλαπλασιάζω αντίστοιχα τη δεύτερη εξίσωση με οπότε, a 32 / a 22 και την αφαιρώ από την τρίτη εξίσωση κ.ο.κ. a 11 1 a122 a133... a1n N b1 0 a22 a... a b 2 23 3 3 3N 2N 0 0 a33... a b 0 0 an33......... a NN N N N 3 b N 2 13 Σ ε λ ί δ α

Αντίστοιχα, για παράδειγμα, είναι: a a a 32 31 33 a33 a22 Μετά από Ν - 1 Βήματα καταλήγω στο σύστημα: a 11 1 a122 a133... a1n N b1 a22 a... a b 2 23 3 3 2N a33... a b...... 3N N N 2 3 0 0 a N 3... a 3 ( N1) NN N b ( N1) N Το παραπάνω σύστημα είναι τριγωνικό και η λύση του μπορεί να δοθεί εύκολα ακολουθώντας την παρακάτω διαδικασία. Προφανώς για από τη Ν-οστή εξίσωση του παραπάνω συστήματος λαμβάνουμε την τιμή του N : N b a ( N 1) N ( N 1) NN ενώ οι υπόλοιπες ρίζες του συστήματος υπολογίζονται εύκολα από την σχέση: i b ( i1) i N k i1 ( i1) ii a a ( i1) ik k Ο αριθμός των πράξεων που απαιτεί η λύση ενός συστήματος N γραμμικών εξισώσεων με τη 3 2 μέθοδο Gauss είναι 4N 9N 7N/ 6. 14 Σ ε λ ί δ α

2.2 Μέθοδος LU Η μέθοδος πραγματοποίησης ή διάσπασης LU αναφέρεται στο πρόβλημα της διάσπασης ενός πίνακα Α στη μορφή A=LU. Κάθε πίνακας A μπορεί να γραφεί ως γινόμενο δυο πινάκων που περιέχουν τη διαγώνιο και τα πάνω ή κάτω από αυτή στοιχεία του πίνακα. Για παράδειγμα: a a a a 11 21 31 41 a a a a 12 22 32 42 a a a a 13 23 33 43 a a a a 14 24 34 44 = l l l l 11 21 31 41 l l l 0 22 32 42 0 0 l l 33 43 0 0 0 l 44 * 1 0 0 0 u 12 1 0 0 u u 13 23 1 0 u14 u24 u 34 1 A = l (lower) * u (upper) Στόχος μας είναι ο υπολογισμός των στοιχείων των πινάκων L και U. Αυτό θα γίνει με τη λύση ενός συστήματος N N εξισώσεων που στην περίπτωση μας όπου ο πίνακας A είναι 4 4 αναγόμαστε στη λύση ενός συστήματος 16 εξισώσεων. Πολλαπλασιάζοντας τις γραμμές του L με την πρώτη στήλη του U, λαμβάνουμε : l 11 a11 l21 a21 l31 a31 l41 a41 Δηλαδή, η πρώτη στήλη του L είναι η ίδια με την πρώτη στήλη του A. Στη συνέχεια, πολλαπλασιάζουμε την πρώτη γραμμή του L με τις στήλες του U, οπότε λαμβάνουμε: a 12 u12, l11 a 13 u13, l11 a u14 l 14 11 15 Σ ε λ ί δ α

Άρα και η πρώτη γραμμή του U υπολογίστηκε. Συνεχίζοντας υπολογίζουμε τη δεύτερη στήλη του L. l l l 21 31 41 u u u 12 12 12 l l l 22 32 42 a a a 22 32 42 l l l 22 32 42 a a a 22 32 42 l l l 21 31 41 u u u 12 12 12 Όπως παρατηρούμε, τα l 21, l 31, l 41 και u 12 έχουν ήδη υπολογισθεί, επομένως και η δεύτερη στήλη του πίνακα L υπολογίσθηκε. Με ανάλογο τρόπο, οι σχέσεις u 23 a 23 l l 22 21 u 13 l a l u l 33 33 31 13 32u32 u 24 a 24 l l 22 21 u 14 l a l u l 43 43 41 13 42u23 u 34 a 43 l 31 u l 14 33 l 32 u 24 l a l u l l 44 44 41 14 42 24 43u 34 u μας δίνουν τα υπόλοιπα στοιχεία των δυο πινάκων U και L. 16 Σ ε λ ί δ α

2.2.1 Γενικός τύπος για «LU» ανάλυση Με βάση τα προηγούμενα οδηγούμαστε στη δημιουργία ενός κανόνα υπολογισμού των στοιχείων των δύο πινάκων L και U. l ij a ij j 1 k1 l ik u kj για j i και i 1,2,..., u ji a ji j 1 k 1 ljj l jk u ki για j i και i 2,3,..., Για την ειδική περίπτωση του j 1 τα l i1 θα είναι l a i1 i1 ενώ για i 1 ο κανόνας για τα u 1 j είναι u 1 j a l 1 j 11 a a 1 j 11 2.3 Μέθοδοι LDM T και LDL T Παραγοντοποίησης Ας υποθέσουμε ότι ο Α είναι αντιστρέψιμος nn πίνακας που έχει χρησιμοποίει παραγοντοποίηση LU, A = LU. Ξέρουμε ότι L είναι ο κάτω τριγωνικός, και ο U είναι άνω τριγωνικός πίνακας. Αν ορίσουμε τον διαγώνιο πίνακα με D U 0 D 0 11 U 0 22 0 0 0 diag ( u U nn 11, u 22,..., u nn ) Τότε ο πίνακας D είναι επίσης αντιστρέψιμος και έτσι ο πίνακας D -1 U, ο οποίος έχει σαν είσοδο 17 Σ ε λ ί δ α U 1 ij D U, IJ U ij i,j=1,2,,n.

Οι διαγώνιες αυτές καταχωρήσεις ισούνται με το 0, επομένως D -1 U είναι μέρος του άνω τριγωνικού πίνακα. Άρα εάν ορίσουμε τον πίνακα Μ ως Μ Τ =D -1 U, θα έχουμε την παραγοντοποίηση A LU LDD 1 U T LDM, Στην οποία και το L και το Μ είναι μέρος του κάτω τριγωνικού και το D είναι η διαγώνιος. Αυτή είναι η «LDM T Παραγοντοποίηση» Εξαιτίας τις στενής σχέσης μεταξύ των μεθόδων LDM T και LU, η LDM T συνήθως δεν χρησιμοποιείται στην πράξη για να λύση το σύστημα Α=b για έναν γενικά αντιστρέψιμο πίνακα Α. Ωστόσο αυτή η μέθοδος γίνετε πολύ πιο ενδιαφέρουσα όταν είναι συμμετρική. Εάν Α=Α Τ τότε LDM T =(LDM T ) T =MD T L T =MDL T, επειδή ο D γίνεται διαγώνιος πίνακας είναι επίσης και συμμετρικός. Επειδή τα L και M γίνονται μέρη του κάτω τριγωνικού πίνακα που 1 T T 1 είναι και αντιστρέψιμος, προκύπτει ότι M LD DL M DM L T Ο πίνακας Μ -1 L είναι μέρος του κάτω τριγωνικού. Άρα η ακόλουθη εξίσωση δηλώνει ότι ο κάτω τριγωνικός πίνακας είναι ίσος του άνω τριγωνικού το οποίο συνεπάγεται ότι και οι δύο πίνακες πρέπει να είναι διαγώνιοι. Προκύπτει λοιπόν ότι Μ -1 L=I, επειδή οι διαγώνιες καταχωρήσεις είναι ήδη γνωστό ότι ισούνται με ένα. T A LDL Συμπεραίνουμε ότι L=M και λόγω αυτού έχουμε την LDL T μέθοδο πραγματοποίησης.αυτή η μέθοδος θεωρείται πιο «οικονομική» σε σύγκριση με την LU και LDM, επειδή χρειάζονται μόνο n(n+1)/2 καταχωρήσεις για το L και το D. Μόλις αυτοί οι παράγοντες ληφθούν L T z,. μπορούμε να λύσουμε το Α=b λύνοντας το απλό σύστημα. Ly b, Dz y, Με χρήση της εμπρός αντικατάστασης, των απλές διαιρέσεων, και τις πίσω αντικατάστασης, η μέθοδος LDL Τ μπορεί να ληφθεί με την εκτέλεση της μεθόδου Gauss, αλλά κάτι τέτοιο δεν θα ήταν αποτελεσματικό, γιατί η απαλοιφή Gauss απαιτεί την εκτέλεση εργασιών για ολόκληρες τις σειρές του Α, η οποία δεν εκμεταλλεύεται την συμμετρία. Αυτό μπορεί να αντιμετωπιστεί, παραλείποντας τις ενημερώσεις του άνω τριγωνικού τμήματος του Α, δεδομένου ότι δεν επηρεάζεται ο υπολογισμός του L και D. 18 Σ ε λ ί δ α

Μια εναλλακτική προσέγγιση, η οποία είναι εξίσου αποτελεσματική στα πλαίσια της μεθόδου της κινητής υποδιαστολής, αλλά και η πιο επιθυμητή λόγω της χρήσης διανύσματος, περιλαμβάνει τον υπολογισμό του L στήλη κατά στήλη. Αν πολλαπλασιάσουμε και τα δυο μέρη τις εξίσωσης του πίνακα, θα πάρουμε T A LDL με το βασικό διανύσματος j για την εξαγωγή της j-όστις στήλης αυτού j a j lkukj k 1, Όπου A a l 1... an, L 1... l n Είναι στήλες του A και του L και v j =DL T j Υποθέστε ότι οι στήλες 1,2,.,j-1 του L, καθώς επίσης οι d 11,d 2..,d j-1, j-1, και τα πρώτα j-1 διαγώνια στοιχείο του D, έχουν ήδη υπολογιστεί. Στην συνέχεια μπορούμε να υπολογίσουμε το u kj =d kk ljk για k=1,2,,j-1, επειδή αυτές οι ποσότητες εξαρτώνται από τα στοιχεία των L και D τα οποία είναι διαθέσιμα. Προκύπτει ότι a j j 1 lk k1 uk j l u j jj l j d jj l jj Ωστόσο l jj =1, που σημαίνει ότι μπορούμε να βρούμε το d jj από το j-οστό στοιχείο του διανύσματος. u j a j j 1 lk k1 u kj και στη συνέχεια παίρνουμε την «ενδιαφέρουσα» περιοχή της στήλης l j η οποία είναι οι καταχωρήσεις j:n, από τους υπολογισμούς l j =u j /d jj.το υπόλοιποι από αυτή τη στήλη είναι μηδέν επειδή το L είναι κάτω τριγωνικό. Ακολουθεί ολόκληρος ο αλγόριθμος 19 Σ ε λ ί δ α

L = 0 D = 0 for j = 1: n do for k = 1: j-1 do Vkj = dkkljk end uj = aj: n; j for k = 1 : j-1 do uj = uj -lj:n;kvkj end djj = u1j lj:n;j = uj=djj end Ο αλγόριθμος αυτός απαιτεί περίπου το 1 3 n 3 της λειτουργίας της κινητής υποδιαστολής,το μισό δηλαδή από ότι χρειάζεται η μέθοδος Gauss. 2.4 Μέθοδος JACOBI (Επαναληπτική) Η μέθοδος αυτή είναι γενίκευση της μεθόδου = g () που έχουμε χρησιμοποιήσει για την εύρεση ριζών μη-γραμμικών εξισώσεων και συστημάτων.προφανώς, η μέθοδος αυτή δεν είναι ακριβής αλλά υπό κατάλληλες συνθήκες μπορεί να επιτύχει υψηλή ακρίβεια με μικρό αριθμό υπολογιστικών πράξεων και πολύ απλό, προγραμματιστικά, κώδικα. Έστω το σύστημα των N εξισώσεων με N αγνώστους : 0 1 N 1, 2,..., 20 Σ ε λ ί δ α f f 0 2 N 1, 2,...,

f, 2,..., 0 n 1 N Που εύκολα μπορεί να γραφεί στη μορφή: 1 g1 2, 3,..., 1 g1 2, 3,..., N g N 1,..., N N, 2 N 1 με αυτό τον τρόπο το αντιμετωπίζουμε όπως τα μη γραμμικά συστήματα, με τη διαφορά ότι απουσιάζουν οι μη-γραμμικοί όροι. Πρακτικά κάθε μια από τις N εξισώσεις θα μπορούσε να γραφεί στη μορφή: i b a i ii 1 a ii N j1 ji a ij j και στη συνέχεια δίνοντας N αυθαίρετες αρχικές τιμές γενικευμένη αναδρομική σχέση της μορφής (0) (0) (0) 1, 2,... N, δημιουργούμε μια g (,..., ( k1) k ( k) i i 1 N ) Ικανή συνθήκη σύγκλισης είναι η : N a ii a ij j1 ji που αν ικανοποιείται η σύγκλιση είναι βέβαιη και ανεξάρτητη από τις αρχικές τιμές,,..., (0) (0) (0) 1 2 N. 21 Σ ε λ ί δ α

Σε μορφή πινάκων η αναδρομική σχέση μπορεί να γραφεί ως εξής: ( k1) D 1 B D 1 C X ( K ) όπου A = D+C δηλ. ο D περιέχει τα διαγώνια στοιχεία του A και ο C όλα τα υπόλοιπα στοιχεία έχοντας θέσει 0 τα διαγώνια. 2.5 Μέθοδος GAUSS SEIDEL Είναι επαναληπτική μέθοδος και αποτελεί βελτίωση της μεθόδου Jacobi ώστε να επιτυγχάνεται ταχύτερα η σύγκλιση στις ρίζες του συστήματος.αν θεωρήσουμε κάποιες αρχικές τιμές για το διάνυσμα i έστω τις (0) i υπολογίζουμε από την πρώτη εξίσωση το συνέχεια το χρησιμοποιώ στη δεύτερη εξίσωση μαζί με τα αρχικά,..., 2, 3 N 1 και στη για τον υπολογισμό του 2. Στη συνέχεια τα 1 και 2 χρησιμοποιούνται στον υπολογισμό του 3 με αυτό τον τρόπο από τις υπόλοιπες N 3 εξισώσεις λαμβάνουμε τα (1) i. Στη γενική περίπτωση για τον υπολογισμό του χρησιμοποιούμε μια σχέση της μορφής : 1 μετά από k επαναλήψεις ( k1) 1 1 a 11 b 1 N j2 a 1 j ( k) j στη δεύτερη εξίσωση από την οποία θα υπολογίσουμε το 2 μετά από αντικαθιστώ το και υπολογίζουμε το από την σχέση ( k1) k 1, 2,..., k N ( k1) 2 k επαναλήψεις ( k1) 2 1 a 22 b 2 a ( k1) 21 1 N j3 a 2 j ( k ) j 22 Σ ε λ ί δ α

Οπότε στην τρίτη εξίσωση θέτουμε ( k1) k 1, 2,... k N κ.ο.κ Άρα ο γενικός τύπος θα είναι: 1 N ( k1) bi aij j a aii j1 J i1 ( k1) 1 i i ij k j Και εδώ η συνθήκη σύγκλισης είναι: N a ii a ij J 1 J i i 1,2,..., N D B L U ( k1) 1 k1 ( k) Όπου A L lower D diogonal U upper.ο πίνακας L περιέχει τα στοιχεία του πίνακα Α που βρίσκονται κάτω από τη διαγώνιο, ο πίνακας D μόνο τα διαγώνια στοιχεία του Α και τέλος ο πίνακας U τα στοιχεία του πίνακα Α που βρίσκονται πάνω από τη διαγώνιο. 2.6 Μέθοδος Cholesky(LLT) συμμετρικούς T U L Η μέθοδος Cholesky αναφέρεται στην ειδική διάσπαση που χαρακτηρίζει τους δηλαδή: T A LL A T A Συγκεκριμένα ισχύει το θεώρημα : και θετικά ορισμένους πίνακες. Για τους πίνακες αυτούς ισχύει, Θεώρηµα : ιάσπαση Cholesky Ένας συµµετρικός πίνακας Α µπορεί να τεθεί στη µορφή τριγωνικός, µε l ii > 0, i 1,..., n, αν και µόνο αν είναι θετικά ορισμένος. T A LL όπου L κάτω 23 Σ ε λ ί δ α

Απόδειξη : Δείχνουμε το ζητούμενο κατασκευαστικά. Έστω A θετικά ορισμένος πίνακας, Θέτουμε : T A LL Από όπου λαμβάνουμε : i i1 aij l l l l l l, j 1..., n k1 ik jk k1 ik jk ii ji Υπολογίζουμε αρχικά τα διαγώνια στοιχεία του L, βρίσκουμε l11 a11, αφού όπως είδαμε για θετικά ορισμένους πίνακες είναι: a 11 0 και i 1 ik k1 2 2 lii a l, i 2..., n ii Μπορούμε να δείξουμε τώρα µε επαγωγή ως προς i, ότι i 1 2 k1 a ii l ik εκμεταλλευόμενοι το ότι ο Α είναι θετικά ορισμένος και συμμετρικός (άσκηση ).Άρα 0, i=1,,n i 1 k1 2 l ii aij lik i=1,, n Στη συνέχεια υπολογίζουμε διαδοχικά τα υπόλοιπα στοιχειά των στηλών του L και βρίσκουμε: 1 1 n l jk liku jk, j i 1,..., n lii k1 Αντίστροφα, αν υπάρχει κάτω τριγωνικός πίνακας L που ικανοποιεί T A LL µε 1ij 0, i 1,..., n τότε 0 T T T T T για A LL L L 0 T άρα ο Α είναι θετικά ορισμένος. Για τη λύση του συστήματος A=b, η μέθοδος Cholesky αρχικά υπολογίζει τον 24 Σ ε λ ί δ α

πίνακα διάσπασης L µε τις σχέσεις (III.5.8) και (III.5.9) και στη συνέχεις επιλύει εύκολα τα συστήματα L T y b και L T y µε εμπρός και πίσω αντικατάσταση αντίστοιχα. 25 Σ ε λ ί δ α

3. ΠΡΟΣΕΓΓΙΣΤΙΚΗ ΟΛΟΚΛΗΡΩΣΗ Είναι γνωστό ότι για πολλά ορισμένα ολοκληρώματα δεν υπάρχουν αναλυτικές μέθοδοι ακριβούς επίλυσής τους. Έτσι λοιπόν έχουν αναπτυχθεί προσεγγιστικές μέθοδοι υπολογισµού τέτοιων ολοκληρωμάτων. Στο Κεφάλαιο αυτό αναπτύσσουμε τις μεθόδους τραπεζίου και Simpson, δίνοντας έµφαση στον τρόπο προσέγγισης τέτοιων προβλημάτων. 3.1 Η µέθοδος τραπεζίου Με τη μέθοδο αυτή προσεγγίζουμε την τιµή του ολοκληρώµατος µιας συνεχούς συνάρτησης f σ ένα κλειστό και φραγμένο διάστηµα [α,b] µε χρήση εμβαδών τραπεζίων που προκύπτουν από την προσέγγιση της συνάρτησής µας από µία τεθλασμένη γραμμή. Για ευκολία υποθέτουµε ότι η f είναι θετική στο [α,b] όπως φαίνεται στο σχήµα 1. H διαδικασία που ακολουθούµε είναι η εξής: Έστω ₒ=α, 1,, N = b ₒ< 1 <..< N είναι ένας οµοιόµορφος διαμερισμός του [α,b], δηλαδή χωρίζουµε το [α,b] σε Ν ισομήκη υποδιαστήµατα. Τότε: i = ₒ + κ b a N, κ=0,.ν. Υπολογίζουμε τις τιµές f( i ), i= 0,...,N. 26 Σ ε λ ί δ α

27 Σ ε λ ί δ α Σχηματίζουμε τα διαδοχικά ευθύγραμμα µε άκρα τα f(ₒ), (f N ) οπότε σοφατίζεται µία τεθλασμένη γραµµή. Υπολογίζουμε τα εμβαδά των Ν-τραπεζίων που σχηματίζονται και έχουμε:... ) ( 1 b a E d f ) ( 2 ) ( ) (... ) ( 2 ) ( ) ( ) ( 2 ) ( ) ( 1 1 1 2 2 1 0 1 1 0 N N N N f f f f f f ) ( ) ( ) ( )... ( ) ( ) ( ) ( ) ( ) ( ( 2 1 1 3 2 2 1 1 0 N N N f f f f f f f f f N a b = ))) (... ) ( 2 ) ( ) ( ( 2 1 1 0 N N f f f f N a b = d f f f f N a b b a N k N k N ) ( )) ( 2 ) ( ) ( ( 2 1 1 0 Σφάλµα : Είναι γνωστό ότι αν προσεγγίσουµε µία συνεχή συνάρτηση f() σε ένα κλειστό διάστηµα [α,b] µε µία τεθλασμένη γραµµή, δηλαδή µε ένα πολυώνυµο 1 ου βαθμού ρ 1 (), τότε το σφάλμα είναι: f() p 1 () = f (ξ) ( α)( b) = f (ξ) ( α)(b ), ξ (α,b) 2 2 υπό την προϋπόθεση ότι η f είναι 2 φορές παραγωγίσιµη συνάρτηση.

28 Σ ε λ ί δ α Επομένως: d b a f d p f b a b a ) )( ( 2 ) "( ) ( ) ( 1, ) ( 12 ) "( 6 ) ( 2 ) ( " 3 3 a b f a b f άρα εάν e είναι το σφάλμα στην περίπτωση της μεθόδου τραπεζίου, έχουμε: e= 1 1 0 ) ( 2 ) ( 2 ) ( N k k N b a f f f N a b d f άρα e = ), (, ) ( 12 ) "(... ) ( 12 ) "( ) ( 12 ) "( 1 3 0 3 1 2 2 3 0 1 1 i i N f f f = ). "(... ) "( ( 12 ) ( 1 3 3 f f N a b Αν λοιπόν Μ= ], [ ma b a ],, [ : ) ( " b a f τότε e. 12 ) ( 12 ) ( ).. ( 12 ) ( 2 3 3 3 3 3 M N a b MN N a b M M N a b

3.2 Μέθοδος Simpson: Με τη μέθοδο αυτή προσεγγίζουμε την τιμή του b f ( ) d a μιας συνεχούς συνάρτησης σε ένα κλειστό και φραγμένο διάστημα [α,b] με χρήση εμβαδών παραβολών, οι οποίες προκύπτουν από την προσέγγιση της συνάρτησής μας σε στοιχειώδη υποδιαστήματα του [α,b] από πολυώνυμα 2ου βαθμού, δηλ. από παραβολές. Όπως θα δούμε παρακάτω το σφάλμα (για τον ίδιο αριθμό υποδιαιρέσεων του [α,b]) είναι καλύτερο σε σχέση με τη μέθοδο τραπεζίου. Υπάρχουν διάφορες παραλλαγές της μεθόδου αυτής. Για την καλύτερη κατανόηση της μεθόδου αναφέρουμε τη βασική της εκδοχή. Έστω ₒ=α, 1,, N = b ₒ< 1 <..< N είναι ένας οµοιόµορφος διαμερισμός του [α,b], δηλαδή χωρίζουµε το [α,b] σε Ν ισομήκη υποδιαστήµατα. Τότε: i = ₒ + κ b a N, κ=0,.ν. Υπολογίζουμε τις τιµές f( i ), i= 0,...,N. Σχηματίζουμε τις διαδοχικές παραβολές που διέρχονται από τα σημεία f ( i ), f ( i 1), f ( i2 ), i=0,...,n/2 οπότε πρέπει Ν = ζυγός. Σχήμα 2 29 Σ ε λ ί δ α

Υπολογίζουμε τα εμβαδά των Ν/2-παραβολών που σχηματίζονται και έχουμε: b a f ( ) d E 1... E 2 30 Σ ε λ ί δ α

4. ΠΟΛΥΩΝΥΜΙΚΗ ΠΑΡΕΜΒΟΛΗ Έστω f πραγματική συνάρτηση, της οποίας είναι γνωστές µόνον οι τιµές f( 1 ) σε n+1 σηµεία 1, i=0,..., n = του πεδίου ορισµού της. Το πρόβληµα εύρεσης µιας συνάρτησης φ, (από ένα ορισµένο σύνολο συναρτήσεων Σ), έτσι ώστε η φ να προσδιορίζεται µόνον από τις τιµές f( 1 ) και να πληροί τις συνθήκες φ ( 1 )=f ( 1 ), i= 0,..., n καλείται παρεµβολή. Αν το σύνολο Σ είναι αρκετά «πλούσιο», τότε η τιµή της συνάρτησης φ() για i µπορεί να θεωρηθεί ότι προσεγγίζει την τιµή f(). Σχήμα 5: Πολυωνυμική παρεμβολή 4.1 Πολυώνυμο LAGRANGE: δοθείσης μιας n-άδας ζευγών σημείων ( i, y i ), όπου τα _i = i+1 i δεν είναι κατ ανάγκη ίσα, θα υπολογίσουμε ένα πολυώνυμο n 1 βαθμού, που θα διέρχεται από αυτά τα n σημεία. Το πολυώνυμο αυτό ονομάζεται συμπτωτικό πολυώνυμο. Έστω n+1 σημεία του επιπέδου (i,yi), i = 0,,n, τότε το πολυώνυμο Lagrange που διέρχεται από τα σημεία (i,yi) έχει τη μορφή: p n n ) y i L i i0 ( (), 31 Σ ε λ ί δ α

32 Σ ε λ ί δ α όπου τα πολυώνυμα: () L i n i n i i i i i i n i i 0,..., ) )...( )( )...( ( ) )...( )( )...( ( 1 1 0 1 1 0 καλούνται συντελεστές Lagrange. 4.2 Μέθοδος Πεπερασμένης Διαφοράς Η μέθοδος πεπερασμένων διαφορών προϋπήρξε των υπολοίπων μεθόδων και συνίσταται στην αντικατάσταση κάθε παραγώγου της μερικής διαφορικής εξίσωσης με προσεγγιστικά πηλίκα διαφορών - βάση του θεωρήματος Taylor, έτσι ώστε το πρόβλημα να μεταβληθεί σε ένα σύστημα αλγεβρικών εξισώσεων. Τα πλεονεκτήματα αυτής της μεθόδου είναι ότι μπορεί να εφαρμοστεί σε προβλήματα μεταβλητών συντελεστών ή μη γραμμικά προβλήματα και με μικρή υπολογιστική προσπάθεια μπορεί να παρέχει ποσοτικές προσεγγίσεις. Τα μειονεκτήματα της μεθόδου είναι αφενός πως δεν παρέχει ποιοτικές πληροφορίες για τη λύση και είναι δύσκολο να εκτιμήσουμε την ασυμφωνία ανάμεσα σε αυτή τη προσέγγιση και την ακριβή λύση. Αν u (,t) μια συνάρτηση δύο ανεξάρτητων μεταβλητών, η πρώτη μερική παράγωγός της ως προς το και το t αντίστοιχα ορίζεται ως: h t u t h u t u h ), ( ), ( lim ), ( 0 k t u k t u t t u k ), ( ), ( lim ), ( 0 Μπορούμε να προσεγγίσουμε τις παραπάνω μερικές παραγώγους με τα πηλίκα διαφορών αντίστοιχα: h t u t h u t u ), ( ), ( ), (

u u(, t k) u(, t (, t) ) t k Η απόκλιση μεταξύ του πηλίκου διαφοράς και της παραγώγου που προσεγγίζει, ονομάζεται σφάλμα προσέγγισης και εξαρτάται από τη συμπεριφορά της u στο σημείο (,t) και τις τιμές των h και k. Η ανάλυση του σφάλματος προσέγγισης βασίζεται στο θεώρημα του Taylor. 4.3 Μέθοδος Ελαχίστων Τετραγώνων Σ αυτό το κεφάλαιο θα μελετήσουµε μεθόδους για την ανάλυση µεγάλου πλήθους δεδομένων. Πιο συγκεκριµένα, θα προσπαθήσουµε να εκτιµήσουµε τη συνολική συµπεριφορά µιας n-αδας σηµείων (i, yi). Οι τεχνικές που θα εξετάσουµε είναι η μέθοδος των ελαχίστων τετραγώνων. Οταν θέλουµε να µελετήσουµε µεγάλο αριθµό σηµείων, τότε η προσέγγιση τους µε συµπτωτικό πολυώνυµο είναι και δύσκολη αλλά και άνευ νοήµατος τις περισσότερες ϕορές. Σ αυτή την περίπτωση προσπαθούµε να βρούµε ένα πολυώνυµο P() ή γενικότερα µια συνάρτηση f() µε συμπεριφορά παρόµοια µε αυτή της οµάδας των σηµείων που διαθέτουµε και για την οποία η διαφορά y f i ( i ) να είναι ελάχιστη. Στην πράξη, ζητάµε την ελαχιστοποίηση του αθροίσματος: n s [ y i0 P( i i )] 2 Η διαδικασία εύρεσης της παραβολής ελαχίστων τετραγώνων είναι παρόµοια µε αυτή της ευθείας ελαχίστων τετραγώνων. Εποµένως, ελαχιστοποιούµε το άθροισα: s n i0 [ y i a 2 i b i c] 2 33 Σ ε λ ί δ α

34 Σ ε λ ί δ α Για την ύπαρξη ακροτάτου: 0 e S b S a S Στο σύστημα που καταλήγουμε είναι το εξής: 2 1 0 4 3 2 3 2 1 2 1 0 u u u a b c s s s s s s s s s Όπου:, 3 3 i s, 4 4 i s και, 2 3 i u Στη γενική περίπτωση πολυωνύµου ελαχίστων τετραγώνων βαθµού n 1 οι συντελεστές του πολυωνύµου προσδιορίζονται από τη λύση του παρακάτω συστήματος. n n n n n n n u u u a a s s s s s s s : : : :........................ 1 0 1 0 2 1 1 1 0 Όπου i k i k k i k y u s Και το πολυώνυμο έχει ως εξής: P()=.... 1 0 n a n

5. ΑΠΟ ΤΗΝ ΘΕΩΡΙΑ ΣΤΗΝ ΠΡΑΞΗ ΔΙΑΔΙΚΤΥΑΚΟ ΛΟΓΙΣΜΙΚΟ ΑΡΙΘΜΗΤΙΚΗΣ ΑΝΑΛΥΣΗΣ Επισκεφτείτε στο διαδίκτυο την σελίδα, από την οποία μπορείτε να κατεβάσετε την εφαρμογή: http:numanalysi.blogspot.gr/ 35 Σ ε λ ί δ α

Στην αρχική καρτέλα του λογισμικού, όπως φαίνεται στην εικόνα 5.1, υπάρχουν πέντε κουμπιά με τις εξής επιλογές: Επίλυση Εξισώσεων (βλπ. εικόνα 5.2) Επίλυση Γραμμικών Συστημάτων (βλπ. εικόνα 5.3) Επίλυση Ολοκληρωμάτων (βλπ. εικόνα 5.4) Συμπτωτική Παρεμβολή (βλπ. εικόνα 5.5) Ασυμπτωτική Παρεμβολή (βλπ. εικόνα 5.6) Εικόνα 5.1 Αρχική Καρτέλα Λογισμικού 36 Σ ε λ ί δ α

Σε αυτό το σημείο θα πρέπει να κάνουμε μια εκτενεί αναφορά σε ένα από τα κύρια εργαλεία μας, την χρήση της συνάρτησης Parser. Ουσιαστικά πρόκειται για μια βιβλιοθήκη της C + + η οποία προσφέρει μια κλάση η που μπορεί να χρησιμοποιηθεί για να αναλύσει και να υπολογίσει μια μαθηματική συνάρτηση από ένα string δηλαδή μια συμβολοσειρά. Η σύνταξη της συνάρτησης αυτής είναι παρόμοια με τα μαθηματικά, γραμμένη όμως σε C/ C++. Η συνάρτηση στη συνέχεια, μπορεί να υπολογίζει κάθε φορά τις διαφορετικές τιμές των μεταβλητών. Για παράδειγμα, μια συνάρτηση της μορφής " sin(sqrt ( * + y * y)) "μπορεί να αναλυθεί από μια σειρά (είτε std::string ή ένα C-style string) και στη συνέχεια υπολογίζει τις διαφορετικές τιμές των και y. Αυτή η βιβλιοθήκη χρησιμοποιείται για συναρτήσεις που δίνονται είτε από τον χρήστη, ή σε ορισμένες περιπτώσεις, χρησιμοποιήται από γλώσσες scripting.για την αυτόματη μεταφράση μαθηματικών εκφράσεων. Αυτή η βιβλιοθήκη στοχεύει στην ταχύτερη τεχνολογία και υπολογισμό, διατηρώντας παράλληλα την ικανότητα φορητότητας. Η βιβλιοθήκη θα πρέπει να είναι συμβατή και να συνεργάζεται με οποιοδήποτε πρότυπο C + + compiler. Υποστηρίζει διαφορετικούς αριθμητικούς τύπους όπως : double, float, long double, long int, std::comple(των double,float και long double), πολλαπλής ακρίβειας αριθμούς κινητής υποδιαστολής, χρησιμοποιώντας την βιβλιοθήκη MPFR και ακέραιους αυθαίρετης ακρίβειας, χρησιμοποιώντας τη βιβλιοθήκη GMP. (Σημειώνεται ότι δεν είναι απαραίτητο αυτές τις δύο βιβλιοθήκες να υπάρχουν στο σύστημα, προκειμένου να χρησιμοποιούν την συνάρτηση Parser.) Αυτή η βιβλιοθήκη διανέμεται υπό την Lesser General Public License (LGPL). 37 Σ ε λ ί δ α

Η κάθε μία από αυτές τις επιλογές, παραπέμπει σε μια νέα καρτέλα όπως φαίνεται παρακάτω. Εικόνα 5.2 Επίλυση Εξισώσεων Στην καρτέλα Επίλυσης Εξισώσεων, όπως και στις υπόλοιπες επιλογές, υπάρχουν τα ειδικά πεδία στα οποία ο χρήστης εισάγει την προς επίλυση συνάρτηση με την βοήθεια της συνάρτησεις Parser.Επίσης υπάρχουν τα κουμπιά με την μέθοδο επίλυσης που θα επιλέξει και πάλι ο χρήστης, καθώς και τα βοηθητικά σχόλια στο κάτω μέρος τις καρτέλας. Τέλος στην επιλογή File μπορούμε να επιλέξουμε eit για έξοδο από την εφαρμογή και από την επιλογή Help, το About, το οποίο περιέχει πληροφορίες για τις δημιουργούς του Λογισμικού. 38 Σ ε λ ί δ α

Εικόνα 5.3 Επίλυση Γραμμικών Συστημάτων Στην καρτέλα Επίλυσης Γραμμικών Συστημάτων, ισχύει ότι προείπαμε με την διαφορά ότι αφού ο χρήστης επιλέξει τις διαστάσεις του πίνακα Α, υπάρχουν ειδικά πεδία στα οποία εισάγει τις επιθυμητές τιμές και στην συνέχεια επιλέγει μεταξύ των επτά επιλογών μεθόδου επίλυσης.η λύση δίνεται στο πεδίο «Απάντηση» στο κάτω μέρος της καρτέλας που μέχρι εκείνη τη στιγμή παρέχει χρήσιμες πληροφορίες για τον χρήστη, όπως ότι ο πίνακας Α πρέπει να είναι τετραγωνικός, στις μεθόδους Jacobi, LLt, LDLt και Gauss-Siedel ο πίνακας Α πρέπει να είναι συμμετρικός ως προς την κύρια διαγώνιο και τέλος στις μεθόδους Jacobi, LLt, και Gauss-Siedel ο πίνακας Α πρέπει να είναι θετικά ορισμένος και αμείωτος ως προς την τάξη του. 39 Σ ε λ ί δ α

Εικόνα 5.4 Επίλυση Ολοκληρωμάτων Στην καρτέλα Επίλυση Ολοκληρωμάτων ισχύει ότι και στην καρτέλα επίλυση εξισώσεων με την προσθήκη τριών ακόμα πεδίων, τα δύο άκρα του ολοκληρώματος καθώς και το πεδίο «βήμα» που απαιτείται για την επίλυση Bolzano, αντίστοιχα. Υπάρχει το πεδίο εισαγωγής συνάρτηση, τα κουμπιά με την μέθοδο επίλυσης, καθώς επίσης και βοηθητικά σχόλια.όπως και σε όλες τις καρτέλες στην επιλογή File, μπορούμε να επιλέξουμε eit για έξοδο από την εφαρμογή και από την επιλογή Help, το About, το οποίο περιέχει πληροφορίες για τις δημιουργούς του Λογισμικού. 40 Σ ε λ ί δ α

Εικόνα 5.5 Συμπτωτική Παρεμβολή Στις καρτέλες Συμπτωτικής και Ασυμπτωτικής Παρεμβολής (βλπ.εικ.5.6), βλέπουμε δυο πίνακες Χ και Υ οι οποίοι δέχονται ζεύγη αριθμών. Το κάθε ζεύγος πρέπει να συμπληρώνεται στην ίδια γραμμή. Αν υπάρχει κάποιο κενό ή δεν υπάρχει αριθμός τότε εκείνο το ζεύγος δεν λαμβάνεται υπόψη. Στο πεδίο «σημείο πρόβλεψης», εάν δεν υπάρχει αριθμός, θεωρείται ότι υπάρχει το μηδέν. Όπως σε όλες τις καρτέλες που αναλύσαμε μέχρι τώρα, έτσι και εδώ,υπάρχουν τα κουμπιά με τις μεθόδους επίλυσης,τα βοηθητικά σχόλια και οι επιλογές File και Help. 41 Σ ε λ ί δ α

Εικόνα 5.6 Ασυμπτωτική Παρεμβολή 42 Σ ε λ ί δ α

Εικόνα 5.7 Ασυμπτωτική Παρεμβολή Σε όλες τις καρτέλες στην επιλογή File, υπάρχει το eit για έξοδο από την καρτέλα και από την επιλογή Help, το About, το οποίο περιέχει πληροφορίες για τις δημιουργούς του Λογισμικού (βλπ.εικ.5.7). 43 Σ ε λ ί δ α

6. ΠΑΡΑΡΤΗΜΑ About.h #pragma once namespace diadiktiako_logismiko_arithm using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; / <summary> / Summary for About / </summary> public ref class About : public System::Windows::Forms::Form public: About(void) InitializeComponent(); TODO: Add the constructor code here protected: / <summary> / Clean up any resources being used. / </summary> ~About() if (components) delete components; private: System::Windows::Forms::Label^ label1; protected: private: System::Windows::Forms::Label^ label2; private: System::Windows::Forms::Label^ label3; private: System::Windows::Forms::Label^ label4; private: System::Windows::Forms::Label^ label5; private: System::Windows::Forms::Label^ label6; private: System::Windows::Forms::Label^ label7; private: System::Windows::Forms::Label^ label8; private: System::Windows::Forms::Label^ label9; private: / <summary> / Required designer variable. / </summary> 44 Σ ε λ ί δ α

System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code / <summary> / Required method for Designer support - do not modify / the contents of this method with the code editor. / </summary> void InitializeComponent(void) this->label1 = (gcnew System::Windows::Forms::Label()); this->label2 = (gcnew System::Windows::Forms::Label()); this->label3 = (gcnew System::Windows::Forms::Label()); this->label4 = (gcnew System::Windows::Forms::Label()); this->label5 = (gcnew System::Windows::Forms::Label()); this->label6 = (gcnew System::Windows::Forms::Label()); this->label7 = (gcnew System::Windows::Forms::Label()); this->label8 = (gcnew System::Windows::Forms::Label()); this->label9 = (gcnew System::Windows::Forms::Label()); this->suspendlayout(); label1 this->label1->autosize = true; this->label1->font = (gcnew System::Drawing::Font(L"Arial", 9.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, static_cast<system::byte>(161))); this->label1->location = System::Drawing::Point(84, 9); this->label1->name = L"label1"; this->label1->size = System::Drawing::Size(302, 16); this->label1->tabinde = 0; this->label1->tet = L"Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης"; label2 this->label2->autosize = true; this->label2->location = System::Drawing::Point(12, 40); this->label2->name = L"label2"; this->label2->size = System::Drawing::Size(184, 26); this->label2->tabinde = 1; this->label2->tet = L"Δημιουργήθηκε από τις φοιτήτριες:\r\n\r\n"; this->label2->click += gcnew System::EventHandler(this, &About::label2_Click); label3 this->label3->autosize = true; this->label3->location = System::Drawing::Point(202, 192); this->label3->name = L"label3"; this->label3->size = System::Drawing::Size(124, 13); this->label3->tabinde = 2; this->label3->tet = L" Δρ.Λαυράνος Χρήστος"; label4 this->label4->autosize = true; this->label4->location = System::Drawing::Point(202, 40); this->label4->name = L"label4"; this->label4->size = System::Drawing::Size(153, 26); this->label4->tabinde = 3; 45 Σ ε λ ί δ α

this->label4->tet = L"Κομποθανάση Δ. Νίκη \r\nπαπαδημοπούλου Μ. Αντωνία\r\n"; this->label4->click += gcnew System::EventHandler(this, &About::label4_Click); label5 this->label5->autosize = true; this->label5->location = System::Drawing::Point(12, 93); this->label5->name = L"label5"; this->label5->size = System::Drawing::Size(148, 26); this->label5->tabinde = 4; this->label5->tet = L"Τίτλος Πτυχιακής Εργασίας:\r\n\r\n"; label6 this->label6->autosize = true; this->label6->location = System::Drawing::Point(202, 93); this->label6->name = L"label6"; this->label6->size = System::Drawing::Size(236, 13); this->label6->tabinde = 5; this->label6->tet = L"Διαδικτυακό Λογισμικό Αριθμητικής Ανάλυσης\r\n"; label7 this->label7->autosize = true; this->label7->location = System::Drawing::Point(12, 139); this->label7->name = L"label7"; this->label7->size = System::Drawing::Size(165, 26); this->label7->tabinde = 6; this->label7->tet = L"Τμήμα και Εκπαιδευτικό Ίδρυμα:\r\n\r\n"; this->label7->click += gcnew System::EventHandler(this, &About::label7_Click); label8 this->label8->autosize = true; this->label8->location = System::Drawing::Point(202, 139); this->label8->name = L"label8"; this->label8->size = System::Drawing::Size(175, 26); this->label8->tabinde = 7; this->label8->tet = L" Βιομηχανική Πληροφορκή\r\nΤεχνολογικού Ιδρύματος Καβάλας\r\n"; label9 this->label9->autosize = true; this->label9->location = System::Drawing::Point(12, 192); this->label9->name = L"label9"; this->label9->size = System::Drawing::Size(118, 13); this->label9->tabinde = 8; this->label9->tet = L"Επιβλέπον Καθηγητής:"; About this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(443, 227); this->controls->add(this->label9); 46 Σ ε λ ί δ α

this->controls->add(this->label8); this->controls->add(this->label7); this->controls->add(this->label6); this->controls->add(this->label5); this->controls->add(this->label4); this->controls->add(this->label3); this->controls->add(this->label2); this->controls->add(this->label1); this->name = L"About"; this->tet = L"About"; this->load += gcnew System::EventHandler(this, &About::About_Load); this->resumelayout(false); this->performlayout(); #pragma endregion private: System::Void label2_click(system::object^ sender, System::EventArgs^ e) private: System::Void About_Load(System::Object^ sender, System::EventArgs^ e) private: System::Void label4_click(system::object^ sender, System::EventArgs^ e) private: System::Void label7_click(system::object^ sender, System::EventArgs^ e) ; Asumptwtiki_paremvolh.h #pragma once #using <Microsoft.VisualBasic.dll> #include <iostream> #include <cmath> #include <string> #include <stdlib.h> #include "About.h" namespace diadiktiako_logismiko_arithm 47 Σ ε λ ί δ α using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; / <summary> / Summary for Asumptwtiki_paremvolh / </summary> public ref class Asumptwtiki_paremvolh : public System::Windows::Forms::Form public: Asumptwtiki_paremvolh(void)

InitializeComponent(); TODO: Add the constructor code here protected: / <summary> / Clean up any resources being used. / </summary> ~Asumptwtiki_paremvolh() if (components) delete components; private: System::Windows::Forms::Label^ label2; protected: private: System::Windows::Forms::Label^ label1 private: System::Windows::Forms::TetBo^ tetbo2; private: System::Windows::Forms::MenuStrip^ menustrip1; private: System::Windows::Forms::ToolStripMenuItem^ filetoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ eittoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ abouttoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ abouttoolstripmenuitem1; private: System::Windows::Forms::TetBo^ tetbo1; private: System::Windows::Forms::Label^ label7; private: System::Windows::Forms::TetBo^ tetbo21; private: System::Windows::Forms::Button^ least_squares_button; private: System::Windows::Forms::TetBo^ tetbo22; private: System::Windows::Forms::Label^ label3; private: / <summary> / Required designer variable. / </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code / <summary> / Required method for Designer support - do not modify / the contents of this method with the code editor. / </summary> void InitializeComponent(void) System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Asumptwtiki_paremvolh::typeid)); this->label2 = (gcnew System::Windows::Forms::Label()); this->label1 = (gcnew System::Windows::Forms::Label()); this->tetbo2 = (gcnew System::Windows::Forms::TetBo()); this->menustrip1 = (gcnew System::Windows::Forms::MenuStrip()); this->filetoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); 48 Σ ε λ ί δ α

this->eittoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->abouttoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->abouttoolstripmenuitem1 = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->tetbo1 = (gcnew System::Windows::Forms::TetBo()); this->label7 = (gcnew System::Windows::Forms::Label()); this->tetbo21 = (gcnew System::Windows::Forms::TetBo()); this->least_squares_button = (gcnew System::Windows::Forms::Button()); this->tetbo22 = (gcnew System::Windows::Forms::TetBo()); this->label3 = (gcnew System::Windows::Forms::Label()); this->menustrip1->suspendlayout(); this->suspendlayout(); label2 this->label2->autosize = true; this->label2->location = System::Drawing::Point(212, 31); this->label2->name = L"label2"; this->label2->size = System::Drawing::Size(15, 13); this->label2->tabinde = 96; this->label2->tet = L"Υ"; label1 this->label1->autosize = true; this->label1->location = System::Drawing::Point(105, 31); this->label1->name = L"label1"; this->label1->size = System::Drawing::Size(14, 13); this->label1->tabinde = 95; this->label1->tet = L"Χ"; tetbo2 this->tetbo2->location = System::Drawing::Point(189, 53); this->tetbo2->multiline = true; this->tetbo2->name = L"tetBo2"; this->tetbo2->size = System::Drawing::Size(63, 257); this->tetbo2->tabinde = 76; menustrip1 this->menustrip1->items->addrange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) this->filetoolstripmenuitem, this->abouttoolstripmenuitem); this->menustrip1->location = System::Drawing::Point(0, 0); this->menustrip1->name = L"menuStrip1"; this->menustrip1->size = System::Drawing::Size(333, 24); this->menustrip1->tabinde = 75; this->menustrip1->tet = L"menuStrip1"; filetoolstripmenuitem this->filetoolstripmenuitem->dropdownitems->addrange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) this->eittoolstripmenuitem); this->filetoolstripmenuitem->name = L"fileToolStripMenuItem"; this->filetoolstripmenuitem->size = System::Drawing::Size(37, 20); this->filetoolstripmenuitem->tet = L"File"; 49 Σ ε λ ί δ α

eittoolstripmenuitem this->eittoolstripmenuitem->name = L"eitToolStripMenuItem"; this->eittoolstripmenuitem->size = System::Drawing::Size(92, 22); this->eittoolstripmenuitem->tet = L"Eit"; this->eittoolstripmenuitem->click += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::eitToolStripMenuItem_Click); abouttoolstripmenuitem this->abouttoolstripmenuitem->dropdownitems->addrange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) this- >abouttoolstripmenuitem1); this->abouttoolstripmenuitem->name = L"aboutToolStripMenuItem"; this->abouttoolstripmenuitem->size = System::Drawing::Size(44, 20); this->abouttoolstripmenuitem->tet = L"Help"; abouttoolstripmenuitem1 this->abouttoolstripmenuitem1->name = L"aboutToolStripMenuItem1"; this->abouttoolstripmenuitem1->size = System::Drawing::Size(107, 22); this->abouttoolstripmenuitem1->tet = L"About"; this->abouttoolstripmenuitem1->click += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::aboutToolStripMenuItem1_Click); tetbo1 this->tetbo1->location = System::Drawing::Point(80, 53); this->tetbo1->multiline = true; this->tetbo1->name = L"tetBo1"; this->tetbo1->size = System::Drawing::Size(63, 257); this->tetbo1->tabinde = 74; this->tetbo1->tetchanged += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::tetBo1_TetChanged); label7 this->label7->autosize = true; this->label7->location = System::Drawing::Point(109, 396); this->label7->name = L"label7"; this->label7->size = System::Drawing::Size(115, 13); this->label7->tabinde = 98; this->label7->tet = L"Το αποτέλεσμα είναι:"; tetbo21 this->tetbo21->location = System::Drawing::Point(8, 420); this->tetbo21->multiline = true; this->tetbo21->name = L"tetBo21"; this->tetbo21->readonly = true; this->tetbo21->size = System::Drawing::Size(318, 112); this->tetbo21->tabinde = 97; this->tetbo21->tet = resources->getstring(l"tetbo21.tet"); this->tetbo21->tetchanged += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::tetBo21_TetChanged); least_squares_button 50 Σ ε λ ί δ α

this->least_squares_button->location = System::Drawing::Point(63, 356); this->least_squares_button->name = L"least_squares_button"; this->least_squares_button->size = System::Drawing::Size(205, 23); this->least_squares_button->tabinde = 99; this->least_squares_button->tet = L"Εκτέλεση ελαχίστων τετραγώνων"; this->least_squares_button->usevisualstylebackcolor = true; this->least_squares_button->click += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::least_squares_button_Click); tetbo22 this->tetbo22->location = System::Drawing::Point(236, 323); this->tetbo22->name = L"tetBo22"; this->tetbo22->size = System::Drawing::Size(32, 20); this->tetbo22->tabinde = 100; label3 this->label3->autosize = true; this->label3->location = System::Drawing::Point(62, 326); this->label3->name = L"label3"; this->label3->size = System::Drawing::Size(168, 13); this->label3->tabinde = 101; this->label3->tet = L"Επιθυμητός βαθμός πολυωνύμου"; Asumptwtiki_paremvolh this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(333, 542); this->controls->add(this->label3); this->controls->add(this->tetbo22); this->controls->add(this->least_squares_button); this->controls->add(this->label7); this->controls->add(this->tetbo21); this->controls->add(this->label2); this->controls->add(this->label1); this->controls->add(this->tetbo2); this->controls->add(this->menustrip1); this->controls->add(this->tetbo1); this->name = L"Asumptwtiki_paremvolh"; this->tet = L"Asumptwtiki_paremvolh"; this->load += gcnew System::EventHandler(this, &Asumptwtiki_paremvolh::Asumptwtiki_paremvolh_Load); this->menustrip1->resumelayout(false); this->menustrip1->performlayout(); this->resumelayout(false); this->performlayout(); #pragma endregion private: System::Void least_squares_button_click(system::object^ sender, System::EventArgs^ e) Epilush methodou least squares 51 Σ ε λ ί δ α orismos metavlitwn double sum,temp;