Файл: Решение задачи Дирихле методом МонтеКарло Введение.doc

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 47

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Данный метод был предложен Дж. Брауном и обоснован М. Мюллером, который доказал, в частности, что вероятность того, что траектория никогда не попадет в , равна нулю. Дальнейшее развитие метода – организация зависимых испытаний, решение уравнений более общего вида, использование вместо кругов других фигур (для которых известны функции Грина).

Задача Дирихле для уравнения Пуассона и ее решение методом Монте-Карло с использованием метода сеток

В ограниченной связной области плоскости с простой границей рассмотрим дифференциальной уравнение с частными производными

(1)

где – искомая функция. Уравнение (1) при называется уравнением Лапласа, а при – уравнением Пуассона.

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

Предположим, что на границе задана некоторая функция (часто пишут g( S), где — длина дуги границы, отсчитываемая от какой-нибудь фиксирован­ной точки). Требуется найти такое решение уравнения (1), которое на границе совпадает с :

. (2)

Задачу об отыскании ре­шения уравнения

(3)

удовлетворяющего гра­ничному условию, на­зывают задачей Дирихле для уравнения Пуассона.
Для приближенного решения этой задачи выбирают на плоско­сти достаточно мелкую квадратную сетку с шагом (рис.1, Приложение А). Координаты узлов этой сетки пусть будут, а значения для краткости обозначим и . Узел называют внутренним, если и он, и все четыре соседних с ним узла принад­лежат , в противном случае узел , принадле­жащей называют граничным.


Во внутреннем узле уравнение заменим разностным


(4)

которое перепишем в виде

(5)

В граничных узлах

. (6)

Решение алгебраической системы при приближается к решению задачи Дирихле для уравнения (1).

Перенумеруем все узлы, принадлежащие (в произвольном порядке), и перепишем в том же порядке уравнения (3), (4). Тогда получим систему вида

(7)

Матрица этой системы имеет следующую структуру: внутреннему узлу с номером отвечает строка , в котором четыре элемента равны ¼, а остальные – нули; граничному узлу с номером отвечает строка; все диагональные элементы=0. (Все собственные значения такой матрицы по абсолютной величине меньше единицы.) Свободные члены этой системы, если узел внутренний, и , если узел граничный.

Один из методов решения системы (5) является метод Монте-Карло. Построим данный метод для расчета — значения решения в одном заранее заданном узле. Выберем матрицу переходов

Здесь – символ Кронекера:.

Далее строим следующую цепь:

1)

2) если узел внутренний, то с одинаковой вероятностью ¼ выбираем в качестве номер одного из соседних с ним узлов;

3) если узел граничный, то цепь останавливается:. Рассчитываем вес вдоль цепи по правилу: пока цепь не попала на границу, далее . Вычисляем случайную величину по формуле

, (8)

где – номер первого выхода цепи на границу.

В формуле (6) все вычисляются по формуле и лишь последнее равно значению .

Замечание. Если вместо граничных условий (2) заданы более сложные условия, например:

,

то уравнения (6) наряду с будут содержать также значения в некоторых узлах. И случайная цепь, попав на границу, останавливаться не будет.

Если количество цепей достаточно велико, то решение задачи Дирихле в узле определяется по формуле

. (9)

4. Прикладное применение метода Монте-Карло с использованием метода сеток для решения задачи Дирихле для уравнения Лапласа

Пусть – решение уравнения Лапласа в единичном квадрате , удовлетворяющее граничным условиям . Вычислить значение .

Выберем в квадрате сетку с шагом и перенумеруем узлы (рис. (4), Приложение Е). Для уравнения Лапласа формула (8) все более упрощается: , так что равно значению в том узле, в котором цепь попадает на границу. Возле каждого граничного узла на рис. (4) (Приложение Е) проставлено значение для данного примера.

Для построения цепей необходимо воспользоваться таблицей случайных цифр (таблица 1, Приложение В).



Если случайная цифра окажется 0 или 4, то будем перемещаться в соседний узел справа, если окажется 1 или 5, то будем перемещаться влево, окажется 2 или 6, то перемещаться вверх, если окажется 3 или 7, то перемещаться вниз; значения , равные 8 или 9, опускаем.

В таблице 2 (Приложение F) приведены 16 случайных цепей. В первой строке записаны использованные случайные цифры, а в третьей – сама цепь (номера ). Соответствующие этим цепям значения равны . Среднее арифметическое этих величин дает нам приближенное значение решения в точке :

.

Из эмпирической оценки дисперсии

следует, что вероятная ошибка .

Точное решение рассмотренной задачи , так что , и фактическая ошибка расчета равна 0,08.

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

5. Математическое обоснование решения задачи Дирихле для уравнения Пуассона

Найдем решение задачи Дирихле для уравнения Пуассона:

,

где .

Выберем в квадрате сетку с шагом . Для построения цепей используем таблицу случайных цифр (таблица 1, Приложение В). Если случайная цифра окажется 0 или 4, то будем перемещаться в соседний узел справа, если окажется 1 или 5, то будем перемещаться влево, окажется 2 или 6, то перемещаться вверх, если окажется 3 или 7, то перемещаться вниз; значение , равные 8 или 9, опускаем.

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

, (8)

где – номер первого выхода цепи на границу.

В формуле (6) все вычисляются по формуле , где , и лишь последнее равно значению : .

Итоговое значение функции получаем по формуле , где .

Заключение

В данной работе были рассмотрены основные сведения, связанные с задачей Дирихле для уравнений Лапласа и Пуассона – определения, свойства и методы решения. Было приведено два метода решения данной задачи с помощью метода Монте-Карло – метод сеток и метод «блуждания» по сферам для уравнения Лапласа и метод сеток для уравнения Пуассона. Приведено математическое обоснование решения задачи Дирихле для уравнения Пуассона методом Монте-Карло с использованием метода сеток.

В приложении приведена программа, написанная на BorlandPascal 7.0, реализующая данный метод с заданными исходными данными:


,

.

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

Список использованной литературы

1. Соболь И. М. Численные методы Монте-Карло. – М.: Наука, 1973. – 312 с

2. Демидович Б. П., Марон И. А., Шувалова Э. З. Численные методы анализа. – М.: Наука, 1967. – 368 с.

3. Березин И. С., Жидков Н. П. Методы вычислений. – М.: Государственной литературы, 1959. – 602 с.

4. Бусленко Н. П., Шрейдер Ю. А. Метод статистических испытаний (Монте-Карло) и его реализация в цифровых машинах. – М.: Физматгиз, 1961. – 315 с.

Приложения

А. Сеточная область

(рис. 1)

B. Таблица 1

(блуждание частицы на плоскости)

Случайное число

Характер перемещения

0 или 4

(шаг вправо)

1 » 5

(шаг вверх)

2 » 6

(шаг влево)

3 » 7

(шаг вниз0

С. Ограниченная область

(рис. 2)

D. Ограниченная область с границей

(рис. 3)

E. Единичный квадрат

(рис. 4)

Единичный квадрат: в нем сетка с шагом , краевые условия:

F. Таблица 2

(случайные цепи)

6 5 1

13–18–17–16

5 0 7 5 6 6 1

13–12–13–8–7–12–17–16

5 5

13–12–11




6 6

13–18–23

4 3 4

13–14–9–10

5 6 5

13–12–17–16

5 1

13–12–11

2 3 3 2 4 3 7

13–18–13–8–13–12–17–16

7 5 7

13–8–7–2

0 2 6

13–14–19–24




1 6 0 3 3 3

13–12–17–18–13–8–3

4 2 5 0 2

13–14–19–18–19–8

22

13–18–23




4 5 5 5

13–14–13–12–11

37

13–18–3

5 1

13–12–11




G. Программа, реализующая решение задачи Дирихле методом Монте-Карло


program kp;

Uses crt;

Const x=3/4; y=1/2; N=10; h=1/4;

Var s1,f,s,u,u1,g,x_1,y_1: real;

i: integer;

procedure Loop;

var f1,f2,f3,f4,f5:real;

begin

y_1:=y; x_1:=x; f:=0;

repeat

g:=random(10);

writeln('g=',g);

f1:=f;

if (g=0) or (g=4) then begin

x_1:= x_1 + h;

f1:=f1-0.25*h*h*(x_1*x_1+y_1*y_1);

f:=f1;

end;

f2:=f;

if (g=1) or (g=5) then begin

y_1:= y_1 + h;

f2:=f2-0.25*h*h*(x_1*x_1+y_1*y_1);

f:=f2;

end;

f3:=f;

if (g=2) or (g=6) then begin

x_1:= x_1 — h;

f3:=f3-0.25*h*h*(x_1*x_1+y_1*y_1);

f:=f3;

end;

f4:=f;

if (g=3) or (g=7) then begin

y_1:= y_1 — h;

f4:=f4-0.25*h*h*(x_1*x_1+y_1*y_1);

f:=f4;

end;

f5:=f;

if (g=8) or (g=9) then begin

y_1:=y_1;

x_1:=x_1;

f5:=f5-0.25*h*h*(x_1*x_1+y_1*y_1);

f:=f5;

end;

until (x_1=0) or (x_1=1) or (y_1=0) or (y_1=1);

if y_1=1 then

s:=x_1*x_1;

if (y_1=0) or (x_1=1) then

s:=0;

if x_1=0 then

s:=y_1*y_1;

s1:=s1+s;

writeln('s=',s);

writeln('s1=',s1);

end;

begin

clrscr;

randomize;

u:=0; u1:=0;

for i:=1 to N do begin

Loop;

writeln('f=',f);

u:=u+f+s;

writeln('u=',u);

end;

u1:=u/N;

writeln('u1=',u1);

writeln('press any key');

readkey;