Для решения уравнений Пуассона и Лапласа (частный случай, когда ) – уравнений эллиптического типа – предназначена функция relax(a, b, c, d, e, f, u, rjac), реализующая метод релаксации. Фактически, эту функцию можно использовать для решения эллиптического уравнения общего вида
которое может быть сведено к уравнению в конечных разностях
В частности, для уравнения Пуассона коэффициенты .
Идея метода релаксации заключается в следующем. Если нет источников (уравнение Лапласа), то значение функции в данном узле на текущем шаге определяется как среднее значение функции в ближайших узлах на предыдущем шаге k
При наличии источников разностная схема имеет вид
Метод релаксации сходится достаточно медленно, так как фактически он использует разностную схему с максимально возможным для двумерного случая шагом .
В методе релаксации необходимо задать начальное приближение, то есть значения функции во всех узлах области, а так же граничные условия.
Функция relax возвращает квадратную матрицу, в которой:
|
|
1) расположение элемента в матрице соответствует его положению внутри квадратной области,
2) это значение приближает решение в этой точке.
Эта функция использует метод релаксации для приближения к решению.
Вы должны использовать функцию relax, если Вы знаете значения искомой функции u(x, y) на всех четырех сторонах квадратной области.
Аргументы:
a, b, c, d, e – квадратные матрицы одного и того же размера, содержащие коэффициенты дифференциального уравнения.
f – квадратная матрица, содержащая значения правой части уравнения в каждой точке внутри квадрата
u – квадратная матрица, содержащая граничные значения функции на краях области, а также начальное приближение решения во внутренних точках области.
rjac – Параметр, управляющий сходимостью процесса релаксации. Он может быть в диапазоне от 0 до 1, но оптимальное значение зависит от деталей задачи.
Задаем правую часть уравнения Пуассона – два точечных источника
Задаем значения параметров функции relax
Задаем граничные условия и начальное приближение – нули во всех внутренних точках области
Находим решение
и представляем его графически в виде поверхности и линий уровней.
Если граничные условия равны нулю на всех четырех сторонах квадрата, можно использовать функцию multigrid.
Алгоритм метода достаточно громоздкий, поэтому рассматривать его мы не будем.