ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ e-class: http://eclass.uoa.gr/courses/phys192/ 1
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ - Ειςαγωγι Επίλυςθ προβλθμάτων που δεν επιδζχονται αναλυτικι λφςθ Πραγματοποίθςθ επίπονων πράξεων ςε Η/Υ Προςομοίωςθ φυςικϊν προβλθμάτων Οπτικι αναπαράςταςθ λφςεων και φαινομζνων Η εφρεςθ προςεγγιςτικισ λφςθσ για ζνα δεδομζνο πρόβλθμα Η εφρεςθ των ορίων ακρίβειασ τθσ προςζγγιςθσ αυτισ 10/12/2017 2
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ - Φλθ Ειςαγωγι Αρικμθτικοί Υπολογιςμοί Ειςαγωγι ςτισ Μεκόδουσ Monte Carlo Επίλυςθ μθ γραμμικϊν Εξιςϊςεων Επίλυςθ Γραμμικϊν ςυςτθμάτων Παρεμβολι Μζκοδοσ Ελαχίςτων Τετραγϊνων Παραγϊγιςθ Ολοκλιρωςθ Επίλυςθ Συνικων διαφορικϊν Εξιςϊςεων Ειςαγωγι ςτθν επίλυςθ Μερικϊν Διαφορικϊν Εξιςϊςεων 10/12/2017 3
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Βιβλιογραφία Συγγράμματα ςτον Εφδοξο: Αρικμθτικι Ανάλυςθ, Μιςυρλισ Αρικμθτικζσ Υπολογιςτικζσ Μζκοδοι ςτθν Επιςτιμθ και τθ Μθχανικι, Pozrikidis Αρικμθτικι Ανάλυςθ με εφαρμογζσ ςε MATHEMATICA και MATLAB, Παπαγεωργίου, Τςίτουρασ Δειγματολθπτικι Ξενόγλωςςθ Βιβλιογραφία Computational Physics, Koonin, Meredith Computational Physics, Landau, Paez Computational Physics, Hjorth-Jensen Computational Physics, Anagnostopoulos και ελλθνικά: http://www.physics.ntua.gr/~konstant/ypologistikhfysikh/ Numerical Recipes in C, Press, Teukolsky, Vetterling, Flannery Numerical Analysis, Burden, Faires Numerical Methods or Physics, Garcia Introduction to Computer Simulation Methods, Gould, Tobochnik, Christian Περιςςότερθ Ξενόγλωςςθ Βιβλιογραφία http://physics.clarku.edu/sip/books/computationalphysics.html#undergrad http://physics.clarku.edu/sip/books/numericalmethods.html 4
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά Εργαλεία Οποιαδιποτε γλϊςςα προγραμματιςμοφ προτιμάτε (C, C++, Fortran, Java κ.λ.π.) ςε οποιοδιποτε λειτουργικό ςφςτθμα προτιμάτε (Linu, Windows, Mac) Ή ακόμθ, οποιοδιποτε πρόγραμμα αρικμθτικισ ανάλυςθσ (Mathematica, MATLAB, Maple κ.λ.π.) με χριςθ όμωσ δικϊν ςασ υπολογιςτικϊν προγραμμάτων ROOT data analysis ramework https://root.cern.ch (περιλαμβάνει C, C++ compiler) 10/12/2017 5
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά εργαλεία root Περιβάλλον root C compiler Στατιςτικι ανάλυςθ Γραφικι απεικόνιςθ https://root.cern.ch/ https://root.cern.ch/documentation Φυςικά, μπορείτε να χρθςιμοποιιςετε οποιαδιποτε άλλθ πλατφόρμα κζλετε 6
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά εργαλεία root Για να κατεβάςουμε το root επιλζγουμε από το μενοφ download -> All Releases 7
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά εργαλεία root Επιλζγουμε κάποια Release που να περιλαμβάνει ζκδοςθ ςυμβατι με το λειτουργικό μασ ςφςτθμα. π.χ. 5.34 8
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά εργαλεία root Και κατεβάηουμε τθν binary distribution που μασ ταιριάηει. π.χ. Ubuntu 14 gcc4.8 ι Windows Visual Studio 2010 9
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Υπολογιςτικά εργαλεία root Σϊηετε το αρχείο zip, το αποςυμπιζηετε και ζχετε μια δομι φακζλων όπωσ δίπλα Στο φάκελο bin βρίςκεται το εκτελζςιμο root.ee το οποίο ςασ ανοίγει το παράκυρο εντολϊν Στο φάκελο macros ςϊηετε τον κϊδικα τθσ C aaa.c που κζλετε να εκτελζςετε δίνοντασ τθν εντολι. aaa.c ςτο παράκυρο εντολϊν 10
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ - Μεκοδολογία Μετατροπι του ςυνεχοφσ αναλυτικοφ προβλιματοσ ςε διακριτό Δθμιουργοφμε πλζγμα ςθμείων όπου πραγματοποιοφμε δειγματολθψία των μεγεκϊν που μασ ενδιαφζρουν Ακρίβεια αποτελζςματοσ ςχετίηεται με τθν επιλογι του αρικμοφ των ςθμείων του πλζγματοσ κακϊσ και τθν τάξθ ακρίβειασ τθσ παρεμβολισ που πραγματοποιοφμε (ςφάλμα αποκοπισ) Γίνονται πολλζσ πράξεισ με αρικμοφσ, θ αναπαράςταςθ των οποίων ζχει πεπεραςμζνθ ακρίβεια (ςφάλμα ςτρογγυλοποίθςθσ) 10/12/2017 11
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Σφάλμα αποκοπισ Ζνα παράδειγμα: Ανάπτυγμα Taylor τθσ () γφρω από το 0 () R () P () n n n k k k n n n k n P 0 0 ) ( 0 0 ) ( 2 0 0 0 0 0!! ) (... 2! ) ( ) ( ) ( ) (! 1 n () () R 1 n 0 1 n n Σφάλμα Αποκοπισ 10/12/2017 12
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Σφάλμα αποκοπισ Παραδείγματοσ ςυνζχεια: Ζςτω ()=cos() και 0 =0 Και κζλουμε να υπολογίςουμε το 2θσ και 3θσ τάξθσ πολυϊνυμο Taylor () sin(), () cos(), () sin(), (4) () cos() (0) 1, (0) 0, (0) 1, (0) 0 Οπότε για n=2 και =0.1, ζχουμε τθν προςζγγιςθ cos() (0) (0) 1 1 2 2 1 6 (0) 2! 3 2 sin( ()) ( ()) 3! 1 2 1 3 cos (01. ) 1-01. 0.9950 ± 01. 0.16 10 2 6 3 3 10/12/2017 13
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Σφάλμα αποκοπισ Παραδείγματοσ ςυνζχεια: Ζςτω ()=cos() και 0 =0 Και κζλουμε να υπολογίςουμε το 2θσ και 3θσ τάξθσ πολυϊνυμο Taylor () sin(), () cos(), () sin(), (4) () cos() (0) 1, (0) 0, (0) 1, (0) 0 Οπότε για n=3 και =0.1 ζχουμε τθν προςζγγιςθ cos( ) (0) 1 1 2 2 (0) 1 24 4 (0) 2! 2 cos( ( )) (0) 3! 2 (4) ( ( )) 4! 1 1 2 4 cos (01. ) 1-01. 0.995000 ± 01. 0.416 10 2 24 5 4 Πραγματικι τιμι 0.9950041666526 10/12/2017 14
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Σφάλμα αποκοπισ Παραδείγματοσ ςυνζχεια: Ζςτω ()=cos() και 0 =0 Και κζλουμε να υπολογίςουμε το 2θσ και 3θσ τάξθσ πολυϊνυμο Taylor Με πολυϊνυμο Taylor 2 ου βακμοφ ζχουμε τθν προςζγγιςθ: cos(0.1)=0.99500 ± 0.00017 Με πολυϊνυμο Taylor 3 ου βακμοφ ζχουμε τθν προςζγγιςθ: cos(0.1)=0.995000 ± 0.000004 Με πραγματικι τιμι 0.9950041666526 10/12/2017 15
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ αρικμϊν ςτον υπολογιςτι Οι υπολογιςτζσ χρθςιμοποιοφν δυαδικό ςφςτθμα Υπενκφμιςθ: 432.52 (10) ςθμαίνει: 2 1 0-1 432.52 410 310 210 510 2 Αντίςτοιχα 101.11 (2) ςθμαίνει: 2 1 0-1 101.1112 02 12 12 1 2-2 10-2 Επομζνωσ 101.11 (2) = 5.75 (10) 10/12/2017 16
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ αρικμϊν ςτον υπολογιςτι Οι υπολογιςτζσ χρθςιμοποιοφν δυαδικό ςφςτθμα Οι ακζραιοι χρθςιμοποιοφν όλα τα διακζςιμα bits εκτόσ από ζνα που χρθςιμοποιείται για το πρόςθμο. Επομζνωσ οι ακζραιοι αναπαρίςτανται με τθν ακριβι τιμισ τουσ ςτθ μνιμθ του υπολογιςτι ςτθν περιοχι τιμϊν [-2 n-1-1, 2 n-1-1] 16bits: 2 15-1=32,767 32bits: 2,147,483,647 Οι πραγματικοί αρικμοί αναπαρίςτανται με τθν κανονικοποιθμζνθ επιςτθμονικι γραφι των αρικμϊν με τθ μορφι κινθτισ υποδιαςτολισ. π.χ. 432.52 = 0.4325210 3 Κλαςματικό μζροσ (mantissa) Εκκζτθσ (eponent) 10/12/2017 17
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ Αρικμϊν ςτον υπολογιςτι Από τθν εμπειρία μασ ςε υπολογιςμοφσ περιμζνουμε ότι οι ιςότθτεσ που εμφανίηονται 2 4 4 16 ςτισ διπλανζσ πράξεισ κα είναι πάντα αλθκείσ 2 3 3 Στον Η/Υ όμωσ θ αναπαράςταςθ των αρικμϊν ζχει αναγκαςτικά πεπεραςμζνα ψθφία που εξαρτάται από τον αρικμό των bits που δεςμεφονται ςτθ μνιμθ για τθν αναπαράςταςθ του αρικμοφ. 2 4 10/12/2017 18
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ αρικμϊν ςτον υπολογιςτι Οι υπολογιςτζσ χρθςιμοποιοφν δυαδικό ςφςτθμα για τθν αναπαράςταςθ πραγματικϊν αρικμϊν με κινθτι υποδιαςτολι Single precision Double precision 10/12/2017 19
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ Αρικμϊν Στον Η/Υ όμωσ θ αναπαράςταςθ των αρικμϊν ζχει αναγκαςτικά πεπεραςμζνα ψθφία που εξαρτάται από τον αρικμό των bits που δεςμεφονται ςτθ μνιμθ για τθν αναπαράςταςθ του αρικμοφ. Δυαδικι αναπαράςταςθ αρικμϊν ςτον Η/Υ Αν χρθςιμοποιοφμε 64 bits για τθν αναπαράςταςθ ενόσ πραγματικοφ αρικμοφ χρθςιμοποιοφμε: 1 bit για το πρόςθμο 11 bits για τον εκκζτθ (eponent) ζκταςθ 2 11-1=2047 52 bits για το κλαςματικό τμιμα (mantissa) 10/12/2017 20
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αναπαράςταςθ Αρικμϊν Ζςτω για παράδειγμα ο αρικμόσ s=0 κετικόσ αρικμόσ 10/12/2017 21
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Ακρίβεια αναπαράςταςθσ αρικμϊν ςτον υπολογιςτι Αναπαράςταςθ κινθτισ υποδιαςτολισ (loating point) Κάκε κετικόσ πραγματικόσ αρικμόσ μζςα ςτα αρικμθτικά όρια του Η/Υ ~10-308 - ~10 308 μπορεί να καταλιξει ςτθν παραπάνω μορφι είτε αποκόπτοντασ τα επιπλζον ψθφία (chopping) είτε ςτρογγυλεφοντασ και αποκόπτοντασ τα επιπλζον ψθφία (rounding) Απόλυτο ςφάλμα p l( p) Σχετικό ςφάλμα p l( p) p 10/12/2017 22
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Ακρίβεια αναπαράςταςθσ αρικμϊν ςτον υπολογιςτι #include <iostream> #include <math> void akribeia() { FILE * pfile; pfile = open ("akrivia_loat.tt","w"); loat one=1.; loat eps=1.; or(int i=0; i<40; i++) { eps=eps/2.; one=1.+eps; print(pfile, "%1.20 \n",one); } close (pfile); } 1.50000000000000000000 1.25000000000000000000 1.12500000000000000000 1.06250000000000000000 1.03125000000000000000 1.01562500000000000000 1.00781250000000000000 1.00390625000000000000 1.00195312500000000000 1.00097656250000000000 1.00048828125000000000 1.00024414062500000000 1.00012207031250000000 1.00006103515625000000 1.00003051757812500000 1.00001525878906250000 1.00000762939453120000 1.00000381469726560000 1.00000190734863280000 1.00000095367431640000 1.00000047683715820000 1.00000023841857910000 1.00000011920928960000 10/12/2017 23
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Ακρίβεια αναπαράςταςθσ αρικμϊν ςτον υπολογιςτι #include <iostream> #include <math> void akribeia() { FILE * pfile; pfile = open ("akrivia_double.tt","w"); double one=1.; double eps=1.; or(int i=0; i<40; i++) { eps=eps/2.; one=1.+eps; print(pfile, "%1.20 \n",one); } close (pfile); } 1.50000000000000000000 1.25000000000000000000 1.12500000000000000000 1.06250000000000000000 1.03125000000000000000 1.01562500000000000000 1.00781250000000000000 1.00390625000000000000 1.00195312500000000000 1.00097656250000000000 1.00048828125000000000 1.00024414062500000000 1.00012207031250000000 1.00006103515625000000 1.00003051757812500000 1.00001525878906250000 1.00000762939453120000 1.00000381469726560000 1.00000190734863280000 1.00000095367431640000 1.00000047683715820000 1.00000023841857910000 1.00000011920928960000 1.00000005960464480000 1.00000002980232240000 1.00000001490116120000 1.00000000745058060000 1.00000000372529030000 1.00000000186264510000 1.00000000093132260000 1.00000000046566130000 1.00000000023283060000 1.00000000011641530000 1.00000000005820770000 1.00000000002910380000 1.00000000001455190000 1.00000000000727600000 1.00000000000363800000 1.00000000000181900000 1.00000000000090950000 10/12/2017 24
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα Ι: =5/7, y=1/3 και χρθςιμοποιοφμε αναπαράςταςθ 5 ψθφίων και αποκοπι l() = 0.71428 10 0 και l(y) = 0.33333 10 0 10/12/2017 25
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα Ι ςυνζχεια: Ζςτω επιπλζον: u=0.714251, v=98765.9 και w=0.11111110-4 l(u) = 0.71425 10 0 l(v) = 0.98765 10 5 και l(w)=0.11111 10-4 Υπολογιςμοί που παρουςιάηουν μεγάλο ςφάλμα ςτρογγυλοποίθςθσ: Αφαίρεςθ ςχεδόν ίςων αρικμϊν Διαίρεςθ με πολφ μικροφσ αρικμοφσ Πολλαπλαςιαςμόσ με μεγάλουσ αρικμοφσ 10/12/2017 26
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα ΙΙ: 10/12/2017 27
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα ΙΙ ςυνζχεια: Ζςτω p 0 =1 και p 1 =1/3 τότε c 1 =1 και c 2 =0 Αν όμωσ χρθςιμοποιοφμε αναπαράςταςθ 5 ςθμαντικϊν ψθφίων τότε p^0=1.0000 και p^1=0.33333 οπότε c^1=1.0000 και c^2=-0.1250010-5 Σε αυτιν τθν περίπτωςθ και το ςφάλμα ςτρογγυλοποίθςθσ 10/12/2017 28
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα ΙΙΙ: 10/12/2017 29
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα ΙΙΙ ςυνζχεια: Ζςτω p 0 =1 και p 1 =1/3 τότε c 1 =1 και c 2 = -2/3 Αν όμωσ χρθςιμοποιοφμε αναπαράςταςθ 5 ςθμαντικϊν ψθφίων τότε p^0=1.0000 και p^1=0.33333 οπότε c^1=1.0000 και c^2= -0.66667 Σε αυτιν τθν περίπτωςθ και το ςφάλμα ςτρογγυλοποίθςθσ 10/12/2017 30
ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Αρικμθτικοί Υπολογιςμοί Παράδειγμα ΙΙ αποτελζςματα: Παράδειγμα ΙΙΙ αποτελζςματα: Σφάλμα που αυξάνεται εκκετικά Αςτάκεια Σφάλμα που αυξάνεται γραμμικά Ευςτάκεια 10/12/2017 31