1 2 3 4 5 Н. Результаты вычислений этой силы с помощью метода Монте-Карло приведем в следующей таблице. 52 N e I ∆ 10 5 1.98226 · 10 20 0.11 · 10 20 10 7 1.98148 · 10 20 0.0099 · 10 20 Очевидно, что при увеличении количества испытаний в 100 раз, погреш- ность уменьшилась в 10 раз. Задача интересна тем, что если тела нельзя считать точечными, то вме- сто формулы (2.11) нужно вычислять значение силы, пользуясь формула- ми (2.7), (2.8), (2.9),(2.10), которые дают более точный результат. Также аналитические расчеты сильно усложнились бы, если бы плотности тел зависели от координат. Метод Монте-Карло позволяет значительно упро- стить задачу. Аналогичные интегралы возникают в задаче о притяжении двух заряженных тел. 53 Заключение В работе были изучены особенности применения метода Монте-Карло в решении задач численного интегрирования. Для знакомства с теоретиче- скими основами метода было проанализировано 11 источников. Для более глубокого понимания метода Монте-Карло приведены необ- ходимые сведения из теории вероятностей и математической статистики, рассмотрены методы получения случайных чисел, сформулированы идея метода и оценка погрешности метода. Разобраны различные способы вычисления одномерных интегралов, приведен наиболее типичный способ вычисления многомерных интегралов. В процессе работы возникла необходимость оценки погрешности вычис- ления кратных интегралов. Для оценки этой погрешности получена форму- ла и в качестве ее следствия – формула для оценки количества испытаний для достижения указанной точности. Сформулирован подробный алгоритм для вычисления интегралов мето- дом Монте-Карло, рассмотрены примеры, демонстрирующие особенности применения метода. На основе изученного материала был создан электронный информацион- ный ресурс на тему «Численное интегрирование с использованием метода Монте-Карло». Для проведения численного эксперимента в среде MATLAB написа- на модифицируемая программа для вычисления интегралов. Проведен- ные численные эксперименты указывают на работоспособность получен- ных оценок. Созданный информационный ресурс может быть использован в учеб- ном процессе в качестве дополнительного материала в курсе Численные методы или дисциплин специализации. 54 Литература [1] Бермант А.Ф., Арманович И.Г. Краткий курс математического анализа для вту- зов. - М., 1967г. 736 стр. с илл. [2] Будак Б.М., Фомин С.В. Кратные интегралы и ряды. - М.:Наука, 1965г. 608 стр. с илл. [3] Соболь И.М. Численные методы Монте-Карло. - М.:Наука, 1973г. 312 стр. с илл. [4] Соболь И.М. Метод Монте-Карло (Популярные лекции по математике, вып. 46). - М.:Наука, 1968г. 64 стр. [5] Шеннон Р. Имитационное моделирование систем - искусство и наука. - М.:Мир, 1978г. [6] Брусленко М.П., Шрейдер Ю.А. Метод статистических испытаний (Монте-Карло) и его реализация на цифровых вычислительных машинах. - М.: ФИЗМАТГИЗ, 1961г. [7] Ермаков С.М. Метод Монте-Карло и смежные вопросы. - М.:Наука, 1975г. 472 стр. с илл. [8] Гмурман В.Е. Руководство к решению задач по теории вероятностей и математи- ческой статистике: Учебное пособие для студентов ВТУЗов. - 3-е изд.,перераб. и доп. - М.:Высш.школа, 1979г. 400 стр. с илл. [9] Reuven Y. Rubinstein, Dirk P. Kroese. Simulation and monte carlo method. - 2nd ed. Published by John Wiley and Sons, Inc., Hoboken, New Jersey. Published simultaneously in Canada. [10] Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MATLAB 7, программирование, числен- ные методы. - СПб.:БХВ-Петербург, 2005г. 752 стр. с илл. [11] Зубова С.В. Приложения кратных интегралов. Учебно-методическое пособие для студентов. - Воронеж, 2006 55 Приложение 2. Таблица значений функции Φ(t) = 1 √ 2π t R 0 e − x2 2 dx 57 Приложение 3. Код основной программы Файл Dannie.m function [I,MF,Omega,S1,S2,n,V, tB]=Dannie(N) sumF=0; sumDf=0; n=0; %------------------------------------------- %Параметр tB, соответствующий коэффициенту доверия B tB=3; %------------------------------------------- %------------------------------------------- %Параллелепипед, ограничивающий область интегрирования: %вектор начал сторон параллелепипеда a=[0,0]; %вектор концов сторон параллелепипеда b=[2,4]; %------------------------------------------- V=1; m=numel(a); for i=1:m V=V*(b(i)-a(i)); end for j=1:N x=a+(b-a).*rand(size(a)); %------------------------------------------- %Область интегрирования: if (0<=x(1))&&(x(1)<=2)&&(x(1)^2<=x(2))&&(x(2)<=2*x(1)) %------------------------------------------- n=n+1; 58 %------------------------------------------- %Подынтегральная функция: fx=x(1)+x(2); %------------------------------------------- sumF=sumF+fx; sumDf=sumDf+fx^2; end end MF=sumF/n; I=V*sumF/N; Df=sumDf/n-(sumF/n)^2; S1=sqrt(Df); Omega=n/N; S2=sqrt(Omega*(1-Omega)); Файл Integrirovanie.m rand(’state’,sum(100*clock)); N=input(’Введите N=’); [I,MF,Omega,S1,S2,n,V, tB]=Dannie(N); c=V*tB*(sqrt(Omega)*S1+MF*S2); E=c/sqrt(N); disp(’Значение интеграла I=’) disp(I) disp(’Погрешность интегрирования E=’) disp(E) E1=input(’Введите желаемую точность, E=’); N1=ceil((V*tB*(S1*sqrt(Omega)+S2*MF)/E1)^2); disp(’N1=’) disp(N1) [I1,MF1,Omega1,S3,S4,n1,V1, tB]=Dannie(N1); c1=V1*tB*(sqrt(Omega1)*S3+MF1*S4); 59 E2=c1/sqrt(N1); disp(’Значение интеграла I=’) disp(I1) disp(’Погрешность интегрирования E=’) disp(E2) 60 Приложение 4. Код модифицированной программы Файл IntegrirovanieModif.m rand(’state’,sum(100*clock)); q=1000; for k=0:4 [I,MF,Omega,S1,S2,n,V,tB]=Dannie(q*10^k); c=V*tB*(sqrt(Omega)*S1+MF*S2); E=c/sqrt(q*10^k); disp(’При количестве испытаний N=’) disp(q*10^k) disp(’Значение интеграла I=’) disp(I) disp(’Погрешность E=’) disp(E) disp(’Среднее значение функции равно MF=’) disp(MF) disp(’Объем области интегрирования Omega=’) disp(Omega) disp(’Ошибка вычисления MF DeltaF=’) disp(tB*S1/sqrt(n)) disp(’Ошибка вычисления Omega DeltaOmega=’) disp(tB*S2/sqrt(q*10^k)) disp(’Величина c=’) disp(c) disp(’------------’) end 61 1 2 3 4 5 |