Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач-Ч-М.doc
Скачиваний:
1
Добавлен:
06.07.2019
Размер:
163 Кб
Скачать
☆
  1. Реалізація методу на прикладі

Для того, щоб зрозуміти практичну реалізацію методу, розглянемо його на прикладі

.

Алгоритм програми обчислення інтегралу буде таким:

1. Введення кількості випробувань n.

2. Запустити генератор випадкових чисел.

3. Визначення загальних меж інтегрування.

4. Випадковим чином (з урахуванням загальних меж інтегрування) генерувати значення x і y.

5. Якщо значення x і y лежать в поточних межах інтегрування, то до значення інтеграла додати значення функції при цих значеннях.

6. Пункти 4 та 5 повторити n разів.

7. Остаточно отриману суму з формули перемножити на решту частини формули для отримання значення інтеграла.

Вхідні дані : a = нижня границя інтегрування, b – верхняя границя інтегрування, chislo vyprobuvan – число випробувань.

Вихідні дані - Userednenyy integral – значення інтегралу.

  • Програмна реалізація

program MonteCarlo;

uses

crt;

const k=100;

Var a,b,c,d,ng,vg,x,y,s,integral : real;

n,i,j : integer;

integr:array[1..k]of real;

Function f(x,y:real):real;

Begin

f:=Sqrt(x+y);

end;

Function nm(x:real):real;

Begin

nm:=3*x;

end;

Function vm(x:real):real;

Begin

vm:=8*x;

end;

BEGIN

clrscr;

writeln('Vvedit znachennya granyts integruvannya ');

write('a='); readln(a);

write('b='); readln(b);

writeln('Vvedit chyslo vyprobuvan:');

readln(n);

c:=nm(a);

d:=vm(b);

randomize;

for j:=1 to k do

begin

s:=0; integral:=0;

For i:=1 to n do

begin

x:=a+(b-a)*random;

y:=c+(d-c)*random;

ng:=nm(x);

vg:=vm(x);

If (y <= vg) and(y >= ng) then s:=s + f(x, y);

end;

integr[j]:=(b-a)*(d-c)*s/n;

writeln(integr[j]:10:4);

end;

for j:=1 to k do

Integral:=integral+ integr[j];

writeln('Userednenyy integral=',(integral/k):10:4);

readln;

END.

  • Пакетна реалізація

Mathcad дозволяє обчислювати кратні інтеграли безпосередньо, однак у більшості випадків при кратності інтегралів 3 і більше застосування самого методу Монте-Карло переважно. Справа в тому, при однаковій точності метод Монте-Карло дає суттєвий виграш у часі (в десятки і сотні разів), особливо при великій кратності інтегралів.

  1. Висновoк

Існує багато завдань, для вирішення яких випадковий підхід більш ефективний, ніж інші математичні методи. Метод Монте-Карло застосовувався у багатьох завданнях, проте його використання не завжди було виправдано через великої кількості обчислень, необхідних для отримання відповіді із заданою точністю. Існує клас завдань, складність (кількість обчислень, необхідних для отримання точної відповіді) яких зростає з розмірністю задачі експоненціально. Іноді можна, пожертвувавши точністю, знайти алгоритм, складність якого зростає повільніше, але є велика кількість завдань, для якого цього не можна зробити і метод Монте-Карло є єдиною можливістю для отримання достатньо точної відповіді за прийнятний час.

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

Я реалізувала метод Монте-Карло в додатку BP, а також у пакеті Mathcad.

Mathcad дозволяє обчислювати кратні інтеграли безпосередньо, однак у більшості випадків при кратності інтегралів 3 і більше застосування самого методу Монте-Карло переважно. Справа в тому, при однаковій точності метод Монте-Карло дає суттєвий виграш у часі (в десятки і сотні разів), особливо при великій кратності інтегралів.

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

Метод Монте-Карло використовується дуже часто, часом некритично і неефективним чином. Має деякі очевидні переваги:

а) Він не вимагає ніяких пропозицій про регулярність, за винятком квадратичної інтегровності. Це може бути корисним, так як часто дуже складна функція, чиї властивості регулярності важко встановити.

б) Він призводить до здійсненним процедурі навіть у багатовимірному випадку, коли чисельне інтегрування не застосовується, наприклад, при числі вимірювань, більше 10.

в) Його легко застосовувати при малих обмеженнях або без попереднього аналізу завдання.

Він має, проте, деякі недоліки, а саме:

а) Межі похибки не визначені точно.

б) Статична похибка зменшується повільно.

в) Необхідність мати випадкові числа.