Professional Documents
Culture Documents
Μαθηματικό μοντέλο μελέτης σε PC: Γεννήτρια Monte Carlo
Μαθηματικό μοντέλο μελέτης σε PC: Γεννήτρια Monte Carlo
Εργαστηριακή Αναφορά
Μαθηματικό μοντέλο μελέτης σε PC:
∫ f΄ ( x=
)dx F ( x) + c με χρήση της γεννήτριας τυχαίων
αριθμών Monte Carlo
Ηλεκτρονικοί Υπολογιστές ΙΙ 1
Πανεπιστήμιο Κρήτης – Τμήμα Φυσικής
Φυσικό πρόβλημα:
Το μέτρο της συνισταμένης δύναμης Fx που δρα σε ένα σώμα μάζας m , το
οποίο κινείται κατά μήκος του άξονα x , μεταβάλλεται σύμφωνα με την
συναρτησιακή σχέση Fx (x ) = x 2 − 5 x + 6 , όπου το x είναι σε m και το Fx σε
Newton .
Ερώτημα i
xf xf
∑W = ∫ F x ⋅ dx = ∫F x ⋅ dx ⇒
xi xi
3
x3
( )
3
x2 9 23 2
⇒∫ x − 5 x + 6 dx = − 5 + 6 x = −
2
= Joule
1 3 2 1 2 6 3
b n
f ( x)dx ≈ ∑ f ( xi )
(b − a )
∫
a i =1 n
Monte Carlo:
r = rand ()
xi = a + r (b − a )
Ηλεκτρονικοί Υπολογιστές ΙΙ 2
Πανεπιστήμιο Κρήτης – Τμήμα Φυσικής
Κώδικας Fortran 77
c234567
program ergastiriaki_anafora_10
implicit none
real a,b,r,x(10000),sum,olok,u,f
integer i,n
print*, ""
print*, "Doste to kato kai ano orio olokliroseos."
read*, a,b
print*, ""
print*,"Doste ton arithmo ton stoixeiodon diamerismaton tou xoriou
&."
read*, n
print*, ""
print*,"Me vasi ta dedomena pou eisagate, to orismeno olokliroma e
&inai iso me:"
call olokl(a,b,n,olok)
print*, olok
print*, ""
end
subroutine olokl(a,b,n,olok)
implicit none
real r,a,b,x(10000),sum,olok,f
integer i,n
do i=1,n
r=rand()
x(i)=a+r*(b-a)
enddo
sum=0
do i=1,n
sum=sum+f(x(i))
enddo
olok=sum*(b-a)/real(n)
end
function f(u)
implicit none
real f,u
f=u**2-5*u+6
return
end
∑W = 0,653755426 Joule
Ηλεκτρονικοί Υπολογιστές ΙΙ 3
Πανεπιστήμιο Κρήτης – Τμήμα Φυσικής
διαφορά % =
∑W η − ∑W η ⋅ 100 ≈ 1,9%
1 2
∑W η 1
Ηλεκτρονικοί Υπολογιστές ΙΙ 4