MEM 253. Αριθμητική Λύση ΜΔΕ * * *

Σχετικά έγγραφα
MEM 253. Αριθμητική Λύση ΜΔΕ * * *

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

Πρόβλημα δύο σημείων. Κεφάλαιο Διακριτοποίηση

Σημειωματάριο Δευτέρας, 6 Νοε. 2017

ΜΑΣ 473: Μέθοδοι Πεπερασμένων Στοιχείων Χειμερινό Εξάμηνο 2017

6. Αριθμητική Ολοκλήρωση

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

Κεφάλαιο 0: Εισαγωγή

ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ. 1) Έστω η λογική συνάρτηση F = A' + Β'. D + B. C' + C. D' (όπου οι τόνοι δηλώνουν συμπληρώματα).

Πεπερασμένες διαφορές για την ελλειπτική εξίσωση στις δύο διαστάσεις

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

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

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

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

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1),

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

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

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

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

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

Σημειωματάριο Τετάρτης 29 Νοε. 2017

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

x,f με j 012,,,...,n x,x S x f S x είναι 3 ης τάξης οι δεύτερες παράγωγοί τους S x S x y y Μέθοδος κυβικών splines: Έστω ότι έχουμε τα δεδομένα

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

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

10.1 Υπολογίσιμες συναρτήσεις και αναδρομικά σύνολα

Τμήμα Μηχανικών Οικονομίας και Διοίκησης Εφαρμοσμένη Θεωρία Πινάκων. Quiz 3. Σύντομες Λύσεις

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

f(t) = (1 t)a + tb. f(n) =

Ομογενή Συστήματα Ορισμός Ενα σύστημα λέγεται ομογενές αν όλοι οι σταθεροί όροι του (δηλαδή οι όροι του δεξιού μέλους του συστήματος) είναι μηδέν.

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

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

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, , 3 ο ΕΞΑΜΗΝΟ ΑΠΑΝΤΗΣΕΙΣ ΕΡΓΑΣΙΑΣ #3: ΑΡΙΘΜΗΤΙΚΗ ΠΑΡΕΜΒΟΛΗ ΕΠΙΜΕΛΕΙΑ: Σ. Βαρούτης. x x

ΦΑΙΝΟΜΕΝΑ ΜΕΤΑΦΟΡΑΣ ΙΙ ΜΕΤΑΦΟΡΑ ΘΕΡΜΟΤΗΤΑΣ ΚΑΙ ΜΑΖΑΣ

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

Aριθμητική Ανάλυση, 4 ο Εξάμηνο Θ. Σ. Παπαθεοδώρου

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

Κεφάλαιο 3: Οι εκδοχές p και hp της ΜΠΣ στη 1- διάσταση

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

1 Επανάληψη εννοιών από τον Απειροστικό Λογισμό

Κεφάλαιο 4: Στοιχεία της εκδοχής hp της ΜΠΣ στις 2- διαστάσεις

ΑΝΑΛΥΣΗ 2. Μ. Παπαδημητράκης.

ΜΟΝΟΤΟΝΙΑ. Λυμένα Παραδείγματα. Παράδειγμα 1

Περιπτώσεις συνοριακών συνθηκών σε προβλήματα γεωτεχνικής μηχανικής

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

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

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

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

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

8 ΕΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΕΞΙΣΩΣΕΩΝ

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

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

Μέθοδος Ελαχίστων Τετραγώνων (για την προσαρμογή (ή λείανση) δεδομένων/μετρήσεων)

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

Αριθµητική Ανάλυση. ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ. 16 Ιανουαρίου 2015

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

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

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

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

Άσκηση εφαρμογής της μεθόδου Newton Raphson

Η μέθοδος των πεπερασμένων στοιχείων για το πρόβλημα δύο σημείων

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

ΜΕΘΟΔΟΣ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ


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

ΦΥΣ 145 Μαθηματικές Μέθοδοι στη Φυσική. Γράψτε το ονοματεπώνυμο και αριθμό ταυτότητάς σας στο πάνω μέρος της αυτής της σελίδας.

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

ΚΑΤΑΣΚΕΥΗ ΠΙΝΑΚΑ ΣΥΝΕΚΤΙΚΟΤΗΤΑΣ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ Ι. Γραμμικά τετραγωνικά στοιχεία Q4 Έστω πλέγμα ΝxΜ Έστω πλέγμα με ΝxM στοιχεία:

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΑΡΤΙΟΙ) Ασκησεις - Φυλλαδιο 5

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ ΙΙ (ΠΕΡΙΤΤΟΙ) Ασκησεις - Φυλλαδιο 5

ΚΕΦΑΛΑΙΟ 5 ΠΑΡΕΜΒΟΛΗ. Εστω f πραγµατική συνάρτηση, της οποίας είναι γνωστές µόνον οι τιµές f(x i ) σε n+1 σηµεία xi

Τυχαίοι αριθμοί ρίξε μια «ζαριά»

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

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς. Ολοκληρώματα.

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

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

Επίλυση ελλειπτικών διαφορικών εξισώσεων με πεπερασμένες διαφορές

ΑΝΑΛΥΣΗ 2 ΣΕ 37 ΜΑΘΗΜΑΤΑ

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

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

Μαθηµατικοί Υπολογισµοί στην R

j=1 x n (i) x s (i) < ε.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 6: Εξίσωση διάχυσης (συνέχεια)

Δομές Δεδομένων & Αλγόριθμοι

Υπολογιστική Νοημοσύνη. Μάθημα 13: Αναδρομικά Δίκτυα - Recurrent Networks

ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ Σημειώσεις Μαθήματος. Διάλεξη 10: Ολοκλήρωση Συνήθων Διαφορικών Εξισώσεων: Προβλήματα Συνοριακών Τιμών Μίας Διάστασης (1D)

a 11 a 1n b 1 a m1 a mn b n

Σχεδίαση και Ανάλυση Αλγορίθμων

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

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

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

p = p n, (2) website:

Σημειώσεις για το μάθημα Υπολογιστικές μέθοδοι πολύπλοκων συστημάτων

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

Transcript:

MEM 253 Αριθμητική Λύση ΜΔΕ * * * 1

Περιγράφουμε το πρόγραμμα fem.py για τη λύση του προβλήματος δύο σημείων (x) + q(x)u(x) = f (x), x [, ], u( ) = u( ) = 0, u x l x r x l x r με τη μέθοδο των πεπερασμένων στοιχείων. Συγκεκριμένα, ο κώδικας fem.py υπολογίζει τη λύση του μεταβολικού προβλήματος V h [, ] ( u, χ h ) + (q u h, χ) = (f, χ) χ V h, όπου είναι ο χώρος των συνεχών, κατά τμήματα γραμμικών συναρτήσεων πάνω από το x l x r. Με h συμβολίζουμε το μέγιστο μήκος των υποδιαστημάτων των διαμερισμών του [, ]. x l x r x l x r q(x) 0 x [, ] Υποθέτουμε ότι q, f C[, ] και για. x l x r 2

Χρησιμοποιούμε τη βιβλιοθήκη numpy για τη διαχείρηση πινάκων και διανυσμάτων, και τη βιβλιοθήκη matplotlib για την απεικόνιση της υπολογιστικής λύσης. import matplotlib.pyplot as plt import numpy as np import math import gaussquad as gq import tridsym as ts def q(x): return 1 def f(x): return x + 12*x**2 - x**4 xl = 0.0; xr = 1.0 Η συνάρτηση gaussquad στο αρχείο gaussquad.py υπολογίζει τους κόμβους και τα βάρη κατάλληλων κανόνων ολοκλήρωσης του Gauss. H συνάρτηση solve από το αρχείο tridsym.py επιλύει τριδιαγώνια συμμετρικά συστήματα εξισώσεων. 3

target = 0.01 eps = 8 * target**2 / (xr - xl) Ο κώδικας επιλέγει (επαναληπτικά) μια διαμέριση του διαστήματος να ισχύει u u h target, όπου target δοσμένη θετική σταθερά. Σύμφωνα με την εκτίμηση [ x l, x r ] έτσι ώστε αρκεί να εξασφαλίσουμε u u h 1 ( 2 2 N i=0 h 2 i r h 2 L 2 ( x i, x i+1 ) ) 1/2 4

N = 39; step = (xr - xl) / (N + 1); x = np.zeros(n+1); for j in range(n+1): x[j] = xl + j*step h = step*np.ones(n+1) e = np.zeros(n+1) m = np.zeros(n+1) Επιλέγουμε αρχικά έναν ομοιόμορφο διαμερισμό του [ x l, x r ] με N εσωτερικούς κόμβους και βήμα step. Για τις ανάγκες του κώδικα χρησιμοποιούμε το διάνυσμα x, για την αποθήκευση του αριστερού άκρου κάθε υποδιαστήματος ( x i, x i+1 ) της διαμέρισης το διάνυσμα h, για την αποθήκευση του μήκους κάθε υποδιαστήματος το διάνυσμα e, για την αποθήκευση των τοπικών σφαλμάτων r h L 2 ( x i, x i+1 ) και το διάνυσμα m, για να σημειώσουμε τα υππδιαστήματα στα οποία το τοπικό σφάλμα είναι μεγαλύτερο της σταθεράς eps. ( x i, x i+1 ) 5

d = np.zeros(n); c = np.zeros(n); b = np.zeros(n) nq, p, w = gq.gaussquad(4) Ο υπολογισμός της λύσης πεπερασμένων στοιχείων απιτεί τη λύση ενός γραμμικού συστήματος με πίνακα = (, ) + (q, ), 1 i, j N, A ij ϕ j ϕ i ϕ j ϕ i και δεξί μέλος b i = (f, ϕ i ), 1 i N. Ο πίνακας A είναι τριδιαγώνιος συμμετρικός. Υπολογίζουμε και αποθηκεύουμε στο διάνυσμα d τα διαγώνια στοιχεία A ii και τα στοιχεία κάτω από τη κύρια διαγώνιο στο διάνυσμα c. Τα στοιχεία του δεξιού μέλους αποθηκεύονται στο διάνυσμα b. {ϕ i } N i=1 V h Εδώ, φυσικά, είναι η συνηθισμένη βάση του χώρου. Η συνάρτηση gaussquad επιστρέφει, στα διανύσματα p και w τους κόμβους και βάρη ενός κανόνα ολοκλήρωσης Gauss με nq σημεία. 6

Το κυρίως μέρος του κώδικα fem.py βρίσκεται μέσα στην (αέναη) ανακύκλωση while True: στην οποία: Κατασκευάζεται ο πίνακας του συστήματος και το δεξί μέλος που αντιστοιχούν στην τρέχουσα διαμέριση του Υπολογίζεται η λύση πεπερασμένων στοιχείων και η εκτίμηση του σφάλματος Αν η εκτίμηση του σφάλματος είναι μικρότερη του target το πρόγραμμα τερματίζεται [ x l, x r ] Αναγνωρίζονται και σημειώνονται τα διαστήματα του διαμερισμού στα οποία ο τοπικός εκτιμητής του σφάλματος είναι μεγαλύτερος της ποσότητας eps Τα διαστήματα που σημειώθηκαν στο προηγούμενο βήμα εκλεπτύνονται εισάγοντας ένα καινούργιο κόμβο στο μέσο τους H διαδικασία επαναλαμβάνεται για τον καινούργιο διαμερισμό 7

Κατασκευή του πίνακα του συστήματος και του δεξιού μέλους με χρήση κανόνα αριθμητικής ολοκλήρωσης for j in range(n+1): xj = x[j]; hj = h[j]; sj = 1/hj; s1 = 0.0; s2 = 0.0; s3 = 0.0 for k in range(nq): qk = q(xj + hj*p[k]) s1 += w[k] * qk * (1 - p[k])**2 s2 += w[k] * qk * (1 - p[k])*p[k] s3 += w[k] * qk * p[k] *p[k] if j > 0: d[j-1] += hj * s1 + sj if j > and j < N: c[j-1] += hj * s2 - sj if j < N: d[j ] += hj * s3 + sj for j in range(n+1): xj = x[j]; hj = h[j]; s1 = 0.0; s2 = 0.0 for k in range(nq): fk = f(xj + hj*p[k]) s1 += w[k] * fk * (1 - p[k]) s2 += w[k] * fk * p[k] if j > 0: b[j-1] += hj * s1 if j < N: b[j ] += hj * s2 8

Υπολογισμός της λύσης πεπερασμένων στοιχείων και εκτίμηση του σφάλματος uh = ts.solve(c, d, b); error = 0.0 for j in range(n+1): xj = x[j]; hj = h[j]; s1 = 0.0 ul = 0; if j > 0: ul = uh[j-1] ur = 0; if j < N: ur = uh[j ] for k in range(nq): qk = q(xj + hj*p[k]) fk = f(xj + hj*p[k]) uk = ul * (1 - p[k]) + ur * p[k] s1 += w[k] * (qk * uk - fk)**2 e[j] = s1 * hj error += e[j] * hj**2 if math.sqrt(error/8) < target: break 9

Αναγνωρίζονται και σημειώνονται τα διαστήματα στα οποία το τοπικό σφάλμα είναι μεγαλύτερο του eps και εκλέπτυνση του διαμερισμού nref = 0 for j in range(n+1): m[j] = 0; if h[j] * math.sqrt(e[j]) > eps: m[j] = 1; nref += 1 newn = N + nref x = np.resize(x, newn+1) h = np.resize(h, newn+1) k = newn for j in range(n, -1, -1): if m[j] == 0: x[k] = x[j]; h[k] = h[j]; k -= 1 else: half = h[j] / 2; mid = x[j] + half x[k] = mid; h[k] = half; k -= 1 x[k] = x[j]; h[k] = half; k -= 1 N = newn c = np.resize(c, N); d = np.resize(d, N); b = np.resize(b, N) for j in range(n): c[j] = 0.0; d[j] = 0.0; b[j] = 0.0 e = np.resize(e, N+1); m = np.resize(m, N+1) for j in range(n+1): m[j] = 0 10

Το πρόγραμμα fem.py επιδέχεται πολλές επεκτάσεις: Υπολογισμός της λύσης πεπερασμένων στοιχείων της εξίσωσης (p(x) u (x)) + q(x)u(x) = f (x), x [ x l, x r ] για κάποια θετική συνάρτηση p(x). Άλλες συνοριακές συνθήκες, Neumann ή Robin, ή μεικτές συνοριακές συνθήκες. Ο κώδικας δεν "αδροποιεί" το διαμερισμό, δηλαδή να αφαιρεί κόμβους του διαμερισμού όταν το τοπικό σφάλμα είναι πολύ μικρό. Ο ενδιαφερόμενος αναγνώστης καλείται να δοκιμάσει την υλοποίηση κάποιων από τις παραπάνω πιθανές επεκτάσεις... 11