Вычисление интегралов методом Монте-Карло
Математическое обоснование алгоритма вычисления интеграла. Принцип работы метода Монте–Карло. Применение данного метода для вычисления n–мерного интеграла. Алгоритм расчета интеграла. Генератор псевдослучайных чисел применительно к методу Монте–Карло.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.05.2009 |
Размер файла | 100,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
3
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ИНФОРМАТИКИ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КУРСОВАЯ РАБОТА
ВЫЧИСЛЕНИЕ ИНТЕГРАЛОВ МЕТОДОМ МОНТЕ - КАРЛО
Выполнил:
Руководитель:
Саратов, 2009
СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 1. МАТЕМАТИЧЕСКОЕ ОБОСНОВАНИЕ АЛГОРИТМА ВЫЧИСЛЕНИЯ ИНТЕГРАЛА
- 1.1 Принцип работы метода Монте - Карло
- 1.2 Применение метода Монте - Карло для вычисления n - мерного интеграла.
- 1.3 Сплайн - интерполяция 8
- 1.4 Алгоритм расчета интеграла
- 2. ГЕНЕРАТОР ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
- 2.1 Генератор псевдослучайных чисел применительно к методу Монте - Карло.
- 2.2 Алгоритм генератора псевдослучайных чисел
- 2.3 Проверка равномерности распределения генератора псевдослучайных чисел.
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ВВЕДЕНИЕ
Целью данной работы является создание программного продукта для участия в конкурсе, проводимом группой компаний «Траст» по созданию программных разработок. Для реализации было выбрано следующее технической задание:
Задание 12 Вычисление интегралов методом Монте - Карло.
Цель:
1) Реализация генератора случайных чисел для метода Монте - Карло.
2) Сравнение равномерного распределения и специально разработанного.
3) Вычисление тестового многомерного интеграла в сложной области.
Продукт:
1) Программный код в виде функции на языке С++ или Fortran .
2) Тестовые примеры в виде программы, вызывающие реализованные функции.
3) Обзор использованной литературы.
Для реализации данного технического задания был выбран язык C++. Код реализован в интегрированной среде разработки приложений Borland C++ Builder Enterprises и математически обоснован соответствующий способ вычисления интеграла.
1. МАТЕМАТИЧЕСКОЕ ОБОСНОВАНИЕ АЛГОРИТМА ВЫЧИСЛЕНИЯ ИНТЕГРАЛА
1.1 Принцип работы метода Монте - Карло
Датой рождения метода Монте - Карло признано считать 1949 год, когда американские ученые Н. Метрополис и С. Услам опубликовали статью под названием «Метод Монте - Карло», в которой были изложены принципы этого метода. Название метода происходит от названия города Монте - Карло, славившегося своими игорными заведениями, непременным атрибутом которых являлась рулетка - одно из простейших средств получения случайных чисел с хорошим равномерным распределением, на использовании которых основан этот метод.
Метод Монте - Карло это статистический метод. Его используют при вычислении сложных интегралов, решении систем алгебраических уравнений высокого порядка, моделировании поведения элементарных частиц, в теориях передачи информации, при исследовании сложных экономических систем.
Сущность метода состоит в том, что в задачу вводят случайную величину , изменяющуюся по какому то правилу . Случайную величину выбирают таким образом, чтобы искомая в задаче величина стала математическим ожидание от , то есть .
Таким образом, искомая величина определяется лишь теоретически. Чтобы найти ее численно необходимо воспользоваться статистическими методами. То есть необходимо взять выборку случайных чисел объемом . Затем необходимо вычислить выборочное среднее варианта случайной величины по формуле:
. (1)
Вычисленное выборочное среднее принимают за приближенное значение .
Для получения результата приемлемой точности необходимо большое количество статистических испытаний.
Теория метода Монте - Карло изучает способы выбора случайных величин для решения различных задач, а также способы уменьшения дисперсии случайных величин.
1.2 Применение метода Монте - Карло для вычисления n - мерного интеграла.
Рассмотрим n - мерный интеграл
для . (2)
Будем считать, что область интегрирования , и что ограниченное множество в . Следовательно, каждая точка х множества имеет n координат: .
Функцию возьмем такую, что она ограничена сверху и снизу на множестве : .
Воспользуемся ограниченностью множества и впишем его в некоторый n - мерный параллелепипед , следующим образом:
,
где - минимумы и максимумы, соответственно, - ой координаты всех точек множества : .
Доопределяем подынтегральную функцию таким образом, чтобы она обращалась в ноль в точках параллелепипеда , которые не принадлежат :
(3)
Таким образом, уравнение (2) можно записать в виде
. (4)
Область интегрирования представляет собой n - мерный параллелепипед со сторонами параллельными осям координат. Данный параллелепипед можно однозначно задать двумя вершинами , которые имеют самые младшие и самые старшие координаты всех точек параллелепипеда.
Обозначим через n-мерный вектор, имеющий равномерное распределение в параллелепипеде : , где .
Тогда ее плотность вероятностей будет определена следующим образом
(5)
Значение подынтегральной функции от случайного вектора будет случайной величиной , математическое ожидание которой является средним значением функции на множестве :
. (6)
Среднее значение функции на множестве равняется отношению значения искомого интеграла к объему параллелепипеда :
(7)
Обозначим объем параллелепипеда .
Таким образом, значение искомого интеграла можно выразить как произведение математического ожидания функции и объема n- мерного параллелепипеда :
(8)
Следовательно, необходимо найти значение математического ожидания . Его приближенное значение можно найти произведя n испытаний, получив, таким образом, выборку случайных векторов, имеющих равномерное распределение на . Обозначим и . Для оценки математического ожидания воспользуемся результатом
, (9)
где ,
,
- квантиль нормального распределения, соответствующей доверительной вероятности .
Умножив двойное неравенство из (9) на получим интервал для I:
. (10)
Обозначим точечную оценку . Получаем оценку (с надежностью ):
. (11)
Аналогично можно найти выражение для относительной погрешности :
. (12)
Если задана целевая абсолютная погрешность , из (11) можно определить объем выборки, обеспечивающий заданную точность и надежность:
. (13)
Если задана целевая относительная погрешность, из (12) получаем аналогичное выражение для объема выборки:
. (14)
1.3 Сплайн - интерполяция.
В данном программном продукте реализована возможность задавать дополнительные ограничения области интегрирования двумя двумерными сплайн - поверхностями (для подынтегральной функции размерности 3). Для задания этих поверхностей используются двумерные сплайны типа гибкой пластинки \4\.
Под сплайном (от англ. spline - планка, рейка) обычно понимают агрегатную функцию, совпадающую с функциями более простой природы на каждом элементе разбиения своей области определения. Сплайн - функция имеет следующий вид:
. (15)
Исходные данные представляют собой троек точек .
Коэффициенты и определяются из системы:
, (16)
где ,
.
1.4 Алгоритм расчета интеграла
Реализованный алгоритм включает следующие шаги:
1) выбирается начальное значение , разыгрываются случайные векторы из и определяются и ;
2) в зависимости от вида погрешности (абсолютная, относительная) определяется достигнутая погрешность; если она меньше целевой, вычисление прерывается;
3) по формулам (13) или (14) вычисляется новый объем выборки;
4) объем выборки увеличивается на 20%
5) переход к шагу 1;
6) конец.
2. ГЕНЕРАТОР ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ
2.1 Генератор псевдослучайных чисел применительно к методу Монте - Карло.
В любом алгоритме использующем метод Монте - Карло генератор псевдослучайных чисел играет очень важную роль. Степень соответствия псевдослучайных чисел заданному распределению является важным фактором проведения качественных статистических испытаний.
2.2 Алгоритм генератора псевдослучайных чисел
В программе реализован конгруэнтный метод генерации псевдослучайных чисел \3\:
, (17)
где =8192,
=67101323.
Авторский код, реализующий защиту от переполнения был, реализован на С++. Перед использование первые три числа последовательности удаляются. Для получении чисел из интервала (0,1) все числа делятся на .
2.3 Проверка равномерности распределения генератора псевдослучайных чисел.
Проверка равномерности распределения псевдослучайных чисел проводилась с помощью стандартного критерия ч2 \2\.
Были использованы 3 последовательности псевдослучайных чисел, определяемых стартовыми значениями 1, 1001, 1000000 длиной 300000.
Интервал (0,1) подразделялся на 50 равных интервалов и программно подсчитывались абсолютные частоты (рис. 1).
Рис. 1
Результаты проверки приведены в Таблице 1.
Таблица 1
стартовое значение ГСЧ |
||||
1 |
1001 |
1000000 |
||
хи-квадрат |
44.0533333333333 |
45.007 |
48.618 |
|
df |
50 |
50 |
50 |
|
p-значение |
0.709735881642893 |
0.673522612551685 |
0.528941919633451 |
Следовательно, равномерность распределения не отвергается на уровне 5%.
ЗАКЛЮЧЕНИЕ
В заключение можно сказать, что поставленная задача была полностью выполнена. То есть на языке С++ были разработаны генератор псевдослучайных чисел, функция рассчитывающая интеграл методом Монте - Карло (Приложение 1); был проведен расчет тестовых многомерных интегралов (Приложение 2); в интегрированной среде разработки приложений Borland C++ Builder Enterprises 7.0 был создан программный продукт «CarloS», реализующий описанные выше алгоритмы (Приложение 3).
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Бережная Е. В., Бережной В. И. Математические методы моделирования экономических систем. - М.: Финансы и статистика, 2001. - 368 с.
2. Мюллер П., Нойман П., Шторм Р. Таблицы по математической статистике. - М.: Финансы и статистика, 1982. - 278 с.
3. Теннант-Смит Дж. Бейсик для статистиков. - М.: Мир, 1988. - 208 с.
4. Baranger J. Analyse numerique. Hermann, 1991.
5. Маделунг Э. Математический аппарат физики. Справочное руководство. М.: Наука, 1968., с.287.
6. В.Е. Гмурман Теория вероятностей и математическая статистика - М.: Высшая школа, 2003
1. ПРИЛОЖЕНИЕ 1
ЛИСТИНГИ ОСНОВНЫХ ФУНКЦИЙ
Листинг 1 Функция расчета интеграла
void integral ()
{
// вычисление интеграла методом Монте - Карло
// размерность области интегрирования
unsigned d_int=fun_dim;
//----- 3 d график --------------------------------------------------------
// максимальное число троек
unsigned plot_dim_max=10000;
// матрица троек
pmatd xyz,xyz_tmp;
if (d_int==3) xyz=new matd(plot_dim_max,3);
//-------------------------------------------------------------------------
// индикатор относительной погрешности
mcres.relok=Read1double("error_type.txt");
// целевая погрешность
mcres.dlt_int=Read1double("error_value.txt");
// номер стандартного значения доверительной вероятности (начиная с 0)
int nome_int=Read1double("error_omega.txt");
// ГСЧ
unsigned long b=m_rng*m_rng-d_rng,c,r,i,PSChunk;
// "росток" ГСЧ
mcres.rng_seed=Read1double("rng_seed.txt");
pmatd fun_b, fun_A, con_b, con_A, con_U, con_v, \
a_int, b_int, ba_int, x_int, xyz_top, xyz_bottom;
unsigned j,ii,jj,con_ok;
struct date dat;
struct time tim;
pspl2d sp_top,sp_bottom;
// квантили нормального распределения
double omegas_int[6]={0.9,0.95,0.99,0.999,0.9999,0.99999};
double zs_int[6]={1.64485362695147,1.95996398454005,2.5758293035489, \
3.29052673149191, 3.89059188641317, 4.4171734134667};
mcres.omega_int=omegas_int[nome_int];
mcres.z_int=zs_int[nome_int];
double fun_cd,con_wd,fu_int,con_sum,sum1_int,sum2_int;
// вид интегрируемой функции
// 0 - постоянная
// 1 - линейная
// 2 - квадратичная
mcres.fun_type=Read1double("fun_kind.txt");
// вид системы ограничений
// 0 - отсутствуют (весь параллелепипед)
// 1 - линейные
// 2 - квадратичное
// 3 - сплайн - поверхности
mcres.con_type=Read1double("con_type.txt");
// загрузка параметров интегрируемой функции
switch (mcres.fun_type)
{
case 2: fun_A=new matd("fun_A.txt");
case 1: fun_b=new matd("fun_b.txt");
case 0: fun_cd=Read1double("fun_c.txt");
}
// загрузка параметров ограничений
switch (mcres.con_type)
{
case 3: // сплайн - поверхности
// верхняя
xyz_top=new matd("xyz_top.txt");
// нижняя
xyz_bottom=new matd("xyz_bottom.txt");
// двумерная интерполяция
sp_top=new spl2d(xyz_top);
sp_bottom=new spl2d(xyz_bottom);
break;
case 2: // квадратичная функция ограничений
con_U=new matd("con_U.txt");
con_v=new matd("con_v.txt");
con_wd=Read1double("con_w.txt");
break;
case 1: // линейные ограничения
con_b=new matd("con_b.txt"); con_A=new matd("con_A.txt");
}
// объемлющий параллелепипед
a_int=new matd("con_xmin.txt");
b_int=new matd("con_xmax.txt");
// разность границ параллелепипеда
ba_int=new matd;
ba_int=&(*b_int - (*a_int));
// аргумент интегрируемой функции
x_int=new matd(d_int,1);
//объем объемлющего параллелепипеда
mcres.V0_int=1;
for (j=1; j <= d_int; j++)
{
if (_p(ba_int,j,1) <= 0)
{
DbBox("Нижняя граница объемлющего параллелепипеда выше верхней для \
координаты ",j);
goto clean_exit;
}
mcres.V0_int=mcres.V0_int*_p(ba_int,j,1);
}
// начальный объем выборки
mcres.n1_int=10000;
// основной цикл для достижения заданной точности
// число итераций, потребовавшихся для достижения заданной точности
mcres.n_ite=0;
getdate(&dat); gettime(&tim); mcres.t_start=dostounix(&dat,&tim);
WaitForm->Show();
while (1)
{
mcres.n_ite++;
WaitForm->Edit1->Text=mcres.n_ite;
WaitForm->Edit2->Text=mcres.n1_int;
WaitForm->ProgressBar1->Position=0;
WaitForm->Refresh();
// генерация случайных точек и накопление суммы
sum1_int=0; sum2_int=0;
mcres.in_G_int=0;
PSChunk=long(mcres.n1_int/50.0);
// запуск ГСЧ
r=mcres.rng_seed;
for (i=1; i < 3; i++)
{
c=int(r/m_rng);
r=b*c+m_rng*(r-m_rng*c);
if (r > d_rng) r=r-d_rng;
}
for (i=1; i <= mcres.n1_int; i++)
{
// случайный вектор
for (j=1; j <= d_int; j++)
{
// случайное число
c=int(r/m_rng);
r=b*c+m_rng*(r-m_rng*c);
if (r > d_rng) r=r-d_rng;
_p(x_int,j,1)=_p(a_int,j,1)+_p(ba_int,j,1)*double(r)/d_rng;
}
// прогресс
if (!(i % PSChunk))
{
WaitForm->ProgressBar1->Position=100.0*(i-1)/(mcres.n1_int-1);
WaitForm->Refresh();
}
// проверка ограничения
con_ok=1;
switch (mcres.con_type)
{
case 3: // сплайн - поверхности
if ((_p(x_int,3,1) < sp_bottom->f(_p(x_int,1,1), \
_p(x_int,2,1)))||(_p(x_int,3,1) > sp_top->f(_p(x_int,1,1),_p(x_int,2,1)))) con_ok=0;
break;
case 2: // квадратичная функция ограничений
con_sum=0;
for (ii=1; ii <= d_int; ii++)
for (jj=1; jj <= d_int; jj++)
if (_p(con_U,ii,jj) != 0)
con_sum += _p(x_int,ii,1)*_p(con_U,ii,jj)*_p(x_int,jj,1);
for (ii=1; ii <= d_int; ii++)
if (_p(con_v,ii,1) != 0)
con_sum += _p(con_v,ii,1)*_p(x_int,ii,1);
if (con_sum > con_wd) con_ok=0;
break;
case 1: // линейная функция ограничений
for (ii=1; ii <= con_A->nl; ii++)
{
con_sum=0;
for (jj=1; jj <= d_int; jj++)
con_sum += _p(con_A,ii,jj)*_p(x_int,jj,1);
if (con_sum > _p(con_b,ii,1)) { con_ok=0; break; }
}
}
fu_int=0;
if (con_ok != 0)
{
mcres.in_G_int++;
// точки 3d графика
if (d_int==3)
if (mcres.in_G_int <= plot_dim_max)
{
_p(xyz,mcres.in_G_int,1)=_p(x_int,1,1);
_p(xyz,mcres.in_G_int,2)=_p(x_int,2,1);
_p(xyz,mcres.in_G_int,3)=_p(x_int,3,1);
}
// значение интегрируемой функции
switch (mcres.fun_type)
{
case 2: // квадратичный член
for (ii=1; ii <= d_int; ii++)
for (jj=1; jj <= d_int; jj++)
if (_p(fun_A,ii,jj) != 0)
fu_int += _p(x_int,ii,1)*_p(fun_A,ii,jj)*_p(x_int,jj,1);
case 1: // линейный член
for (ii=1; ii <= d_int; ii++)
if (_p(fun_b,ii,1) != 0)
fu_int += _p(fun_b,ii,1)*_p(x_int,ii,1);
case 0: // постоянная
fu_int += fun_cd;
}
}
sum1_int+=fu_int; sum2_int+=fu_int*fu_int;
}
// оценка мат. ожидания и дисперсии
mcres.f1_int=sum1_int/mcres.n1_int;
mcres.vari_int=(sum2_int-sum1_int*sum1_int/mcres.n1_int)/(mcres.n1_int-1);
// расчет погрешности
if (mcres.relok==0)
{
// абсолютная погрешность
mcres.deltar=mcres.V0_int*mcres.z_int*sqrt(mcres.vari_int/mcres.n1_int);
}
else
{
// относительная погрешность
if (mcres.f1_int!=0)
{
mcres.deltar=mcres.z_int/fabs(mcres.f1_int)*sqrt(mcres.vari_int/mcres.n1_int);
}
else
{
// форма результатов
mcres.inte_int=0;
mcres.deltar=0;
getdate(&dat); gettime(&tim); mcres.t_end=dostounix(&dat,&tim);
mcres.t_calc=mcres.t_end-mcres.t_start;
InfoBox("Оценка интеграла = 0 (выбрана относ. погрешность), вычисление \
прервано.");
ResultForm->Show();
WaitForm->Close();
goto clean_exit;
}
}
WaitForm->Edit3->Text=mcres.deltar;
WaitForm->Refresh();
if (mcres.deltar < mcres.dlt_int)
{
// точность достаточна
mcres.inte_int=mcres.V0_int*mcres.f1_int;
getdate(&dat); gettime(&tim); mcres.t_end=dostounix(&dat,&tim);
mcres.t_calc=mcres.t_end-mcres.t_start;
ResultForm->Show();
break;
}
// вычисление нового объема выборки
if (mcres.relok==0)
{
// абс. погрешность
mcres.n1_int=ceil(mcres.vari_int*pow(mcres.V0_int*mcres.z_int/mcres.dlt_int,2));
}
else
{
// отн.погрешность
mcres.n1_int=ceil(mcres.vari_int*pow(mcres.z_int/mcres.dlt_int/mcres.f1_int,2));
}
// корректировка объема выборки в большую сторону
//для сокращения числа итераций
mcres.n1_int=1.2*mcres.n1_int;
// минимальный объем выборки
if (mcres.n1_int < 1000) mcres.n1_int=1000;
} // конец основного цикла
WaitForm->Close();
// 3d график
if (d_int==3)
{
if (mcres.in_G_int==0)
{
// множество точек пусто
Zero_File("xyz.txt");
}
else
if (mcres.in_G_int < xyz->nl)
{
// точек не набралось, чтобы заполнить матрицу
xyz_tmp=new matd(mcres.in_G_int,3);
for (i=1; i <= mcres.in_G_int; i++)
{
_p(xyz_tmp,i,1)=_p(xyz,i,1);
_p(xyz_tmp,i,2)=_p(xyz,i,2);
_p(xyz_tmp,i,3)=_p(xyz,i,3);
}
xyz_tmp->txprint("xyz.txt");
delete xyz_tmp;
}
else
{
// вся матрица заполнена
xyz->txprint("xyz.txt");
}
} // конец d_int==3
clean_exit:
// очистка памяти
if (d_int==3) delete xyz;
switch (mcres.fun_type)
{
case 2: delete fun_A;
case 1: delete fun_b;
}
switch (mcres.con_type)
{
case 3: delete xyz_top,xyz_bottom,sp_top,sp_bottom; break;
case 2: delete con_U,con_v; break;
case 1: delete con_b,con_A;
}
delete a_int,b_int,ba_int,x_int;
} //integral
Листинг 2 структура для хранения результатов расчета интеграла
struct mcres_struct
{
// индикатор относительной погрешности
int relok;
// целевая погрешность
double dlt_int;
// достигнутая погрешность
double deltar;
// доверительная вероятность
double omega_int;
// квантиль норм. распределения
double z_int;
// "росток" ГСЧ
unsigned long rng_seed;
// ?число итераций, потребовавшихся для достижения заданной точности
unsigned n_ite;
// объем выборки на последней итерации
unsigned long n1_int;
// число точек попавших в область интегрирования
unsigned in_G_int;
// интеграл
double inte_int;
// объем объемлющего параллелепипеда
double V0_int;
// выборочное среднее
double f1_int;
// выборочная дисперсия
double vari_int;
// время начала счета
time_t t_start;
// время окончания счета
time_t t_end;
// продолжительность вычисления интеграла
time_t t_calc;
// вид интегрируемой функции
int fun_type;
// вид системы огрничений
int con_type;
}; // mcres_struct
ПРИЛОЖЕНИЕ 2
ТЕСТОВЫЕ ПРИМЕРЫ
Пример 1 Интеграл от квадратичной функции по 3-мерному симплексу.
Точное значение интеграла:
Приближенное значение найдено для целевой абсолютной погрешности 0.00001.
Погрешность: 0.000034416630896 или 0.014749984670 %.
Примеры 2-10 Объемы многомерных шаров
Точные и приближенные объемы многомерных шаров приведены в следующей таблице.
Объем точный Источник [5], с. 287. |
Объем приближенный Вычислено в Maple (20 значащих цифр). |
Оценка CarloS Расчет с целевой относительной погрешностью 2% |
Относительная погрешность, % |
||
2 |
3.1415926535897932385 |
3.1504 |
0.280346543342 |
||
3 |
4.1887902047863909846 |
4.2032 |
0.344008520578 |
||
4 |
4.9348022005446793096 |
4.98099547511312 |
.936071451118 |
||
5 |
5.2637890139143245968 |
5.18913116403891 |
-1.4183290720439 |
||
6 |
5.1677127800499700296 |
5.16153372226575 |
-.1195704569352 |
||
7 |
4.7247659703314011698 |
4.70163814726423 |
-.4895019819476 |
||
8 |
4.0587121264167682184 |
3.98117943332154 |
-1.9102782035357 |
||
9 |
3.2985089027387068695 |
3.30542485033746 |
.209668908064 |
||
10 |
2.5501640398773454440 |
2.55096385956571 |
.31363460384e-1 |
Подобные документы
Исследование способа вычисления кратных интегралов методом Монте-Карло. Общая схема метода Монте-Карло, вычисление определенных и кратных интегралов. Разработка программы, выполняющей задачи вычисления значений некоторых примеров кратных интегралов.
курсовая работа [349,3 K], добавлен 12.10.2009Некоторые сведения теории вероятностей. Математическое ожидание, дисперсия. Точность оценки, доверительная вероятность. Доверительный интервал. Нормальное распределение. Метод Монте-Карло. Вычисление интегралов методом Монте-Карло. Алгоритмы метода.
курсовая работа [112,9 K], добавлен 20.12.2002Метод Монте-Карло як метод моделювання випадкових величин з метою обчислення характеристик їхнього розподілу, оцінка похибки. Обчислення кратних інтегралів методом Монте-Карло, його принцип роботи. Приклади складання програми для роботи цим методом.
контрольная работа [41,6 K], добавлен 22.12.2010Вычисление интеграла, выполнение интегрирования по частям. Применение метода неопределенных коэффициентов, приведение уравнения к системе. Введение вспомогательных функций в процессе поиска решения уравнения и вычисления интеграла, разделение переменных.
контрольная работа [617,2 K], добавлен 08.07.2011Использование численных методов, позволяющих найти приближенное значение определенного интеграла с заданной точностью. Анализ формул трапеции и параболы (Симпсона). Основной принцип построения формул приближенного вычисления определенного интеграла.
презентация [96,6 K], добавлен 18.09.2013Способы вычисления интегралов. Формулы и проверка неопределенного интеграла. Площадь криволинейной трапеции. Неопределенный, определенный и сложный интеграл. Основные применения интегралов. Геометрический смысл определенного и неопределенного интегралов.
презентация [1,2 M], добавлен 15.01.2014История интегрального исчисления. Определение и свойства двойного интеграла. Его геометрическая интерпретация, вычисление в декартовых и полярных координатах, сведение его к повторному. Применение в экономике и геометрии для вычисления объемов и площадей.
курсовая работа [2,7 M], добавлен 16.10.2013Понятие определенного интеграла, его геометрический смысл. Численные методы вычисления определенных интегралов. Формулы прямоугольников и трапеций. Применение пакета Mathcad для вычисления интегралов, проверка результатов вычислений с помощью Mathcad.
курсовая работа [1,0 M], добавлен 11.03.2013Математическая модель: определение интеграла и его геометрический смысл. Приближённые методы вычисления. Формула прямоугольников, трапеций, парабол. Программа для вычисления значения интеграла методом трапеций в среде пакета Matlab. Цикл if и for.
контрольная работа [262,8 K], добавлен 05.01.2015Получение интервальной оценки. Построение доверительного интервала. Возникновение бутстрапа или практического компьютерного метода определения статистик вероятностных распределений, основанного на многократной генерации выборок методом Монте-Карло.
курсовая работа [755,6 K], добавлен 22.05.2015