Уважаемые любители программирования на Фортране! Предлагаю писать в данный топик тем, кто любит данный язык программирования и пишет на нем программы для студентов физико-математических специальностей. Очень надеюсь найти единомышленников. Свои работы буду выкладывать здесь.
С уважением, eiktyrnir.
Подсчет числа
методом Монте-Карло.Интересно, что метод Монте-Карло можно применять в самых разных приложениях физики, математики, информационных технологиях и других областях знаний. Одним из его существенных преимуществ является то, что при большом количестве статистических данных (или статистики) совпадение в вычисляемых значениях величин очень близко к их истинному значению.
Вот к примеру высиление числа

методом Монте-Карло представленное на языке Фортран (Visual Fortran 5.0 и выше). Задача ставится формально так:
Пусть имеется квадрат со стороной равной

и вписанный в него круг (диаметр круга равен

). Случайным образом в квадрат вбрасывается несколько точек произвольным образом (по сути случайные точки в интервале
![$[0;1]$ $[0;1]$](https://dxdy-03.korotkov.co.uk/f/2/1/a/21ad730ee7df0b97abd700cb0f8426e682.png)
имеющие две координаты

и

например в декартовой системе координат). Требуется подсчитать число

для заданной статистики. Ограничимося к примеру статистикой

. Решение задачи в приложенном аттаче (код программы на языке Фортран приводится ниже).
Аналитическое решение задачи подсчета числа Пи методом Монте-Карло. Пусть (рисунок ниже) дан квадрат стороной

(площадь квадрата

) и пусть в него вписан круг диаметром конечно же

(площадь круга

). И пусть в квадрат врасывается случайным образом

точек. И пусть мы можем посчитать какие точки попали именно в сам круг по всей длине окружности - пусть вся их совокупность будет пусть число

, а совокупность точек которые все-таки попали в квадрат (в один их четырех его углов) пусть будет

(ну на самом деле

). Тогда справедливо следующее утверждение: Площадь круга так относится к площади квадрата в данном случае как число точек попавших в данный круг к общему числу точек вброшенных в квадрат. Т.е.

Тогда

, откуда

Все осталось "вбросить" случайным образом

точек на отрезок
![$[0;1]$ $[0;1]$](https://dxdy-03.korotkov.co.uk/f/2/1/a/21ad730ee7df0b97abd700cb0f8426e682.png)
по оси

и
![$[0;1]$ $[0;1]$](https://dxdy-03.korotkov.co.uk/f/2/1/a/21ad730ee7df0b97abd700cb0f8426e682.png)
по оси

и подсчитать какие попали в круг и подсчитать.
Код:
PROGRAM Pi
real*8 P,x,y,N_in,N_out
integer*4 i,d,N
print*, 'Plesae wait ...'
open(10,file='pi.txt')
write(10,1)
write(10,2)
!=============== Constants ===============!
N=10000000 ! The number of points
!=========== The main programm ===========!
do i=1,N
call random_number (x)
call random_number (y)
if (((x-0.5)**2+(y-0.5)**2).le.0.25) then
N_in=N_in+1
else
N_out=N_out+1
end if
end do
P=(4*N_in)/N
write(10,*) N, P
print*, 'Pi=', P
!================ The end ================!
1 format(3x, 'The resulting of calculation the number Pi:')
2 format(9x, 'N', 5x, 'Number Pi')
close(10)
END PROGRAM Pi
Вот какое значение числа

дает программа для данной статистики (данные образуются в файле

)

Неплохой результат, если учесть, что число

- совпадение до

-го знака включительно. Можете попробывать увеличить (или наоборот уменьшить) статистику (число

) чтобы увидеть меру сходимоcти (или расходимости) метода Монте-Карло для подсчета числа

.
