Перейти на главную страницу
Выполнила:
студентка гр. Эбб-11-1
Булаева Н.И.
Аханова М.А.
Тюмень 2012 г.
Содержание
Введение…………………………………………………………………………………3
4. Программное и аппаратное обеспечение…………………………………………..15
5. Руководство пользователя…………………………………………………………..16
6. Заключение…………………………………………………………………………..17
7. Список использованных источников………………………………………………18
8.Приложеник А. Листинг программы……………………………………………….19
9. Приложение Б. Результат выполнения программы……………………………….20
ВВЕДЕНИЕ.
Метод Монте-Карло – это численный метод решения математических задач при помощи моделирования случайных величин.
Датой рождение метода Монте-Карло принято считать 1949 г., когда появилась статья под названием «Метод Монте-Карло» (Н. Метрополис, С. Улам). Создателями этого метода считают американских математиков Дж. Неймана и С. Улама. В нашей стране первые статьи были опубликованы в 1955–56 гг. (В.В. Чавчанидзе, Ю.А. Шрейдер, В.С. Владимиров)
Однако теоретическая основа метода была известна давно. Кроме того, некоторые задачи статистики рассчитывались иногда с помощью случайных выборок, т.е. фактически методом Монте-Карло. Однако до появления ЭВМ этот метод не мог найти сколько-нибудь широкого применения, так как моделировать случайные величины вручную – очень трудоёмкая работа. Таким образом, возникновение метода Монте-Карло как весьма универсального численного метода стало возможным только благодаря появлению ЭВМ.
Само название «Монте-Карло» происходит от города Монте-Карло в княжестве Монако, знаменитого своим игорным домом, а одним из простейших механических приборов для получения случайных величин является рулетка.
Первоначально метод Монте-Карло использовался главным образом для решения задач нейтронной физики, где традиционные численные методы оказались малопригодными. Далее его влияние распространилось на широкий круг задач статистической физики, очень разных по своему содержанию. К разделам науки, где всё в большей мере используется метод Монте-Карло, следует отнести задачи теории массового обслуживания, задачи теории игр и математической экономики, задачи теории передачи сообщений при наличии помех и ряд других.
Метод Монте-Карло оказал и продолжает оказывать существенное влияние на развитие методов вычислительной математики и при решении многих задач успешно сочетается с другими вычислительными методами и дополняет их. Его применение оправдано в первую очередь в тех задачах, которые допускают теоретико-вероятностное описание. Это объясняется как естественность получения ответа с некоторой заданной вероятностью в задачах с вероятностным содержанием, так и существенным упрощением процедуры решения.
В подавляющем большинстве задач, решаемых методами Монте-Карло, вычисляют математические ожидания некоторых случайных величин. Так как чаще всего математические ожидания представляют собой обычные интегралы, в том числе и кратные, то центральное положение в теории методов Монте-Карло занимают методы вычисления интегралов.
Объект исследования: определенные интегралы.
Предмет: программирование вычисления определенного интеграла.
Входная информация: подынтегральная функция, интервал интегрирования.
Выходная информация: значение определенного интеграла.
Цель работы: разработка программы для решения определенных интегралов методом Монте-Карло.
Задачи:
Методы статистических испытаний, называемые также методами Монте-Карло, применяются к решению разнообразных задач вычислительной математики и, в том числе, для вычисления интегралов.
1.ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ.
Рассмотрим один из простых вариантов метода Монте-Карло, который можно интерпретировать как статистический метод прямоугольников. На отрезке интегрирования выберем N случайных точек
, являющихся значениями случайной величины x с равномерным распределением на данном отрезке. Для каждой точки вычислим площадь прямоугольника, одна сторона которого равна
, а вторая равна значению функции в данной точке
:
. Вследствие случайности узла
, значение площадей
также будет носить случайный характер. В качестве приближенного значения интеграла можно принять результат усреднения площадей
:
Теоретическое обоснование рассмотренного варианта метода Монте-Карло для вычисления интегралов состоит в следующем. Пусть x – случайная величина с равномерным распределением на отрезке . Это означает, что ее плотность вероятности задается соотношением:
что в итоге приводит к соотношению:
При проведении анализа по методу Монте-Карло компьютер использует процедуру генерации псевдослучайных чисел для имитации данных из изучаемой генеральной совокупности. Процедура анализа по методу Монте-Карло модуля Моделирование структурными уравнениями строит выборки из генеральной совокупности в соответствии с указаниями пользователя, а затем производит следующие действия:
Для каждого повторения по методу Монте-Карло:
ЭВМ позволяют легко получать так называемые псевдослучайные числа (при решении задач их применяют вместо случайных чисел); это привело к широкому внедрению метода во многие области науки и техники (статистическая физика, теория массового обслуживания, теория игр и др.). Метод Монте-Карло используют для вычисления интегралов, в особенности многомерных, для решения систем алгебраических уравнений высокого порядка, для исследования различного рода сложных систем (автоматического управления, экономических, биологических и т.д.).
Сущность метода Монте-Карло состоит в следующем: требуется найти значение а некоторой изучаемой величины. Для этого выбирают такую случайную величину X, математическое ожидание которой а: М(Х)=а
Практически же поступают так: производят п испытаний; в результате которых получают п возможных значений X, вычисляют их среднее арифметическое
Поскольку метод Монте-Карло требует проведения большого числа испытаний, его часто называют методом статистических испытаний. Теория этого метода указывает, как наиболее целесообразно выбрать случайную величину X, как найти ее возможные значения. В частности, разрабатываются способы уменьшения дисперсии используемых случайных величин, в результате чего уменьшается ошибка, допускаемая при замене искомого математического ожидания а его оценкой а *.
Отыскание возможных значений случайной величины Х (моделирование) называют «разыгрыванием случайной величины». Изложим лишь некоторые способы разыгрывания случайных величин и укажем, как оценить допускаемую при этом ошибку.
2.ОПИСАНИЕ АЛГОРИТМА ПРОГРАММЫ.
2.1.БЛОК СХЕМА ПРОГРАММЫ.
Для упрощения разработки программы непосредственно в среде Pascal необходимо составить блок-схему, содержащую основные этапы и компоненты программы.
t,n,i,a,b: integer;
Case t of
1: f:=m*exp(l*ln(v*x+c))+d;
2: f:=exp(l*(v*x+c)*ln(m))+d;
3: f:=m*(ln(v*x+c)/ln(l))+d;
4: f:=m*sin(l*(v*x+c))+d;
5: f:=m*cos(l*(v*x+c))+d;
‘1: f=m*(v*x+c)^l+d;’
‘2: f=m^(l*(v*x+c))+d;’
‘3: f=m*log l(v*x+c)+d;’
‘4: f=m*sin(l*(v*x+c))+d;’
‘5: f=m*cos(l*(v*x+c))+d;’
‘a=’, ‘b=’, ‘c=’, ‘d=’
Ввод b
randomize
x:=a+g*k;
s:=s+(1+x);
2.2.ОСНОВНЫЕ ПЕРЕМЕННЫЕ ПРОГРАММЫ.
Автоматизация метода Монте-Карло позволяет оптимизировать его использование на практике и упростить расчеты.
Программа на Pascal – это набор некоторых команд. Начинается программа с ключевого слова PROGRAM, после которого следует имя программы:
PROGRAM pmk;
Далее идёт раздел переменных VAR, в котором описываются переменные:
VAR
k,p,s,g,x,m,l,c,d,v,Integral : real;
где:
a и b – нижний и верхний пределы интегрирования;
s, p – переменные для вычисления суммы по формулам;
k – длина промежутка интегрирования;
m,l,c,d,v – свободные переменные;
g – случайная величина из промежутка [0;1];
x – произвольная величина из [a;b].
Integral – результативная переменная.
В этом разделе указывается имена переменных и имена типов данных.
После описания переменных вводятся функции. Объявление функции состоит из:
- ключевого слова function, имени функции, списка формальных параметров и типа возвращаемого значения;
- раздела объявления локальных переменных или констант, если он требуется;
- тела функции, заключенного в операторные скобки begin end.
В функции помещаются формулы, по которым будут вычисляться интеграл:
Function F(x: real):real;
begin
1: f:=m*exp(l*ln(v*x+c))+d;
2: f:=exp(l*(v*x+c)*ln(m))+d;
3: f:=m*(ln(v*x+c)/ln(l))+d;
4: f:=m*sin(l*(v*x+c))+d;
5: f:=m*cos(l*(v*x+c))+d;
end;
end;
Write (Writeln) – команда вывода текста на экран;
Read (Readln) – запрос данных.
Итак, вводим запросы:
BEGIN
writeln('1: f=m*(v*x+c)^l+d');
writeln('3: f=m*log l(v*x+c)+d');
writeln('4: f=m*sin(l*(v*x+c))+d');
writeln('5: f=m*cos(l*(v*x+c))+d');
write('vyberite nomer funkcii: '); readln(t);
writeln('vvedite a, b, c, d,v:');
write('m='); readln(m);
write('l='); readln(l);
write('c='); readln(c);
write('d='); readln(d);
write(‘v=’);readln(v);
s:=0;
readln(a);
writeln(‘Введите промежуток интегрирования b:’);
readln(b);
writeln(‘Введите количество случайных значений (число испытаний):’);
readln(n);
Вычислим длину промежутка интегрирования:
k:=b-a; {Переменной“k”присвоим значение длины промежутка интегрирования}
Далее подключим процедуру randomize для генерации случайных значений g:
randomize;
for i:= 1 to n do {начало n испытаний}
begin
x:= a + g*k; {По этой формуле получается произвольная величина из [a; b] }
Далее вычисляем сумму s:
s:=s + f(x);
end; {конец испытаний}
writeln(‘s=’,s); {Сумма функции для n произвольных значений}
Далее по формуле вычисляем интеграл и выводим результат на экран:
Integral:=k*s/n ;
writeln(‘Интеграл=’,Integral);
readln;
3.ТЕСТИРОВАНИЕ ПРОГРАММЫ.
Проведем тестирование программы для проверки правильности ее работы.(Рис.1.1)
Для этого выберем одну из предложенных в программе функций, например, степенную функцию. Для этого введем цифру 1 с клавиатуры, когда программа запрашивает номер необходимой функции, и нажать клавишу Enter.
Далее программа просит ввести коэффициенты m,l,c,d,v для нашей функции. Вводим любые произвольные значения, например: m=2, l=5, c=25, d=6, v=12. Далее нажимаем Enter, вводим промежутки интегрирования a=-1, b=3 и количество случайных значений n=100.
После введения всех необходимых значений на экран выводится значение интеграла: Integral=4.93596630266724E+0007.
4.ПРОГРАММНОЕ И АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ПРОГРАММЫ.
Для работы программы требуются следующие системные и программные требования:
5.РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ.
6.ЗАКЛЮЧЕНИЕ.
Процесс выполнения данной работы представлял большой интерес и послужил хорошей возможностью для приобретения новых знаний и навыков, а также закрепления уже полученных.
Были рассмотрены основные свойства метода Монте-Карло и создана программа, показывающая возможности данного метода при использовании ЭВМ.
Было выяснено, что методом Монте-Карло можно решать определенные интегралы, не прибегая к сложным математическим вычислениям. Простота алгоритма метода Монте-Карло позволяет успешно реализовывать их на ЭВМ.
При выполнении данной курсовой работы было создано приложение, вычисляющее определенный интеграл методом Монте-Карло и, таким образом, была выполнена цель и задачи работы.
7.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.
1. Кнут Д.Э. Искусство программирования. Том 2. Получисленные алгоритмы: Пер. с англ. - М.: «Вильямс», 2000. — 682с.
2. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль (версия 5.5): Справ.-метод. пособие. – М.: Изд-во МАИ, 1992. – 576 с.
3.Данко П.Е., Попов А.Г. Высшая математика в упражнениях и задачах. Часть 1.Учебник. – М.: Москва «Высшая школа», 1986. – 416 с.
8.ПРИЛОЖЕНИЕ A.
ЛИСТИНГ ПРОГРАММЫ.
Program pmk;
Uses crt;
Var k,p,s,g,x,m,l,c,d,v,Integral : real;
t,n,i,a,b : integer;
begin
1: f:=m*exp(l*ln(v*x+c))+d;
2: f:=exp(l*(v*x+c)*ln(m))+d;
3: f:=m*(ln(v*x+c)/ln(l))+d;
4: f:=m*sin(l*(v*x+c))+d;
5: f:=m*cos(l*(v*x+c))+d;
end;
end;
writeln('1: f=m*(v*x+c)^l+d');
writeln('2: f=m^(l*(v*x+c))+d');
writeln('3: f=m*log l(v*x+c)+d');
writeln('4: f=m*sin(l*(v*x+c))+d');
writeln('5: f=m*cos(l*(v*x+c))+d');
write('vyberite nomer funkcii: '); readln(t);
writeln('vvedite m, l, c, d,v:');
write('m='); readln(m);
write('l='); readln(l);
write('c='); readln(c);
write('d='); readln(d);
write(‘v=’);readln(v);
s:=0;
readln(a);
writeln(‘Введите промежуток интегрирования b:’);
readln(b);
writeln(‘Введите количество случайных значений (число испытаний):’);
readln(n);
k:=b-a; {Переменной“k”присвоим значение длины промежутка интегрирования}
writeln(‘k=’,k);
randomize; {подключаем процедуру randomize для генерации случайных значений g}
for i:= 1 to n do {начало n испытаний}
begin
g:=random; {g - переменная вещественного типа, случайная величина из промежутка [0;1]}
s:=s + f(x);
end; {конец испытаний}
writeln(‘s=’,s); {Сумма функции для n произвольных значений}
Integral:=k*s/n ;
writeln(‘Интеграл=’,Integral);
END.
Метод Монте-Карло – это численный метод решения математических задач при помощи моделирования случайных величин
01 09 2014
1 стр.
Этим объясняется и тот факт, что название этой группе методов дал город Монте-Карло – столица европейского игорного бизнеса (казино)
01 09 2014
1 стр.
Монте-Карло – я посвящу отдельную заметку. Да всё как-то не складывалось. И вот недавно я стал более внимательно изучать методы управления валютными рисками. В материалах, посвящен
01 09 2014
1 стр.
Монте-Карло – мир роскоши и изыска, где сочетаются солнце, праздник, страсти и азарт. 300 солнечных дней в году, стройные пальмы на побережье, серпантин горных дорог, роскошные вил
01 09 2014
1 стр.
Обучающая: вспомним с учащимися, как вычисляются площади фигур, обсудить, площади которых фигур мы можем вычислять, рассказать учащимся о методе Монте-Карло
01 09 2014
1 стр.
Эти методы (как и вся теория вероятностей) выросли из попыток людей улучшить свои шансы в азартных играх. Этим объясняется и тот факт, что название этой группе методов дал город Мо
01 09 2014
1 стр.
Ницца/Монте-Карло (Франция, Вильфранш) – Пиза/Флоренция (Италия, Ливорно) – Рим (Италия, Чивитавеккья) о. Сардиния
15 09 2014
1 стр.
Львов- прага –Итальянская Швейцария- лугано- генуя-Ницца- антиб- сан-Поль де Ванс- канны- монако- монте-Карло- вильфранш-сюр-Mep- ментон -венеция-Вена-Львов
13 10 2014
1 стр.