logo search
mathcad

Дифференциальные уравнения с частными производными

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

Два дифференциальных уравнения в частных производных, которые часто возникают при анализе физических явлений, — это уравнение Пуассона:

и его однородная форма — уравнение Лапласа.

Mathcad имеет две функции для решения этих уравнений в области с квадратной границей. Используйте функцию relax, если известны значения, принимаемые неизвестной функцией u(x, y), на всех четырех сторонах квадрата.

Если функция u(x, y) равна нулю на всех четырех сторонах квадрата, можно использовать функцию multigrid. Эта функция зачастую решает задачу быстрее, чем relax. Обратите внимание, что, если граничные условия одинаковы на всех четырех сторонах квадрата, можно достаточно просто преобразовать уравнение к эквивалентному виду, в котором граничное значение является нулем на всех четырех сторонах.

Функция  relax возвращает квадратную матрицу, в которой:

Эта функция использует метод релаксации для нахождения приближенного решения. Уравнение Пуассона на квадратной области представляется в виде:

aj,kuj+1,kbj,kuj-1,kcj,kuj,k+1dj,kuj,k-1 + ej,kuj,k = fj,k

Аргументы функции relax следующие:

relax(a, b, n, d, e, f, u, rjac) relax function

a, b, n, d, e =

Квадратные матрицы одинакового размера, содержащие коэффициенты вышеупомянутого уравнения.

f =

Квадратная матрица, содержащая значения правой части уравнения в каждой точке по области, в которой ищется решение.

u =

Квадратная матрица, содержащая граничные значения решения на границе области и начальное приближение для решения внутри области.

rjac =

Спектральный радиус итераций Якоби. Это число между 0 и 1, которое управляет сходимостью алгоритма релаксации. Оптимальное значение зависит от деталей задачи.

Если граничное условие — ноль на всех четырех сторонах квадрата, используйте функцию multigrid вместо функции relax. Пример приведен на Рисунке 9.

multigrid(M, ncycle)

M =

Квадратная матрица размером   1 + 2n. Содержит значение правой части уравнения f в соответствующей точке квадратной области.

ncycle =

Число циклов в каждом уровне итерации multigrid. Значение 2 будет обычно давать хорошую аппроксимацию решения.

Рисунок 9: Использование функции multigrid для решения уравнения Пуассона в квадратной области.