Υπολογιστικά Mαθηματικά II

Σχετικά έγγραφα
Υπολογιστικά Mαθηματικά II

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

Δομές Επανάληψης. Εισαγωγή στη C++

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Χωρική Βάση δεδοµένων Autocad

Προγραμματισμός Υπολογιστών με C++

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++

Πληροφορική 2. Αλγόριθμοι

Ολοκλήρωση - Μέθοδος Monte Carlo

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

Πίνακες (Arrays) Εισαγωγή στη C++

ΕΡΩΤΗΣΕΙΣ ΜΑΘΗΤΩΝ. α) Το ορισμένο ολοκλήρωμα μιας συνεχούς συνάρτησης f σε ένα διάστημα [a, b] είναι όριο?

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Ευστρατιάδης Ευστράτιος Γεώργιος ΑΕΜ: ο σετ ασκήσεων Υπολ.Μαθ.2

Υπολογιστικά Μαθηματικά

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Εργαστήριο 3 Εντολή for while, do while

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Προγραμματισμός Υπολογιστών με C++

Οντοκεντρικός Προγραμματισμός

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

Προγραµµατιστικές Τεχνικές

Προγραμματισμός Υπολογιστών με C++

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολή if. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Διανύσματα στις 3 Διαστάσεις

Εισαγωγή στον Προγραμματισμό

Στοιχειώδης προγραμματισμός σε C++

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις I Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Δομές δεδομένων (Structures) Εισαγωγή στη C++

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι οι πίνακες; Μονοδιάστατοι πίνακες. Απλές μεταβλητές: Κεντρική μνήμη

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Υπολογιστικά Μαθηματικά (Set 2)

Εμβαδά. 1) Με βάση το παρακάτω διάγραμμα όπου το εμβαδόν των περιοχών είναι Α1=8 και Α2=2, να. 2) Να εκφράσετε το εμβαδόν του γραμμοσκιασμένου

Προγραμματισμός Υπολογιστών με C++

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

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

Συναρτήσεις και Πίνακες

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

3 η Διάλεξη C++ - Βασικοί τύποι δεδομένων. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

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

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Προγραµµατιστικές Τεχνικές

Το πρόγραμμα θα τυπώνει και τους τρεις πίνακες.

Η μέθοδος του Verlet - εισαγωγικά

Προγραµµατιστικές Τεχνικές

Μάθημα 21: Ουρές (Queues)

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Μονοδιάστατοι πίνακες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

test.txt #include <iostream> #include <fstream> int main()

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Ερώτημα Α 1. Να γράψετε τις εντολές που πραγματοποιούν τα ακόλουθα:

Συναρτήσεις (Functions) Εισαγωγή στη C++

Φροντιςτήριο. Linked-List

242 -ΕισαγωγήστουςΗ/Υ

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα εξής ακαδημαϊκά έτη: Διάρκεια: 2,5 ώρες, κλειστά βιβλία και σημειώσεις ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Ονοματεπώνυμο και ΑΜ: Είχα παραδώσει εργασίες τα προηγούμενα ακαδημαϊκά έτη: ΚΑΛΗ ΕΠΙΤΥΧΙΑ!

Οντοκεντρικός Προγραμματισμός

Προγραμματισμός Υπολογιστών με C++

Προγραμματιστικές Τεχνικές

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι οι πίνακες; Μονοδιάστατοι πίνακες. Απλές μεταβλητές: Κεντρική μνήμη

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

Αναφορές, είκτες και Αλφαριθμητικά

x από το κεντρικό σημείο i: Ξεκινάμε από το ανάπτυγμα Taylor στην x κατεύθυνση για απόσταση i j. Υπολογίζουμε το άθροισμα:

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

Α1. Ποιο περιβάλλον χρησιµοποιείτε για να εκτελέσετε ένα πρόγραµµα C++ και πως.

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

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

Υπερφόρτωση τελεστών

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

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

Ο Λ Ο Κ Λ Η Ρ Ω Μ Α Τ Α

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι ; Συναρτήσεις. Παράδειγμα #1. double convert ( double cm ) { double inch;

ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ ΑΛΓΕΒΡΑ Β ΛΥΚΕΙΟΥ

ΕΙΣΑΓΩΓΗ Η μελέτη διαφόρων στοχαστικών φαινομένων μπορεί γενικά να γίνει χρησιμοποιώντας

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ (επανάληψη στη γλώσσα C & εισαγωγή στη γλώσσα C++)

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Transcript:

Υπολογιστικά Mαθηματικά II Ζαφειράκογλου Απόστολος 1 Άσκηση Να υπολογιστεί με τη μέθοδο Monte Carlo το ολοκλήρωμα : I = ˆ1 dx 1 ˆ1 ˆ1 dx 2... (x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 + x 8 + x 9 + x 1 ) dx 1 Στόχος της άσκησης είναι η εκτίμηση της τιμής του ολοκληρώματος με δύο τρόπους. Τόσο με τη μέθοδο Monte Carlo, όσο και με τη μέθοδο του τραπεζίου, καθώς και η σύγκριση των δύο μεθόδων. Ο αλγόριθμος που αναπτύχθηκε για το ολοκλήρωμα είναι ο ακόλουθος: 1 #include <iostream> 2 #include <cmath> 3 #include <cstdlib> 4 #include <fstream> 5 #include <ctime> 6 7 using namespace std; 8 9 double myrand(double fmin, double fmax) 1 { 11 double f = (double)rand() / RAND_MAX; 12 return fmin + f * (fmax fmin); 13 //return (rand()%1)+1; //random between 1,1 14 //return ((double) rand() / (RAND_MAX)); //random between,1 15 } 16 1

ΠΜΣ Υπολογιστικη ς Φυσικη ς 1 Άσκηση 17 double myfunc(double x1, double x2, double x3, double x4, double x5, double x6, double x7, double x8, double x9, double x1) 18 { 19 return (x1+x2+x3+x4+x5+x6+x7+x8+x9+x1)*(x1+x2+x3+x4+x5+x6+ x7+x8+x9+x1); 2 } 21 22 int main() 23 { 24 int N=1,i=; 25 double intgr=,thisx1,thisx2,thisx3,thisx4,thisx5,thisx6, thisx7,thisx8,thisx9,thisx1; 26 while (N<=1) 27 { 28 while (i<=n) 29 { 3 thisx1=myrand(,1);thisx2=myrand(,1);thisx3=myrand (,1);thisx4=myrand(,1);thisx5=myrand(,1);thisx6 =myrand(,1); 31 thisx7=myrand(,1);thisx8=myrand(,1);thisx9=myrand (,1);thisx1=myrand(,1); 32 33 intgr+=myfunc(thisx1,thisx2,thisx3,thisx4,thisx5, thisx6,thisx7,thisx8,thisx9,thisx1); 34 35 i++; 36 } 37 cout <<"The estimated value: "<< intgr/n<<" for N="<<N<<endl ; 38 N*=1; 39 } 4 return ; 41 } Το πρόγραμμα κατά την εκτέλεση δίνει το ακόλουθο output: 2

ΠΜΣ Υπολογιστικη ς Φυσικη ς 1 Άσκηση Διάγραμμα 1.1 N I est 1 34.4178 1 26.8935 1 25.5794 1 25.814 1 25.837 Πίνακας 1: Πίνακας εκτίμησης της τιμής του ολοκληρώματος σε σχέση με το N Πίνακας 2 Το ίδιο πρόβλημα με τη χρήση της γενικευμένης μεθόδου του τραπεζίου, παρουσιάζεται στον παρακάτω κώδικα: 3

ΠΜΣ Υπολογιστικη ς Φυσικη ς 1 Άσκηση 1 #include <iostream> 2 #include <cmath> 3 4 using namespace std; 5 6 double myfunc(double x1,double x2,double x3,double x4,double x5, double x6,double x7,double x8,double x9,double x1) 7 { 8 return (x1+x2+x3+x4+x5+x6+x7+x8+x9+x1)*(x1+x2+x3+x4+x5+x6+ x7+x8+x9+x1); 9 } 1 11 int main() 12 { 13 double result=; 14 double i1=,i2=,i3=,i4=,i5=,i6=,i7=,i8=,i9=,i1=,n =1,h=1/7; 15 while(i1<=n) 16 { 17 i2=; 18 while(i2<=n) 19 { 2 i3=; 21 while(i3<=n) 22 { 23 i4=; 24 while(i4<=n) 25 { 26 i5=; 27 while(i5<=n) 28 { 29 i6=; 3 while(i6<=n) 31 { 32 i7=; 33 while(i7<=n) 34 { 35 i8=; 36 while(i8<=n) 37 { 38 i9=; 39 while(i9<=n) 4 { 41 i1=; 4

ΠΜΣ Υπολογιστικη ς Φυσικη ς 1 Άσκηση 42 while(i1<=n) 43 { 44 result+=myfunc(i1,i2,i3,i4, i5,i6,i7,i8,i9,i1)*pow(h,1); 45 i1+=h; 46 } 47 i9+=h; 48 } 49 i8+=h; 5 } 51 i7+=h; 52 } 53 i6+=h; 54 } 55 i5+=h; 56 } 57 i4+=h; 58 } 59 i3+=h; 6 } 61 i2+=h; 62 } 63 i1+=h; 64 } 65 66 67 cout << result <<endl; 68 69 return ; 7 } Σχόλια: Συγκρίνοντας τις δύο παραπάνω μεθόδους, μπορούμε αβίαστα να καταλήξουμε στο ότι η μέθοδος εκτίμησης της τιμής του ολοκληρώματος Monte Carlo, υπερτερεί της αριθμητικής ολοκλήρωσης για τους ακόλουθους λόγους: i. Χρόνος εκτέλεσης: Πέραν του ότι η μέθοδος Monte Carlo συγκλίνει εμφανώς ταχύτερα, ο χρόνος εκτέλεσης του προγράμματος αυξάνεται γραμμικά με την αύξηση του πλήθος των τυχαίων σημείων. Αντίθετα η δεύτερη μέθοδος, αλλάζει γεωμετρικά το χρόνο εκτέλεσης σε κάθε αλλαγή του βήματος. Παρ ότι η μέθοδος αυτή είναι καλύτερη για μία διάσταση, όσο οι διαστάσεις αυξάνονται, τόσο πιο ασύμφορη γίνεται προγραμματιστικά. 5

ii. Σφάλμα: Η μέθοδος Monte Carlo σε συγκρίσιμο αριθμό σημείων, δίνει μικρότερο σφάλμα σε σχέση με τη μέθοδο του τραπεζίου. iii. Προγραμματιστική απλότητα: Ένα ακόμη μεγάλο προτέρημα είναι η προγραμματιστική απλότητα κατά τη δημιουργία του κώδικα. Είναι ευκολότερο να γίνει λάθος κατά τη συγγραφή του κώδικα της ολοκλήρωσης τραπεζίου, εξ αιτίας των embeded loops, και είναι σαφώς δυσκολότερη η γενίκευση του κώδικα για χρήση του σε άλλα προβλήματα (πχ πιο πολλών διαστάσεων). 2 Άσκηση Να υπολογιστεί η τιμή του ολοκληρώματος: όπου g(x) = x, x 2, x 3 ˆ I = g(x) e x dx Το πρόβλημα αυτής της άσκησης είναι η μορφή του ολοκληρώματος. Προφανώς πρέπει με κάποια κατάλληλη αλλαγή μεταβλητής να έρθει στη μορφή 1 () dx. Η ακόλουθη μέθοδος κάνει αυτό το μετασχηματισμό: I = g(x) e x dx = 1 g(x) e x dx + 1 g(x) e x dx Το δεύτερο ολοκλήρωμα με αλλαγή μεταβλητής: y = 1, παίρνει τη μορφή: x ˆ 1 g(x) e x dx = y2 y 1 = 1 g ( 1 y = ( ) 1 g y ) e y 1 1 g ( 1 y ) ( ) e y 1 d 1 y ( 1y 2 ) dy ( e 1 y y 2 ) dy Οπότε τελικά: 6

I = = g(x) e x dx 1 g(x) e x + = 1 g(x) e x + 1 = 1 ( g(x) e x + g 1 g(x) e x dx ( ) ( ) 1 g e y 1 dy y y 2 ( ) 1 ( ) ) e x 1 dx x x 2 Τα διαγράμμα των συναρτήσεων πρίν το μετασχηματισμό, δείχνουν το ζητούμενο εμβαδό. Διάγραμμα 2.1: g(x) = x Διάγραμμα 2.2: g(x) = x 2 Διάγραμμα 2.3: g(x) = x 3 Το ολοκλήρωμα πλέον έχει μετασχηματιστεί σε μία ολοκληρώσιμη μορφή για 7

τη μέθοδο Monte Carlo. Ο κώδικας που αναπτύχθηκε είναι ο ακόλουθος: 1 #include <iostream> 2 #include <cmath> 3 #include <cstdlib> 4 #include <fstream> 5 #include <ctime> 6 7 using namespace std; 8 9 1 double myrand(double fmin, double fmax) 11 { 12 double f = (double)rand() / RAND_MAX; 13 return fmin + f * (fmax fmin); 14 } 15 16 double g(double x) 17 { 18 //return x*x*x; //gia g(x)=x^3 19 return x*x*x; 2 } 21 22 double myfunc(double x) 23 { 24 // return g(x)/exp(x) + 1/(x*x*x*exp(1/x)); 25 return g(x)/exp(x)+g(1/x)/(x*x*exp(1/x)); 26 } 27 28 29 int main() 3 { 31 int i=,n=1;double result=,thisx=; 32 while(i<=n) 33 { 34 thisx=myrand(,1); 35 result+=myfunc(thisx)/n; 36 i++; 37 } 38 cout <<"The estimated value: "<<result; 39 return ; 4 41 } Αν στο παραπάνω κώδικα αλλάξουμε την μορφή της g(x) όπως στο comment 8

παίρνουμε την τιμή του ολοκληρώματος για τις διάφορες g(x). Διάγραμμα 2.4 Διάγραμμα 2.5 9

Διάγραμμα 2.6 Το ζητούμενο εμβαδό που υπολογίζεται φαίνεται στις ακόλουθες γραφικές παραστάσεις. Διάγραμμα 2.7 Διάγραμμα 2.8 1

Διάγραμμα 2.9 Ολοκλήρωμα Πραγματική Τιμή Monte Carlo x e x dx 1 1.137 x2 e x dx 2 2.619 x3 e x dx 6 6.221 Πίνακας 3: Πίνακας τιμών ολοκληρωμάτων και εκτιμήσεων 11