Лабораторная работа: Применение численных методов для решения уравнений с частными производными
function [z1,z2,z3]=helm(c,fun,xm,ym,gr,x0,y0,h,n);
HELM ВЫЧИСЛЯЕТ МЕТОДОМ МОНТЕ-КАРЛО (АЛГОРИТМ "БЛУЖДАНИЙ ПО СЕТКЕ")
РЕШЕНИЕ ЗАДАЧИ ДИРИХЛЕ ДЛЯ УРАВНЕНИЯ ГЕЛЬМГОЛЬЦА В ЗАДАННОЙ
ТОЧКЕ (x,y) ПРЯМОУГОЛЬНОЙ ОБЛАСТИ D, ОПРЕДЕЛЕННОЙ ГРАНИЦАМИ
0<=x<=xm, 0<=y<=ym
(УЧП) Uxx+Uyy-c*U=F(x,y)
(ГУ) U|г=G(x,y)
Входные данные:
c - КОЭФФИЦИЕНТ (функциональный) ЛЕВОЙ ЧАСТИ УЧП;
fun - ФУНКЦИЯ F(x,y) В ПРАВОЙ ЧАСТИ УЧП (ФУНКЦИЯ ПОЛЬЗОВАТЕЛЯ);
xm,ym - ГРАНИЦЫ ПРЯМОУГОЛЬНОЙ ОБЛАСТИ;
gr - ГРАНИЧНЫЕ УСЛОВИЯ (ФУНКЦИЯ ПОЛЬЗОВАТЕЛЯ);
x0,y0 - КООРДИНАТЫ ТОЧКИ, В КОТОРОЙ ИЩЕТСЯ РЕШЕНИЕ;
h - ШАГ СЕТКИ (ЗАДАЕТСЯ ПОЛЬЗОВАТЕЛЕМ);
n - ЧИСЛО ТРАЕКТОРИЙ.
Выходные данные:
z1 - ПРИБЛИЖЕННОЕ ЗНАЧЕНИЕ РЕШЕНИЯ;
z2 - ВЕРОЯТНАЯ ОШИБКА;
z3 - ВЕРХНЯЯ ГРАНИЦА ОШИБКИ.
Обращение: [z1,z2,z3]=helm(c,fun,xm,ym,gr,x0,y0,h,n)
global z
z=[];
i0=round(x0/h);
j0=round(y0/h);
im=round(xm/h);
jm=round(ym/h);
disp(' ')
disp(' Подождите, идет расчет.')
for count=1:n,