Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло»




Скачать 163.14 Kb.
НазваниеКурсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло»
Дата публикации24.02.2013
Размер163.14 Kb.
ТипКурсовая
skachate.ru > Математика > Курсовая

МиНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ


Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«тюменский государственный нефтегазовый университет»

^ ИНСТИТУТ МЕНЕДЖМЕНТА И БИЗНЕСА
Кафедра «Математические методы в экономике»

КУРСОВАЯ РАБОТА
по предмету: Программирование
на тему: «Решение определенных интегралов методом Монте-Карло»

Выполнила:

студентка гр. Эбб-11-1

Булаева Н.И.
Руководитель:

Аханова М.А.

Тюмень 2012 г.

Содержание

Введение…………………………………………………………………………………3

  1. Описание предметной области………………………………………………………6

  2. Описание алгоритма программы……………………………………………………..9

    1. Блок схема программы………………………………………………………………9

    2. Основные переменные программы………………………………………………..11

3. Тестирование программы……………………………………………………………14

4. Программное и аппаратное обеспечение…………………………………………..15

5. Руководство пользователя…………………………………………………………..16

6. Заключение…………………………………………………………………………..17

7. Список использованных источников………………………………………………18

8.Приложеник А. Листинг программы……………………………………………….19

9. Приложение Б. Результат выполнения программы……………………………….20

ВВЕДЕНИЕ.

Метод Монте-Карло – это численный метод решения математических задач при помощи моделирования случайных величин.

Датой рождение метода Монте-Карло принято считать 1949 г., когда появилась статья под названием «Метод Монте-Карло» (Н. Метрополис, С. Улам). Создателями этого метода считают американских математиков Дж. Неймана и С. Улама. В нашей стране первые статьи были опубликованы в 1955–56 гг. (В.В. Чавчанидзе, Ю.А. Шрейдер, В.С. Владимиров)

Однако теоретическая основа метода была известна давно. Кроме того, некоторые задачи статистики рассчитывались иногда с помощью случайных выборок, т.е. фактически методом Монте-Карло. Однако до появления ЭВМ этот метод не мог найти сколько-нибудь широкого применения, так как моделировать случайные величины вручную – очень трудоёмкая работа. Таким образом, возникновение метода Монте-Карло как весьма универсального численного метода стало возможным только благодаря появлению ЭВМ.

Само название «Монте-Карло» происходит от города Монте-Карло в княжестве Монако, знаменитого своим игорным домом, а одним из простейших механических приборов для получения случайных величин является рулетка.

Первоначально метод Монте-Карло использовался главным образом для решения задач нейтронной физики, где традиционные численные методы оказались малопригодными. Далее его влияние распространилось на широкий круг задач статистической физики, очень разных по своему содержанию. К разделам науки, где всё в большей мере используется метод Монте-Карло, следует отнести задачи теории массового обслуживания, задачи теории игр и математической экономики, задачи теории передачи сообщений при наличии помех и ряд других.

Метод Монте-Карло оказал и продолжает оказывать существенное влияние на развитие методов вычислительной математики и при решении многих задач успешно сочетается с другими вычислительными методами и дополняет их. Его применение оправдано в первую очередь в тех задачах, которые допускают теоретико-вероятностное описание. Это объясняется как естественность получения ответа с некоторой заданной вероятностью в задачах с вероятностным содержанием, так и существенным упрощением процедуры решения.

В подавляющем большинстве задач, решаемых методами Монте-Карло, вычисляют математические ожидания некоторых случайных величин. Так как чаще всего математические ожидания представляют собой обычные интегралы, в том числе и кратные, то центральное положение в теории методов Монте-Карло занимают методы вычисления интегралов.

^ Объект исследования: определенные интегралы.

Предмет: программирование вычисления определенного интеграла.

Входная информация: подынтегральная функция, интервал интегрирования.

^ Выходная информация: значение определенного интеграла.

Цель работы: разработка программы для решения определенных интегралов методом Монте-Карло.

Задачи:

  • подобрать и изучить теоретический материал для вычисления определенного интеграла методом Монте-Карло;

  • исследовать основные понятия метода Монте-Карло;

  • рассмотреть экономическое применение метода Монте-Карло;

  • автоматизировать метод Монте-Карло для вычисления определённого интеграла в общем виде на языке Turbo Pascal;

  • сделать выводы по выполненной работе, протестировать программу.

Актуальность метода обуславливается широким применением определённого интеграла в экономике, физике, технике и т.д.

^ Предметная область:

Методы статистических испытаний, называемые также методами Монте-Карло, применяются к решению разнообразных задач вычислительной математики и, в том числе, для вычисления интегралов.

^ 1.ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ.

Рассмотрим один из простых вариантов метода Монте-Карло, который можно интерпретировать как статистический метод прямоугольников. На отрезке интегрирования http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image461.gif выберем N случайных точек http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image507.gif, являющихся значениями случайной величины x с равномерным распределением на данном отрезке. Для каждой точки вычислим площадь прямоугольника, одна сторона которого равна http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image508.gif, а вторая равна значению функции в данной точке http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image509.gifhttp://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image510.gif. Вследствие случайности узла http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image511.gif, значение площадей http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image512.gif также будет носить случайный характер. В качестве приближенного значения интеграла можно принять результат усреднения площадей http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image512.gif:

http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image513.gif


Теоретическое обоснование рассмотренного варианта метода Монте-Карло для вычисления интегралов состоит в следующем. Пусть x – случайная величина с равномерным распределением на отрезке http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image461.gif. Это означает, что ее плотность вероятности задается соотношением:http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image518.gif


Тогда любая функция http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image519.gif также будет случайной величиной, и ее математическое ожидание равно:

http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image520.gif




Или читая это равенство наоборот получим:

http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image521.gif





Если провести серию N независимых испытаний, в которых генерируется случайные числа http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image511.gif и вычисляются значения http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image522.gif, то для оценки математического ожидания http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image523.gif можно использовать выборочное среднее результатов независимых реализаций http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image524.gif:

http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image525.gif

что в итоге приводит к соотношению:

http://physics.herzen.spb.ru/library/01/01/nm_labs/differ_integration.files/image526.gif


При проведении анализа по методу Монте-Карло компьютер использует процедуру генерации псевдослучайных чисел для имитации данных из изучаемой генеральной совокупности. Процедура анализа по методу Монте-Карло модуля Моделирование структурными уравнениями строит выборки из генеральной совокупности в соответствии с указаниями пользователя, а затем производит следующие действия:

Для каждого повторения по методу Монте-Карло:

  1. Имитирует случайную выборку из генеральной совокупности,

  2. Проводит анализ выборки,

  3. Сохраняет результаты.

После большого числа повторений, сохраненные результаты хорошо имитирует реальное распределение выборочной статистики. ^ Метод Монте-Карло позволяет получить информацию о выборочном распределении в случаях, когда обычная теория выборочных распределений оказывается бессильной.

ЭВМ позволяют легко получать так называемые псевдослучайные числа (при решении задач их применяют вместо случайных чисел); это привело к широкому внедрению метода во многие области науки и техники (статистическая физика, теория массового обслуживания, теория игр и др.). Метод Монте-Карло используют для вычисления интегралов, в особенности многомерных, для решения систем алгебраических уравнений высокого порядка, для исследования различного рода сложных систем (автоматического управления, экономических, биологических и т.д.).

Сущность метода Монте-Карло состоит в следующем: требуется найти значение а некоторой изучаемой величины. Для этого выбирают такую случайную величину X, математическое ожидание которой а: М(Х)=а

Практически же поступают так: производят п испытаний; в результате которых получают п возможных значений X, вычисляют их среднее арифметическое



и принимают х в качестве оценки (приближенного значения) а * искомого числа а:

Поскольку метод Монте-Карло требует проведения большого числа испытаний, его часто называют методом статистических испытаний. Теория этого метода указывает, как наиболее целесообразно выбрать случайную величину X, как найти ее возможные значения. В частности, разрабатываются способы уменьшения дисперсии используемых случайных величин, в результате чего уменьшается ошибка, допускаемая при замене искомого математического ожидания а его оценкой а *.

Отыскание возможных значений случайной величины Х (моделирование) называют «разыгрыванием случайной величины». Изложим лишь некоторые способы разыгрывания случайных величин и укажем, как оценить допускаемую при этом ошибку.

^ 2.ОПИСАНИЕ АЛГОРИТМА ПРОГРАММЫ.

2.1.БЛОК СХЕМА ПРОГРАММЫ.

Для упрощения разработки программы непосредственно в среде Pascal необходимо составить блок-схему, содержащую основные этапы и компоненты программы.

начало



k,p,s,g,x,m,l,c,d,v,Integlal: real;

t,n,i,a,b: integer;




Функция F(x:real):real;

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;’



‘Выберите номер функции: k=’



‘Введите коэффициенты a, b, c, d:’

‘a=’, ‘b=’, ‘c=’, ‘d=’


S:=0



Ввод a

Ввод b

Ввод n


k:=b-a;

randomize



От 1 до n



g:=random;

x:=a+g*k;

s:=s+(1+x);




Ввод s


Integral:=k*s/n



Ввод integral


конец


^ 2.2.ОСНОВНЫЕ ПЕРЕМЕННЫЕ ПРОГРАММЫ.

Автоматизация метода Монте-Карло позволяет оптимизировать его использование на практике и упростить расчеты.

Программа на Pascal – это набор некоторых команд. Начинается программа с ключевого слова ^ PROGRAM, после которого следует имя программы:

PROGRAM pmk;

Далее идёт раздел переменных VAR, в котором описываются переменные:

VAR

k,p,s,g,x,m,l,c,d,v,Integral : real;

t,n,i,a,b, : integer;

где:

n – количество случайных значений;

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

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;

end;

end;

После всего этого переходим к основному телу программы. Код программы содержит различные команды. Самые распространенные:

Write (Writeln) – команда вывода текста на экран;

Read (Readln) – запрос данных.

Итак, вводим запросы:

BEGIN

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 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;

writeln(‘Введите промежуток интегрирования a:’);

readln(a);

writeln(‘Введите промежуток интегрирования b:’);

readln(b);

writeln(‘Введите количество случайных значений (число испытаний):’);

readln(n);

Вычислим длину промежутка интегрирования:

k:=b-a; {Переменной“k”присвоим значение длины промежутка интегрирования}

Далее подключим процедуру randomize для генерации случайных значений g:

randomize;

for i:= 1 to n do {начало n испытаний}

begin

g:=random; {g - переменная вещественного типа, случайная величина из промежутка [0;1]}

x:= a + g*k; {По этой формуле получается произвольная величина из [a; b] }

Далее вычисляем сумму s:

s:=s + f(x);

end; {конец испытаний}

writeln(‘s=’,s); {Сумма функции для n произвольных значений}

Далее по формуле вычисляем интеграл и выводим результат на экран:

Integral:=k*s/n ;

writeln(‘Интеграл=’,Integral);

readln;

END.


^ 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.

Рис.1.1

безымянный.jpg


^ 4.ПРОГРАММНОЕ И АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ПРОГРАММЫ.

Для работы программы требуются следующие системные и программные требования:

  • Операционная система: Windows XP/ Vista/ 7;

  • Оперативная память: 1,5 Мб

  • Жесткий диск: 512 кб

  • Наличие видео карты;

  • Клавиатура;

  • Установленная программа Turbo Pascal;


^ 5.РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ.

  1. Для начала работы в программе необходимо открыть файл-приложение mpk;

  2. После открытия программы высвечивается строка приветствия, затем пользователю предлагается выбрать одну из пяти предложенных функций;

  3. Согласно командам, которые выдает программа, вводить значения переменных, для перехода к следующей переменной необходимо нажимать Enter;

  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;
Function F(x: real):real;

begin

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;

end;

end;

Begin

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;

writeln(‘Введите промежуток интегрирования a:’);

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]}

x:= a + g*k; {По этой формуле получается произвольная величина из [a; b] }

s:=s + f(x);

end; {конец испытаний}

writeln(‘s=’,s); {Сумма функции для n произвольных значений}

Integral:=k*s/n ;

writeln(‘Интеграл=’,Integral);

readln;

END.

9.ПРИЛОЖЕНИЕ Б. безымянный.jpg


РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ ПРОГРАММЫ.

Похожие:

Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconПеречень примерных контрольных вопросов и заданий для самостоятельной работы
Вычислить методом Монте-Карло: число, площадь круга, значение определенного интеграла функции
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconМоделирование методом монте-карло процессов переноса возбуждений...
Санкт-Петербургский государственный университет информационных технологий, механики и оптики, Россия
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» icon) барселона коста брава (испания) канны ницца (франция) монте-карло (монако) сан ремо (италия)
«Легенда средиземноморья» . Путешествие проходит по маршруту Барселона – Коста Брава (Испания) – Канны – Ницца (Франция) – Монте-Карло...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconРеферат На тему: «Метод Монте Карло»
...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconАвтобусный тур для всех категорий туристов "легенда средиземноморья"...
«Легенда средиземноморья» . Путешествие проходит по маршруту Барселона – Коста Брава (Испания) – Канны – Ницца (Франция) – Монте-Карло...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconИмитационное моделирование по методу Монте-Карло (Monte-Carlo Simulation)...
Монте-Карло (Monte-Carlo Simulation) позволяет построить математическую модель для проекта с неопределенными значениями параметров,...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconКурсовая работа по предмету: «Организация труда» на тему: «Организация...
Важным признаком нот является ее направленность на решение взаимосвязанных групп задач
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconПромежуточное звено компьютерной сети supernet обслуживает запросы...
Для этого решили оценить долю отказов для двух и трех каналов по собранным данным (в таблицах2, 3). Необходимо оценить вероятность...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconПрограмма: 1 день
Австрия — италия — франция — германия: Вена — Венеция — Флоренция — Рим — Ватикан — Пиза — Генуя — Ницца — Монако (Монте-Карло) —...
Курсовая работа по предмету: Программирование на тему: «Решение определенных интегралов методом Монте-Карло» iconПрограмма тура
Польша — германия — италия — франция: Варшава – Нюрнберг – Венеция – Ницца – Монако – Монте Карло – Грас – Канны – Авиньон – Клермон-Ферран...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница