- •Алгоритм Метрополиса в вопросах интегрирования методом Монте-Карло
- •Глава 1. Метод Монте-Карло
- •1.1. Понятие метода
- •1.2. Алгоритм Метрополиса
- •Глава 2. Реализация алгоритма Метрополиса
- •2.1. Программная реализация алгоритма
- •2.3. Анализ результатов эксперимента
- •Значения определенного интеграла для различных параметров алгоритма
- •Заключение
- •Библиографический список
- •Приложение
Заключение
В данной курсовой работе были изучены теоретические сведения об алгоритме Метрополиса.
Для проверки его эффективности в вопросах численного интегрирования функций нескольких переменных была написана программа, реализующая метод Монте-Карло.
Анализ результатов тестирования программы показал, что точность метода напрямую зависит от выбора шага алгоритма: чем меньше значение шага, тем точнее приближается определенный интеграл.
Таким образом, все задачи курсовой работы решены и поставленная цель достигнута.
Кроме численного интегрирования, алгоритм Метрополиса может быть легко применен для моделирования фазового перехода в XY модели.
Библиографический список
N. Metropolis, A.W. Rosenbluth, M.N. Rosenbluth, A.H. Teller, E. Teller Equations of stafe Colculations by fast computing machines // J. Chem. Phys. Vol. 21, pp. 1087-1092, 1953.
Liu J.S. Monte Carlo Strategies in Scientific Computing. – Springer, 2001.
Г. Винклер. Анализ изображений, случайные поля и методы Монте-Карло на цепях Маркова. Математические основы. – Новосибирск, ГЕО, 2008.
Ермаков С. М. Метод Монте-Карло и смежные вопросы. – Москва: Наука, 1975.
ТепляковА. Статья «Моделируя жизнь»[электронный ресурс]/ №7 2001 Hard'n'Soft – Режим доступа: http://arbuz.uz/z_pihns.html
Metropolis, N.,Ulam, S.The Monte Carlo Method, –Journal of the American Statistical Association1949 44 № 247 335 – 341.
Alex F Bielajew. Fundamentals of the Monte Carlo method for neutral and charged particle transport. 2001
W. M. C. Foulkes, L. Mitas, R. J. Needs and G. Rajagopal Quantum Monte Carlo simulations of solids, — Reviews of Modern Physics 73 (2001). – p. 33.
Статья «Metropolis, Monte Carlo and the MANIAC»
Fishman, George S. Monte Carlo : concepts, algorithms, and applications. – Springer, 1996. – ISBN 0-387-94527-X.
ТеорВер-Онлайн/ – Режим доступа: http://teorver-online.narod.ru/teorver44.html
Современное программирование на языке Pascal – Режим доступа: http://pascalabc.net/
Методы Монте-Карло в статистической физике / Под ред. К. Биндера. – М.: Мир, 1982. – 400 с.
Приложение
1. Листинг программы расчета конечных разностей.
var
mas: array [,,] of real;
cX, cY, cZ, kk, kc, k: integer;
sh: real;
procedure Solve();
begin
for var i := 0 to round(cX) - 1 do
for var j := 0 to round(cY) - 1 do
for var o := 0 to round(cZ) - 1 do
if kc < kk then
begin
inc(kc);
var rX := random(round(cX)) / 10 - 2;
var rY := random(round(cY)) / 10 - 2;
var rZ := random(round(cZ)) / 10;
if((rx * rx + ry * ry + rz * rz - 4 <= 0) and (rx * rx + ry * ry - 3 * rz >= 0) and (mas[round((rx + 2) * 10), round((ry + 2) * 10), round(rz * 10)] <= sh)) then
begin
inc(k);
mas[round((rx + 2) * 10), round((ry + 2) * 10), round(rz * 10)] := 1;
end;
end;
end;
begin
var shag := 1 / 10;
cX := round(4 / shag);
cY := round(4 / shag);
cZ := round(2 / shag);
var count := cX * cY * cZ;
mas := new real[(cX), (cY), (cZ)];
sh := 1 / count;
for var i := 0 to round(cX) - 1 do
for var j := 0 to round(cY) - 1 do
for var o := 0 to round(cZ) - 1 do
mas[i, j, o] := sh;
kc := 1;
kk := 10000;
Solve();
var s := 4 * 4 * 2 * k / kk;
writeln(k, ' ', s);
end.