Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
В математике аддитивный метод Шварца, названный в честь Германна Шварца, приближённо решает задачу с краевыми условиями для частного дифференциального уравнения, разбивая её на задачи с краевыми условиями на меньших областях и суммируя полученные решения.
In mathematics, the additive Schwarz method, named after Hermann Schwarz, solves a boundary value problem for a partial differential equation approximately by splitting it into boundary value problems on smaller domains and adding the results.
Решение на компьютере
Типичный способ сделать это — брать значения функции f через равные интервалы в квадрате [0,1] × [0,1]. Например, можно взять 8 значений в направлении x при x = 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8 и 0.9, и 8 значений в направлении y в аналогичных координатах. Тогда получится 64 значения функции в квадрате, например, в точках (0.2, 0.8) и (0.6, 0.6). Цель компьютерной программы — вычислить значение f в этих 64 точках, что представляется более простым, чем поиск аналитического выражения для функции на всей площади квадрата. Существуют определенные трудности, например, невозможно вычислить вторую производную f по x и y в точке (0.5, 0.5), зная значение f только в 64 точках квадрата. Для преодочения этой проблемы используют различные численные методы аппроксимации производных, такие как метод конечных элементов или метод конечных разностей. Мы не будем рассматривать эти трудности, а сосредоточимся на другом аспекте задачи.
A typical way of doing this is to sample f at regular intervals in the square [0,1] × [0,1]. For instance, we could take 8 samples in the x direction at x = 0.1, 0.2, , 0.8 and 0.9, and 8 samples in the y direction at similar coordinates. We would then have 64 samples of the square, at places like (0.2,0.8) and (0.6,0.6). The goal of the computer program would be to calculate the value of f at those 64 points, which seems easier than finding an abstract function of the square. There are some difficulties, for instance it is not possible to calculate fxx(0.5,0.5) knowing f at only 64 points in the square. To overcome this, one uses some sort of numerical approximation of the derivatives, see for instance the finite element method or finite differences. We ignore these difficulties and concentrate on another aspect of the problem.
Разложение доменов
Что приводит нас к методам декомпозиции области. Если мы разделим область [0,1] × [0,1] на две подобласти [0,0.5] × [0,1] и [0.5,1] × [0,1], то каждая из них будет содержать только половину точек выборки. Таким образом, мы можем попытаться решить упрощенную версию нашей модельной задачи на каждой подобласти, но теперь каждая подобласть будет содержать всего 32 точки выборки. В заключение, имея решения на каждой подобласти, мы можем попытаться согласовать их, чтобы получить решение исходной задачи на [0,1] × [0,1].
Which brings us to domain decomposition methods. If we split the domain [0,1] × [0,1] into two subdomains [0,0.5] × [0,1] and [0.5,1] × [0,1], each has only half of the sample points. So we can try to solve a version of our model problem on each subdomain, but this time each subdomain has only 32 sample points. Finally, given the solutions on each subdomain, we can attempt to reconcile them to obtain a solution of the original problem on [0,1] × [0,1].
Алгоритм разложения доменных чисел
К сожалению, по техническим причинам обычно невозможно разделить нашу сетку из 64 точек (систему линейных уравнений 64x64) на две сетки из 32 точек (две системы линейных уравнений 32x32) и получить решение системы 64x64. Вместо этого, на практике применяется следующий алгоритм:
Unfortunately, for technical reasons it is usually not possible to split our grid of 64 points (a 64×64 system of linear equations) into two grids of 32 points (two 32×32 systems of linear equations) and obtain an answer to the 64×64 system. Instead, the following algorithm is what actually happens:
1) Начните с приближенного решения системы 64x64. 2) Из системы 64x64 создайте две системы 32x32 для улучшения приближенного решения. 3) Решите две системы 32x32. 4) Объедините два решения 32x32, чтобы улучшить приближенное решение системы 64x64. 5) Если решение пока недостаточно хорошее, повторите с шага 2. Существует два преимущества по сравнению с решением исходной системы 64x64. Во-первых, если число итераций алгоритма невелико, решение двух систем 32x32 может оказаться более эффективным, чем решение системы 64x64. Во-вторых, две системы 32x32 не обязательно решать на одном компьютере, поэтому этот алгоритм можно выполнять параллельно, используя вычислительные ресурсы нескольких компьютеров. Фактически, решение двух систем 32x32 вместо 64x64 на одном компьютере (без использования параллелизма) вряд ли будет эффективным. Однако, если использовать более двух поддоменов, ситуация может измениться. Например, можно использовать четыре задачи 16x16, и существует вероятность, что решение этих задач окажется более выгодным, чем решение одной задачи 64x64, даже если алгоритму декомпозиции области потребуется несколько итераций.
1) Begin with an approximate solution of the 64×64 system. 2) From the 64×64 system, create two 32×32 systems to improve the approximate solution. 3) Solve the two 32×32 systems. 4) Put the two 32×32 solutions "together" to improve the approximate solution to the 64×64 system. 5) If the solution isn't very good yet, repeat from 2. There are two ways in which this can be better than solving the base 64×64 system. First, if the number of repetitions of the algorithm is small, solving two 32×32 systems may be more efficient than solving a 64×64 system. Second, the two 32×32 systems need not be solved on the same computer, so this algorithm can be run in parallel to use the power of multiple computers. In fact, solving two 32×32 systems instead of a 64×64 system on a single computer (without using parallelism) is unlikely to be efficient. However, if we use more than two subdomains, the picture can change. For instance, we could use four 16×16 problems, and there's a chance that solving these will be better than solving a single 64×64 problem even if the domain decomposition algorithm needs to iterate a few times.