Приведенный здесь метод позволяет вычислять решения разностных уравнений, аппроксимирующих дифференциальные уравнения.
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;
END.