- •Министерство образования и науки Российской Федерации
- •Задание
- •«Численные методы»
- •Министерство образования и науки Российской Федерации
- •Содержание
- •Введение
- •Историческая справка
- •Вычисление интеграла в пространстве методом Монте-Карло Детерминистический метод
- •Обычный метод Монте-Карло
- •Геометрический метод
- •Вычисление кратных интегралов в пространстве методом Монте-Карло Обычный метод Монте-Карло
- •Заключение
- •Приложения Текст программы «Вычисление интеграла методом Монте-Карло»
- •Результат работы программы
- •Список литературы
Вычисление кратных интегралов в пространстве методом Монте-Карло Обычный метод Монте-Карло
Пусть в пространстве задана функция , где , причём,хотя бы один раз, где,– компактное множество,- ограничена и сверху, и снизу. Требуется вычислить интеграл
Так как множество – компакт, то впишем его в n-мерный параллелепипед P с осями, параллельными осям координат. Зададим его двумя вершинами – самой младшей и самой старшей координатами и, причём. Очевидно, что объёмP можно выразить следующим образом:
Доопределим подынтегральную функцию следующим образом:
тогда исходный интеграл перепишем следующим образом:
Рассмотрим n-мерный вектор, имеющий равномерное распределение в параллелепипеде P, , тогда значение подынтегральной функции от случайного вектора будет выражаться как математическое ожидание следующим образом:
случайного вектора p, причём
Разобьём параллелепипед P на векторы классом разбиений ,
Причём установим между номерами разбиений взаимно однозначное соответствие между номерами разбиений в классе разбиений.
Тогда математическое ожидание можно оценить следующим образом:
Заключение
В данной работе рассмотрены методы численного вычисления интегралов с помощью метода Монте-Карло в пространствах и . В пространстве были рассмотрены детерминистический, обычный и геометрический методы. Получены следующие выводы: наиболее хорошая сходимость у детерминистического метода, а наиболее плохая - у геометрического метода. Ввиду слабой сходимости геометрического метода не актуально рассматривать его в пространстве . Также отмечено, что существенным отличием метода Монте-Карло от близких по характеру изучаемых в классической вычислительной математике является необходимость моделирования вероятностных распределений.
Приложения Текст программы «Вычисление интеграла методом Монте-Карло»
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<clocale>
void main()
{
setlocale(LC_CTYPE, "");
srand((unsigned)time(NULL));
printf("Функция: z=(8*x*sin(x)+7*x*y^3*cos(y)^2))/cos(x-y)^(1/2)\n");
float Zmax=0;
for(float x=0;x<=1;x=x+0.01)
{
for(float y=0;y<=1;y=y+0.01)
{
if(Zmax<(float)(8*x*sin(x)+7*x*pow(y,3)*pow(cos(y),2))/pow(cos(x-y),1/2))
{
Zmax=(float) (8*x*sin(x)+7*x*pow(y,3)*pow(cos(y),2))/pow(cos(x-y),1/2);
}
}
}
float SumINTEGR=0;//Сумма интегралов за 10 опытов
for(int i=1;i<=10;i++)
{
float X,Y,Z;// Рандомные точки
int HIT=0;// Число попаданий точек в искомый объем под поверхностью функции
float INTEGR=0;//Значение интеграла
for(float N=1;N<=183065;N++)
{
X=(float)(rand()%101)/100;
Y=(float)(rand()%101)/100;
Z=(float)(rand()%1001)/100;
if(Z<=(8*X*sin(X)+7*X*pow(Y,3)*pow(cos(Y),2))/pow(cos(X-Y),1/2))
{
HIT=HIT+1;
}
}
INTEGR=(float)HIT/183065*10;
SumINTEGR=SumINTEGR+INTEGR;
}
float averINTEGR=SumINTEGR/10;// Среднее значение интеграла в 10 случаях
printf("Значение интеграла - %f\n", averINTEGR);
printf("Z максимальное - %f",Zmax);
getch();
}