Ολοκλήρωση κατά...

5
Ολοκλήρωση κατά Gauss Ενώ στους τύπους Newton-Cotes χρησιμοποιούσαμε τις τιμές της συνάρτησης σε ισαπέχοντα σημεία, στους τύπους ολοκλήρωσης κατά Gauss τα σημεία xj και τα βάρη wj επιλέγονται, έτσι ώστε το Ε στον παρακάτω τύπο (5.14) να είναι μηδέν για ορισμένες ειδικές συναρτήσεις. = ! ! = ! ( ! ) ! !!! + Οι ειδικές συναρτήσεις f(x) για τις οποίες το Ε είναι μηδέν επιλέγονται συνήθως αλγεβρικά πολυώνυμα ή σε ειδικές περιπτώσεις τριγωνομετρικά ή εκθετικά πολυώνυμα. Επειδή ο αριθμός των αγνώστων wj και xj είναι 2(n+1), θα πρέπει να υπάρχει αντίστοιχος αριθμός εξισώσεων. Συνεπώς θα πρέπει να επιλέξουμε έναν αριθμό πολυωνύμων γραμμικώς ανεξάρτητων, έτσι ώστε να έχουμε 2(n+1) εξισώσεις. Για παράδειγμα, αν f(x)=xk, τότε τα wj και xj προσδιορίζονται με την απαίτηση ότι το Ε θα είναι ίσο με μηδέν για κάθε πολυώνυμο βαθμού μικρότερου ίσου του κ. Αν κ=3, τότε το Ε θα είναι μηδέν για f(x)=1, x, x2, x3 και θα έχουμε ! + ! = ! ! + ! ! = ! ! 2 ! ! ! + ! ! ! = ( ! ! ) 2 ! ! ! + ! ! ! = ( ! ! ) 2 Η μόνη δυσκολία εδώ είναι, ότι το σύστημα είναι μη γραμμικό. Aυτή η δυσκολία μπορεί εύκολα να ξεπεραστεί, αν για f(x) χρησιμοποιήσουμε ορθογώνια πολυώνυμα, των οποίων γνωρίζουμε τις ρίζες των. Αν για παράδειγμα έχουμε το ολοκλήρωμα (7.14) με = 1 και = 1 και χρησιμοποιήσουμε πολυώνυμα του Legendre έστω ! = 3 ! 1) που οι ρίζες του είναι x0=-3/3 και x1 = +3/3. Και αντικαταστήσουμε αυτές τις τιμές στο σύστημα (5.15), τότε θα λάβουμε w0=w1=1, oπότε το ολοκλήρωμα θα εκφρασθεί σαν = ! !! = ! ! ( ! ! ) (7.14) Γενικότερα η χρησιμοποίηση ορθογωνίων πολυωνύμων απαιτεί συγκεκριμένο διάστημα ολοκλήρωσης και προκειμένου για πολυώνυμα Legendre το διάστημα είναι [-1,1]. Αυτή η δυσκολία μπορεί να ξεπεραστεί με το μετασχηματισμό της μεταβλητής. Στη περίπτωση των πολυωνύμων Legendre ο μετασχηματισμός που γίνεται είναι: = 2 ( + ) και το αντίστοιχο ολοκλήρωμα μετασχηματίζεται = ! ! = 2 ( + + 2 ! !! ) Το πρόβλημα τώρα ανάγεται στην εύρεση των συντελεστών wj και των ριζών xj των πολυωνύμων Legendre για διάφορες τιμές του n. Βέβαια οι ρίζες xj είναι

Transcript of Ολοκλήρωση κατά...

Page 1: Ολοκλήρωση κατά Gaussraptis-telis.com/numer/sites/default/files/pdf/Gauss...γνωστές και κατά συνέπεια η εύρεση των συντελεστών

Ολοκλήρωση κατά Gauss Ενώ στους τύπους Newton-Cotes χρησιµοποιούσαµε τις τιµές της συνάρτησης σε ισαπέχοντα σηµεία, στους τύπους ολοκλήρωσης κατά Gauss τα σηµεία xj

και τα βάρη wj επιλέγονται, έτσι ώστε το Ε στον παρακάτω τύπο (5.14) να είναι µηδέν για ορισµένες ειδικές συναρτήσεις.

𝐼 = 𝑓 𝑥 𝑑𝑥!

!

= 𝑤!  𝑓(𝑥!)!

!!!

+ 𝐸

Οι ειδικές συναρτήσεις f(x) για τις οποίες το Ε είναι µηδέν επιλέγονται συνήθως αλγεβρικά πολυώνυµα ή σε ειδικές περιπτώσεις τριγωνοµετρικά ή εκθετικά πολυώνυµα. Επειδή ο αριθµός των αγνώστων wj και xj είναι 2(n+1), θα πρέπει να υπάρχει αντίστοιχος αριθµός εξισώσεων. Συνεπώς θα πρέπει να επιλέξουµε έναν αριθµό πολυωνύµων γραµµικώς ανεξάρτητων, έτσι ώστε να έχουµε 2(n+1) εξισώσεις. Για παράδειγµα, αν f(x)=xk, τότε τα wj και xj προσδιορίζονται µε την απαίτηση ότι το Ε θα είναι ίσο µε µηδέν για κάθε πολυώνυµο βαθµού µικρότερου ίσου του κ. Αν κ=3, τότε το Ε θα είναι µηδέν για f(x)=1, x, x2, x3 και θα έχουµε

𝑤! + 𝑤! = 𝑏 − 𝑎

𝑤!𝑥! + 𝑤!𝑥! =𝑏! − 𝑎!

2

𝑤!𝑥!! + 𝑤!𝑥!! =(𝑏! − 𝑎!)

2

𝑤!𝑥!! + 𝑤!𝑥!! =(𝑏! − 𝑎!)

2

Η µόνη δυσκολία εδώ είναι, ότι το σύστηµα είναι µη γραµµικό. Aυτή η δυσκολία µπορεί εύκολα να ξεπεραστεί, αν για f(x) χρησιµοποιήσουµε ορθογώνια πολυώνυµα, των οποίων γνωρίζουµε τις ρίζες των. Αν για παράδειγµα έχουµε το ολοκλήρωµα (7.14) µε 𝑎 = −1 και  𝑏 = 1 και χρησιµοποιήσουµε πολυώνυµα του Legendre έστω 𝑝! 𝑥 = 3𝑥! − 1) που οι ρίζες του είναι x0=-3/3 και x1 = +3/3. Και αντικαταστήσουµε αυτές τις τιµές στο σύστηµα (5.15), τότε θα λάβουµε w0=w1=1, oπότε το ολοκλήρωµα θα εκφρασθεί σαν

𝐼 = 𝑓 𝑥 𝑑𝑥!!! = 𝑓 − !

!𝑓( !

!) (7.14)

Γενικότερα η χρησιµοποίηση ορθογωνίων πολυωνύµων απαιτεί συγκεκριµένο διάστηµα ολοκλήρωσης και προκειµένου για πολυώνυµα Legendre το διάστηµα είναι [-1,1]. Αυτή η δυσκολία µπορεί να ξεπεραστεί µε το µετασχηµατισµό της µεταβλητής. Στη περίπτωση των πολυωνύµων Legendre ο µετασχηµατισµός που γίνεται είναι:

𝑦 =2𝑥 − (𝑎 + 𝑏)

𝑏 − 𝑎

και το αντίστοιχο ολοκλήρωµα µετασχηµατίζεται

𝐼 = 𝑓 𝑥 𝑑𝑥!

!

=𝑏 − 𝑎2

𝑓(𝑏 − 𝑎 𝑦 + 𝑏 + 𝑎

2

!

!!

)𝑑𝑦

Το πρόβληµα τώρα ανάγεται στην εύρεση των συντελεστών wj και των ριζών xj των πολυωνύµων Legendre για διάφορες τιµές του n. Βέβαια οι ρίζες xj είναι

Page 2: Ολοκλήρωση κατά Gaussraptis-telis.com/numer/sites/default/files/pdf/Gauss...γνωστές και κατά συνέπεια η εύρεση των συντελεστών

γνωστές και κατά συνέπεια η εύρεση των συντελεστών wj είναι λύσεις γραµµικού συστήµατος. Στον πίνακα 5.3 υπάρχουν οι τιµές των ριζών και των αντίστοιχων συντελεστών για n=4,8,32,48. Στον πίνακα 5.3 δεν αναγράφονται όλες οι τιµές των xj και wj γιατί λαµβάνονται υπόψη οι παρακάτω σχέσεις

𝑥!!! = −𝑥! ,      𝑤!!! = 𝑤!        ό𝜋𝜊𝜐    𝑗 = 0,1,… , 𝑖𝑛𝑡𝑛2  𝜇𝜀  𝑗 = 𝑛 − 1

Ρίζες και βάρη των πολυωνύµων Legendre

 𝑥! 𝑤!

n=4

.339981043584856 .652145154862456

.861136311594053 .347854845137454

n=8

.183434642495650 .362683783378632

.525532409916239 .313706645877887

.796666477413627 .222381034453374

.960289856497536 .101228536290376

n=32

.0950125098376374 .1894506104550685

.2816035507792589 .1826034150449236

.4580167776572274 .1691565193950025

.6178762444026437 .1495959888165767

.7554044083550030 .1246289712555339

.8656312033878317 .0951585116824928

.9445750230732326 .0622535239386479

.9894009349916499 .0271524594117541

.0483076656877383 .0965400885147278

.1444719615827965 .0956387200792749

.2392873622521371 .0938443990808046

.3318686022821277 .0911738786957639

Page 3: Ολοκλήρωση κατά Gaussraptis-telis.com/numer/sites/default/files/pdf/Gauss...γνωστές και κατά συνέπεια η εύρεση των συντελεστών

.4213512761306353 .0876520930044038

.5068999089322294 .0833119242269468

.5877157272407623 .0781938957870703

.6630442669302152 .0723457941088485

.7321821187402897 .0658222227763618

.7944837959679424 .0586840934785355

.8493676137325700 .0509980592623762

.8963211557669521 .0428358980222266

.9349060759377397 .0342738629130214

.9647622555875064 .0253920653092621

.9856115115452683 .0162743947309057

.9972638618494816 .0070186100094701

n=48

.0323801790628694 .0647376968126839

.0970046992094627 .0644661644359501

.1612223560688917 .0639242385846482

.2247637903946891 .0631141922962540

.2873624873554556 .0620394231598927

.3487558862921607 .0607044391658939

.4086864819907167 .0591148396983956

.4669029047509584 .0572772921004032

.5231609747222330 .0551995036999842

.5772247260839727 .0528901894851937

.6288673967765136 .0503590355538545

.6778723796326639 .0476166584924905

.7240341309238147 .0446745608566943

.7671590325157403 .0415450829434647

.8070662040294426 .0382413510658307

.8435882616243935 .0347772225647704

Page 4: Ολοκλήρωση κατά Gaussraptis-telis.com/numer/sites/default/files/pdf/Gauss...γνωστές και κατά συνέπεια η εύρεση των συντελεστών

.8765720202742479 .0311672278327981

.9058791367155697 .0274265097083569

.9313866907065543 .0235707608393244

.9529877031604309 .0196161604573555

.9705915925462472 .0155793157229438

.9841245837228269 .0114772345792346

.9935301722663508 .0073275539012763

.9987710072524261 .0031533460523058

ΠΡΟΓΡΑΜΜΑ (Απλή µέθοδος)

Το πρόγραµµα αυτό υπολογίζει ένα ολοκλήρωµα µε πεπερασµένα άκρα ολοκλήρωσης και χρησιµοποιώντας ορθογώνια πολυώνυµα Legendre. Η συνάρτηση θα πρέπει να δοθεί µε τον κώδικα PHP.

Ο αριθµός των διαστηµάτων Ν συµβολίζει επίσης ότι το ολοκλήρωµα ολοκληρώνει ακριβώς όλα τα πολυώνυµα Legendre βαθµού µικρότερου ή ίσου του Ν. Στο πρόγραµµα δίνονται όλα τα wj και xj για Ν=4,8,32,48. 'Όσο µεγαλύτερο το Ν τόσο συνήθως είναι πιο ακριβές το αποτέλεσµα. Δεδοµένα κατά τη διάρκεια εκτέλεσης του προγράµµατος είναι τα άκρα της ολοκλήρωσης Α και Β και η ακρίβεια eps που θέλουµε να πετύχουµε στο αποτέλεσµα.

Στην περίπτωση που δεν έχουµε σύγκλιση για την ακρίβεια που θέλουµε στο αποτέλεσµα, τότε τυπώνεται σχετικό µήνυµα.

'Αν τρέξουµε το πρόγραµµα θα έχουµε

Συνάρτηση ολοκλήρωσης: sqrt(1+sqrt($x))

Δώσε τα άκρα της ολοκλήρωσης

Κάτω άκρο ? 0

Πάνω άκρο ? 1

Το ολοκλήρωµα ισούται µε 1.718282

Σύνθετη µέθοδος του Gauss Η σύνθετη µέθοδος του Gauss για ολοκληρώµατα µε πεπερασµένα άκρα ολοκλήρωσης και µε τη συνάρτηση που ολοκληρώνεται συνεχή και αναλυτικά εκφρασµένη είναι πολύ πιο ακριβής από την απλή µέθοδο του Gauss που περιγράφτηκε προηγούµενα.

Με τη σύνθετη µέθοδο του Gauss το διάστηµα [𝑎, 𝑏] ολοκλήρωσης διαιρείται σε k ίσα διαστήµατα απόστασης ℎ = (𝑏 − 𝑎)/𝑘.

Ο τύπος της σύνθετης µεθόδου του Gauss είναι

𝑓 𝑥 𝑑𝑥!

!

=ℎ2

𝑤!

!

!!!

 𝑓(𝑦!")!

!!!

όπου 𝑦!" =!!𝑥! + (𝑎 + 𝑟 − !

!ℎ

Page 5: Ολοκλήρωση κατά Gaussraptis-telis.com/numer/sites/default/files/pdf/Gauss...γνωστές και κατά συνέπεια η εύρεση των συντελεστών

Τα xj και wj oρίζονται από

𝑃! 𝑥! = 0      𝜅𝛼𝜄      𝑤! =2

1 − 𝑥!! 𝑃!!(𝑥!)

όπου Pn(x) είναι πολυώνυµα του Legendre. Το σφάλµα στη σύνθετη µέθοδο του Gauss είναι

𝐸! =𝑏 − 𝑎 !!!! 𝑛! !

2𝑛 + 1   2𝑛 ! !𝑓 !! (𝜉)

'Όπως φαίνεται από τον τύπο (5.21), η ακρίβεια στο αποτέλεσµα εξαρτάται από το βαθµό n των πολυωνύµων Legendre, από την απόσταση των άκρων της ολοκλήρωσης και από το είδος της συνάρτησης f(x). Στο πρόγραµµά Π507 το n=48. Η ακρίβεια συνεπώς εξαρτάται µόνο από τον αριθµό των διαστηµάτων k που διαιρούµε το διάστηµα [a,b]. Στην πράξη το k διπλασιάζεται κάθε φορά που υπολογίζεται το ολοκλήρωµα δηλ. k = 2t, t=0,1,2,...,tk.

ΠΡΟΓΡΑΜΜΑ (Σύνθετη µέθοδος)

Με το πρόγραµµα υπολογίζονται ολοκληρώµατα µε άκρα ολοκλήρωσης πεπερασµένους αριθµούς µε τη σύνθετη µέθοδο του Gauss. Η συνάρτηση που ολοκληρώνεται είναι στην εντολή 80. Δεδοµένα του προγράµµατος είναι: η συνάρτηση που ολοκληρώνεται, η ακρίβεια που θέλουµε στο αποτέλεσµα και τα άκρα της ολοκλήρωσης. Σε πολλά ολοκληρώµατα δεν µπορούµε να καταλήξουµε στην ακρίβεια που θέλουµε, οπότε δίνεται και σχετικό µήνυµα. Η ακρίβεια εξαρτάται από το βαθµό των πολυωνύµων Legendre που ολοκληρώνει ακριβώς, δηλαδή από τον αριθµό xj και wj που στο πρόγραµµά µας είναι 24 και από τον αριθµό των διαστηµάτων που διαµερίζεται το [𝑎, 𝑏]. Στο πρόγραµµά µας επιτρέπεται διαµέριση µέχρι 32 ισοδιαστήµατα. Η αύξηση ή η ελάττωση του αριθµού διαστηµάτων γίνεται στην εντολή 350. Για πολύ µεγάλο αριθµό διαστηµάτων οι µικροϋπολογιστές απαιτούν µεγάλο υπολογιστικό χρόνο. Αν τρέξουµε το πρόγραµµα για διάφορες συναρτήσεις, θα έχουµε:

Συνάρτηση ολοκλήρωσης: sqrt(1+sqrt($x))

Δώσε την ακρίβεια που θέλεις ? 1Ε-04

Δώσε τα άκρα της ολοκλήρωσης

Κάτω άκρο ? 0

Πάνω άκρο ? 4

Το ολοκλήρωµα ισούται µε 6.075898

Η ακριβής τιµή είναι 6.075896