ЛР 3 Терехова (1). Национальный Исследовательский Ядерный
Скачать 67.79 Kb.
|
Национальный Исследовательский Ядерный Университет МИФИ Институт атомной энергетики Институт Интеллектуальных кибернетических систем Отчёт по лабораторной работе №3 по Моделированию систем “ Вычисление интегралов методом Монте-Карло” Студент: Терехова А. Н. Группа: ИС-Б19 Проверила: Гулина О. М. Обнинск. 2022 Постановка задачи: вычислить приближённо данный интеграл, используя метод Монте-Карло, двумя способами. Сравнить полученные значения интеграла, выборочной дисперсии. Вариант 4 Вычисление интеграла: 1 метод). Метод Монте-Карло с постоянной плотностью - плотность - выборочная дисперсия – ошибка 2 метод). Метод Монте-Карло с функцией плотности распределения (метод существенной выборки) Нужно найти коэффициент k, используя условие нормировки: После постановки k в заданную плотность распределения, находим величину . Введем эту плотность под наш интеграл и вычислим его с помощью метода Монте-Карло - выборочная дисперсия - ошибка Код и алгоритм программы: 1)Вычисляем интеграл методом Монте-Карло с постоянной плотностью (1 способ) void FirstWay() { cout<<"ПЕРВЫЙ СПОСОБ"< for(int j =0;j Mx1+=pow(mass[j],7)/N; Dx1+=pow(Mx1,2)/N; } Dx1=Mx1-pow(Mx1,2); Epsilon1=2*sqrt(Dx1/N); cout<<"Мат. ожидание при "< cout<<"Дисперсия при "< cout<<"Ошибка "< } 2) Вычисляем интеграл методом Монте-Карло с заданной функцией плотности (2 способ) void SecondWay() { cout<<"ВТОРОЙ СПОСОБ"< for(int s =0;s NewMass[s]=pow(mass[s],1.0/7); Mx2+=NewMass[s]/7; Dx2+=pow(NewMass[s],2); } Mx2=Mx2/N; Dx2=Dx2/(49*N)-pow(Mx2,2); Epsilon2=2*sqrt(Dx2/N); cout<<"Мат. ожидание при "< cout<<"Дисперсия при "< cout<<"Ошибка "< } 3)Полученные результаты Сравнительные таблицы и графики
Ваш генератор проверен для 10000? Графики зависимости значения интеграла от количества случайных величин Графики зависимости дисперсии от количества случайных величин Графики зависимости погрешности эпсилон от количества случайных величин Вывод: В ходе выполнения работы были получены значения данного интеграла с помощью метода Монте-Карло, при разных плотностях и количестве случайных величин. Полученные значение близки к точному значению интеграла: Это неправда!!! Замечено, что при увеличении количества используемых случайных величин уменьшается погрешность вычисления интеграла. Также второй метод дает наиболее точное значение интеграла (на 0.1 % точнее, чем первый). При количестве случайных величин, равном 10000, значение дисперсии меньше в 169 раз, а ошибки меньше в 15 раз. Таким образом, второй метод позволяет вычислить интеграл точнее. |