Журнал вычислительной математики и математической физики, 2021, T. 61, № 5, стр. 878-884
Численный метод решения объемных интегральных уравнений на неравномерной сетке
А. Б. Самохин 1, *, Е. Е. Тыртышников 2, **
1 МИРЭА – Российский технологический университет
119454 Москва, пр. Вернадского, 78, Россия
2 Институт вычислительной математики им. Г.И. Марчука РАН
119333 Москва, ул. Губкина, 8, Россия
* E-mail: absamokhin@yandex.ru
** E-mail: eugene.tyrtyshnikov@gmail.com
Поступила в редакцию 24.12.2020
После доработки 24.12.2020
Принята к публикации 14.01.2021
Аннотация
Рассматриваются численные методы решения объемных интегральных уравнений, описывающих задачи рассеяния волн на прозрачных препятствиях. Для аппроксимации уравнений применяется метод коллокации на неравномерной сетке и задача сводится к решению системы линейных алгебраических уравнений. Предлагается эффективный метод приближенного умножения матрицы этой системы на вектор, сравнимый по сложности с методом, который применяется в случае равномерной сетки. При построении метода вводится вспомогательная равномерная сетка, используются методы интерполяции функций и алгоритмы быстрого дискретного преобразования Фурье. Существенно то, что число узлов вспомогательной равномерной сетки сопоставимо с числом узлов исходной неравномерной сетки. Библ. 5.
1. ВВЕДЕНИЕ
Задачи рассеяния волн различной физической природы на неоднородных структурах, находящихся в трехмерной ограниченной области $Q$, имеют большое значение как с теоретической, так и с практической точек зрения. Указанные задачи могут быть описаны объемным интегральным уравнением следующего общего вида:
(1)
$(1 + \alpha \eta (x))u(x) + \int\limits_Q \frac{{K(x - y)}}{{4\pi {{R}^{d}}}}\eta (y)u(y)dy = {{u}_{0}}(x),\quad x \in Q,\quad d \leqslant 3,$• Рассеяние акустических волн на прозрачном неоднородном препятствии (см. [1]). В этом случае $d = 1$, $\alpha = 0$, а остальные функции, входящие в уравнение (1), являются скалярными.
• Рассеяние электромагнитных волн на неоднородном, в общем случае анизотропном, теле (см. [2]). В этом случае $d = 3$ и поэтому оператор в (1) будет сингулярным, функции $u$ и ${{u}_{0}}$ – векторными, а $\eta $ и $K$ – тензорными. Величина $\alpha $ является внеинтегральным членом сингулярного оператора и зависит от формы выделяемой особенности и ее центра. Например, если выделяемая особеность есть шар, то $\alpha = 1{\text{/}}3$.
Для решения уравнения (1), которое описывает реальные задачи, возможно использование только численных методов. В методе Галеркина или в методе коллокации уравнение (1) аппроксимируется системой линейных алгебраических уравнений. Для трехмерных задач размер $N$ получаемых систем достаточно велик.
Основными критериями эффективности численного алгоритма являются число арифметических операций $T$ и объем памяти $M$, необходимой для его реализации. При использовании прямых методов $T \sim {{N}^{3}}$ и $M \sim {{N}^{2}}$. Для итерационных методов
где ${{T}_{A}}$ – число арифметических операций, которое требуется для умножения матрицы на вектор, $L$ – количество итераций, необходимое для получения решения с заданной точностью, а ${{M}_{A}}$ – число параметров, определяющих матрицу. Используя метод коллокации на равномерной сетке и свойства ядер интегральных операторов, уравнение (1) можно аппроксимировать системой линейных уравнений с многоуровневой блочно тёплицевой матрицей и строить эффективные алгоритмы матрично-векторного умножения, в которых значения ${{T}_{A}}$ и ${{M}_{A}}$ практически пропорциональны размеру $N$ (см. [3]).Однако во многих случаях целесообразно использование неравномерной сетки. Такая потребность возникает при аппроксимации сложной границы области $Q$ или при значительном изменении параметров среды в области неоднородности. К сожалению, при применении метода коллокации на неравномерной сетке матрица получаемой системы утрачивает свойство тёплицевости и поэтому непосредственное использование вышеуказанной техники невозможно.
В настоящей работе для аппроксимации интегрального уравнения (1) применяется метод коллокации на неравномерной сетке, а затем используется некоторая равномерная сетка, методы интерполяции функций и алгоритмы быстрого преобразования Фурье. Подчеркнем, что число узлов равномерной сетки оказывается сопоставимым с числом узлов исходной неравномерной сетки. Поэтому в итоге строятся эффективные алгоритмы численного решения уравнения (1) итерационными методами, в которых значения ${{T}_{A}}$ и ${{M}_{A}}$ практически пропорциональны размеру $N$, хотя коэффициент пропорциональности несколько больше по сравнению с алгоритмами на равномерной сетке
2. ПОСТАНОВКА ЗАДАЧИ
Для аппроксимации интегрального уравнения (1) будем использовать метод коллокации на неравномерной сетке. Представим область $Q$ в виде объединения ${{N}_{Q}}$ ячеек ${{\Omega }_{n}}$, $n = 1,2, \ldots ,{{N}_{Q}}$. Узловые точки в этих ячейках будем выбирать в их центрах, которые определяются формулами
(3)
$x_{i}^{c} = \frac{{\int\limits_\Omega {{{x}_{i}}d{{x}_{1}}d{{x}_{2}}d{{x}_{3}}} }}{{{\text{|}}\Omega {\text{|}}}},\quad i = 1,2,3,$(4)
$x_{i}^{c} = \frac{{x_{i}^{{(1)}} + x_{i}^{{(2)}} + x_{i}^{{(3)}} + x_{i}^{{(4)}}}}{4},\quad i = 1,2,3,$Будем аппроксимировать интегральное уравнение (1) системой линейных алгебраических уравнений размера $ \sim {\kern 1pt} {{N}_{Q}}$ относительно значений неизвестного поля в узловых точках области $Q$, находящихся в центрах ячеек ${{\Omega }_{n}}$:
(5)
$A(n,m) = \int\limits_{{{\Omega }_{m}}} \,\frac{{K({{x}^{{cn}}} - y)}}{{4\pi {\kern 1pt} {\text{|}}{{x}^{{cn}}} - y{\kern 1pt} {{{\text{|}}}^{d}}}}dy,\quad n \ne m,\quad A(n,n) = 0,$Для относительно небольших значений ${{N}_{Q}} \sim 10\,000$ можно решить систему уравнений (5) прямыми или итерационными методами. Ниже мы предлагаем эффективные алгоритмы, которые с использованием итерационных методов позволяют решать систему (5) со значительно большим размером ${{N}_{Q}}$.
3. ПОСТРОЕНИЕ АЛГОРИТМА РЕШЕНИЯ
Сначала рассмотрим следующий алгоритм интерполяции функций. Пусть известны значения дифференцируемой функции $f({{x}_{1}},{{x}_{2}},{{x}_{3}})$ в вершинах параллелепипеда. Тогда приближенное значение функции в любой точке параллелепипеда может быть представлено формулой
(6)
$\begin{gathered} \, + \frac{{({{a}_{1}} + {{h}_{1}} - {{x}_{1}})({{x}_{2}} - {{b}_{1}})({{c}_{1}} + {{h}_{3}} - {{x}_{3}})}}{{{{h}_{1}}{{h}_{2}}{{h}_{3}}}}f({{a}_{1}},{{b}_{1}} + {{h}_{2}},{{c}_{1}}) + \\ \, + \frac{{({{a}_{1}} + {{h}_{1}} - {{x}_{1}})({{b}_{1}} + {{h}_{2}} - {{x}_{2}})({{x}_{3}} - {{c}_{1}})}}{{{{h}_{1}}{{h}_{2}}{{h}_{3}}}}f({{a}_{1}},{{b}_{1}},{{c}_{1}} + {{h}_{3}}) + \\ \end{gathered} $В прямоугольной декартовой системе координат введем сетку так, чтобы область $Q$ целиком находилась в прямоугольном параллелепипеде $\Pi $, стороны которого имеют длины ${{N}_{i}}{{h}_{i}}$, $i = 1,2,3$, где ${{h}_{i}}$ – шаги сетки по декартовым координатам. Параллелепипед $\Pi $ разбивается данной сеткой на элементарные параллелепипеды $\Pi (p)$, $p = ({{p}_{1}},{{p}_{2}},{{p}_{3}})$, ${{p}_{i}} = 0,1, \ldots ,{{N}_{i}} - 1$. Количество элементарных параллелепипедов в $\Pi $ равно $N = {{N}_{1}}{{N}_{2}}{{N}_{3}}$. Центр параллелепипеда $\Pi (p)$ в единицах шагов сетки обозначим через
Определим узловые точки в параллелепипеде $\Pi $ формулами(9)
$x = ({{x}_{1}},{{x}_{2}},{{x}_{3}}),\quad {{x}_{i}} = {{\tilde {p}}_{i}}{{h}_{i}},\quad \mathop {\tilde {p}}\nolimits_i = 0,1, \ldots ,{{N}_{i}},\quad i = 1,2,3.$(10)
${\text{|}}{\kern 1pt} {{p}^{c}}(p) - \tilde {p}{\kern 1pt} {{{\text{|}}}^{2}} = 3{\text{/}}4,\quad \Pi (p) \subset \Pi .$Предположим, что на параллелепипеде $\Pi $ определена функция вида $F(x - y)$, которая зависит только от разности декартовых координат и является дифференцируемой функцией точек $x$ и $y$ при $x \in \Pi (p)$, $y \in \Pi (q)$, $p \ne q$. Рассмотрим сумму вида
(11)
$W(x) = \sum\limits_{l = 1}^k \,{{a}_{l}}F(x - {{y}_{l}}),\quad x \in \Pi (p),\quad {{y}_{l}} \in \Pi (q),$(12)
$W(x) \approx \sum\limits_{\tilde {p} \in \Pi (p)} \,\beta (\tilde {p},p,x)\sum\limits_{\tilde {q} \in \Pi (q)} \,\nu (\tilde {q},q)F(x(\tilde {p}) - y(\tilde {q})),$(13)
$\nu (\tilde {q},q) = \sum\limits_{l = 1}^k \,{{a}_{l}}\beta (\tilde {q},q,{{y}_{l}}),\quad {{y}_{l}} \in \Pi (q).$Запишем уравнение (5) в виде, удобном для построения алгоритма. Будем полагать, что каждая ячейка ${{\Omega }_{n}} \subset {\text{Q}}$ находится внутри только одного из элементарных параллелепипедов, причем внутри него может быть несколько ячеек. Данное требование практически не накладывает ограничений на выбор ячеек: если ячейка принадлежит нескольким элементарным параллелепипедам, то ее можно разбить на несколько ячеек. Обозначим через $k(p)$ число ячеек в элементарном параллелепипеде $\Pi (p)$, через $x(l,p)$ центр $l$-й ячейки в $\Pi (p)$, а через $\eta (l,p)$ и $\alpha (l,p)$ значения ${{\eta }_{n}}$ и ${{\alpha }_{n}}$ для соответствующей ячейки. Обозначим через ${{\Pi }_{Q}}$ объединение всех элементарных параллелепипедов, внутри которых находятся ячейки, а через $\Omega (l,p)$ обозначим $l$-ю ячейку в параллелепипеде $\Pi (p)$. Тогда систему линейных уравнений (5) можно переписать в следующем виде:
(14)
$\begin{array}{*{20}{c}} {\gamma (l,p)u(l,p) + \sum\limits_q^{\Pi (q) \subset {{\Pi }_{Q}}} \,\sum\limits_{m = 1}^{k(q)} \,A(l,p,m,q)\eta (m,q)u(m,q) = {{u}_{0}}(l,p),} \\ {f(l,p) \equiv f(x(l,p)),\quad \gamma (l,p) = 1 + \alpha (l,p)\eta (l,p),\quad \Pi (p) \subset {{\Pi }_{Q}},\quad l = 1,2, \ldots ,k(p),} \\ {A(l,p,m,q) = \int\limits_{\Omega (m,q)} \,\frac{{K(x(l,p) - y)}}{{4\pi {\kern 1pt} {\text{|}}x(l,p) - y{\kern 1pt} {{{\text{|}}}^{d}}}}dy,\quad {\text{при}}\quad (l,p) \ne (m,q),\quad A(l,p,l,p) = 0.} \end{array}$Основные вычислительные затраты в итерационных алгоритмах решения системы (14) связаны с умножением матрицы на вектор, т.е. с вычислением сумм вида
(15)
$W(l,p) = \sum\limits_q^{\Pi (q) \subset {{\Pi }_{Q}}} \,\sum\limits_{m = 1}^{k(q)} \,A(l,p,m,q)U(m,q).$• область $\Pi _{0}^{1}(p)$ содержит параллелепипед $\Pi (p)$ и все элементарные параллелепипеды, соприкасающиеся с ним (максимальное число таких параллелепипедов равно $27$);
• область $\Pi _{0}^{2}(p)$ содержит параллелепипед $\Pi _{0}^{1}(p)$ и все элементарные параллелепипеды, соприкасающиеся с ним (максимальное количество таких параллелепипедов равно $125$).
Обозначим ${{\Pi }_{Q}}(p) = {{\Pi }_{Q}}{{\backslash }}{{\Pi }_{0}}(p)$. Тогда (15) можно представить в виде
(16)
$\begin{gathered} W(l,p) = {{W}_{1}}(l,p) + {{W}_{2}}(l,p), \\ {{W}_{1}}(l,p) = \sum\limits_q^{\Pi (q) \subset {{\Pi }_{0}}(p)} \,\sum\limits_{m = 1}^{k(q)} \,A(l,p,m,q)U(,m,q), \\ {{W}_{2}}(l,p) = \sum\limits_q^{\Pi (q) \subset {{\Pi }_{Q}}(p)} \,\sum\limits_{m = 1}^{k(q)} \,A(l,p,m,q)U(,m,q). \\ \end{gathered} $Значения ${{W}_{1}}(l,p)$ будем вычислять непосредственно по вышеприведенной формуле. Число арифметических операций и память для этих вычислений пропорциональны ${{N}_{Q}}$.
Перейдем к построению алгоритма для вычисления значений ${{W}_{2}}(l,p)$. Определим функцию
(17)
$B(x - y) = \frac{{K(x - y)}}{{4\pi {\kern 1pt} {\text{|}}x - y{\kern 1pt} {{{\text{|}}}^{d}}}},\quad x \ne y,\quad B(0) = 0.$(19)
$\begin{gathered} {{W}_{2}}(l,p) \approx \sum\limits_q^{\Pi (q) \subset {{\Pi }_{Q}}(p)} \,\sum\limits_{m = 1}^{k(q)} \,B(x(l,p) - y(m,q))V(m,q), \\ V(m,q) = U(m,q)\left| {\Omega (m,q)} \right|. \\ \end{gathered} $В узловых точках параллелепипеда $\Pi $ определим функцию дискретного аргумента
(20)
$B(\tilde {p} - \tilde {q}) = B(x(\tilde {p}) - y(\tilde {q})),\quad \tilde {p},\tilde {q} \in \Pi .$(21)
$\tilde {V}(\tilde {p},p) = \sum\limits_{m = 1}^{k(p)} \,\beta (\tilde {p},p,m)V(m,p),\quad \tilde {p} \in \Pi (p),\quad \Pi (p) \subset {{\Pi }_{Q}},$(22)
${{W}_{2}}(l,p) = \sum\limits_{\tilde {p} \in \Pi (p)} \,\beta (\tilde {p},p,l){{\tilde {W}}_{2}}(\tilde {p},p),\quad \Pi (p) \subset {{\Pi }_{Q}},$(23)
$\begin{gathered} {{{\tilde {W}}}_{2}}(\tilde {p},p) = \sum\limits_{\tilde {q} \in {{\Pi }_{Q}}(p)} \,B(\tilde {p} - \tilde {q}){{{\tilde {V}}}_{2}}(\tilde {q},p),\quad \tilde {p} \in \Pi (p), \\ {{{\tilde {V}}}_{2}}(\tilde {q},p) = \sum\limits_q \,\tilde {V}(\tilde {q},q),\quad {{\left| {{{q}^{c}}(q) - \tilde {q}} \right|}^{2}} = \frac{3}{4},\quad \Pi (q) \subset {{\Pi }_{Q}}(p),\quad \tilde {q} \in {{\Pi }_{Q}}(p). \\ \end{gathered} $Далее, в узловых точках параллелепипеда $\Pi $ определим функцию
(24)
$\tilde {V}(\tilde {q}) = \left\{ \begin{gathered} \sum\limits_q \,V(\tilde {q},q),\quad {{\left| {{{q}^{c}}(q) - \tilde {q}} \right|}^{2}} = \frac{3}{4},\quad \Pi (q) \subset {{\Pi }_{Q}},\quad \tilde {q} \in {{\Pi }_{Q}}, \hfill \\ 0,\quad \tilde {q} \notin {{\Pi }_{Q}},\quad \tilde {q} \in \Pi . \hfill \\ \end{gathered} \right.$(25)
$\tilde {W}(\tilde {p}) = \sum\limits_{\tilde {q} \in \Pi } \,B(\tilde {p} - \tilde {q})\tilde {V}(\tilde {q}),\quad \tilde {p} \in \Pi .$(27)
$\begin{gathered} {{{\tilde {W}}}_{1}}(\tilde {p},p) = \sum\limits_{\tilde {q} \in {{\Pi }_{0}}(p)} \,B(\tilde {p} - \tilde {q}){{{\tilde {V}}}_{1}}(\tilde {q},p),\quad \tilde {p} \in \Pi (p), \\ {{{\tilde {V}}}_{1}}(\tilde {q},p) = \sum\limits_q \,V(\tilde {q},q),\quad {{\left| {{{q}^{c}}(q) - \tilde {q}} \right|}^{2}} = \frac{3}{4},\quad \Pi (q) \subset {{\Pi }_{0}}(p),\quad \tilde {q} \in {{\Pi }_{0}}(p). \\ \end{gathered} $(28)
$\begin{gathered} \tilde {W}({{{\tilde {p}}}_{1}},{{{\tilde {p}}}_{2}},{{{\tilde {p}}}_{3}}) = \sum\limits_{\tilde {q} = 1}^{{{N}_{1}}} \,\sum\limits_{\mathop {\tilde {q}}\nolimits_2 = 1}^{{{N}_{2}}} \,\sum\limits_{\mathop {\tilde {q}}\nolimits_3 = 1}^{{{N}_{3}}} \,B({{{\tilde {p}}}_{1}} - {{{\tilde {q}}}_{1}},{{{\tilde {p}}}_{2}} - {{{\tilde {q}}}_{2}},{{{\tilde {p}}}_{3}} - {{{\tilde {q}}}_{3}})\tilde {V}({{{\tilde {q}}}_{1}},{{{\tilde {q}}}_{2}},{{{\tilde {q}}}_{3}}), \\ 0 \leqslant {{{\tilde {p}}}_{1}} \leqslant {{N}_{1}},\quad 0 \leqslant {{{\tilde {p}}}_{2}} \leqslant {{N}_{2}},\quad 0 \leqslant \mathop {\tilde {p}}\nolimits_3 \leqslant {{N}_{3}}. \\ \end{gathered} $(29)
$W({{\tilde {p}}_{1}},{{\tilde {p}}_{2}},{{\tilde {p}}_{3}}) = \sum\limits_{\mathop {\tilde {q}}\nolimits_1 = 1}^{2{{N}_{1}} + 1} \,\sum\limits_{\mathop {\tilde {q}}\nolimits_2 = 1}^{2{{N}_{2}} + 1} \,\sum\limits_{\mathop {\tilde {q}}\nolimits_3 = 1}^{2{{N}_{3}} + 1} \,B({{\tilde {p}}_{1}} - {{\tilde {q}}_{1}},{{\tilde {p}}_{2}} - {{\tilde {q}}_{2}},{{\tilde {p}}_{3}} - \mathop {\tilde {q}}\nolimits_3 )V({{\tilde {q}}_{1}},{{\tilde {q}}_{2}},{{\tilde {q}}_{3}})$(30)
${{W}^{F}}({{k}_{1}},{{k}_{2}},{{k}_{3}}) = {{B}^{F}}({{k}_{1}},{{k}_{2}},{{k}_{3}}){{V}^{F}}({{k}_{1}},{{k}_{2}},{{k}_{3}}),\quad k \in {{\Pi }_{2}}.$Отметим, что точности интерполяции функций и аппроксимации интегралов имеют один и тот же порядок точности по $h$. Заметим, что точности интерполяции функции $B(x - y)$ и вычисления интегралов по формулам (3), (18) улучшаются с увеличением расстояния между точками $x$ и $y$. Это обстоятельство необходимо учитывать при выборе областей ${{\Pi }_{0}}(p)$.
Полученный результат можно сформулировать в матричном виде следующим образом.
Теорема. В случае неравномерной сетки матрица $A$ порядка ${{N}_{Q}}$ рассматриваемой системы линейных алгебраических уравнений допускает приближение
где $T$ – многоуровневая блочно-тёплицева матрица порядка $N = O({{N}_{Q}})$, соответствующая равномерной сетке, а ${{S}_{0}},\;{{S}_{1}},\;{{S}_{2}}$ – некоторые разреженные матрицы. Число ненулевых элементов в матрицах ${{S}_{1}}$ и ${{S}_{2}}$ имеет вид $O({{N}_{Q}})$. Число арифметических операций при умножении матрицы $\tilde {A}$ на вектор имеет вид $O({{N}_{Q}}log{{N}_{Q}})$.4. ЗАКЛЮЧЕНИЕ
В работе представлены численные методы решения объемных интегральных уравнений, которые описывают задачи рассеяния волн различной физической природы на неоднородных структурах, находящихся в трехмерной ограниченной области. Для аппроксимации интегральных уравнений системами линейных алгебраических уравнений применяется метод коллокации на неравномерной сетке. Для построения эффективного алгоритма выбирается некоторая равномерная метка и на основе методов интерполяции функций и алгоритмов быстрого дискретного преобразования Фурье строятся эффективные алгоритмы приближенного умножения матрицы системы уравнений на вектор, существенно ускорящие выполнение каждой итерации применяемого итерационного метода. Проведенный нами анализ показывает, что точность приближенного умножения определяется исключительно точностью интерполяции ядра, а число узлов вспомогательной равномерной сетки сопоставимо с числом узлов исходной неравномерной сетки.
Список литературы
Colton D., Kress R. Inverse acoustic and electromagnetic scattering theory // Appl. Math. Sci. V. 93. Berlin: Springer-Verlag, 1992.
Самохин А.Б. Интегральные уравнения и итерационные методы в электромагнитном рассеянии. М.: Радио и связь, 1998.
Воеводин В.В., Тыртышников Е.Е. Вычислительные процессы с тёплицевыми матрицами. М.: Наука, 1987.
Yaghjian A.D. Electric dyadic Green’s function the source region // Proc. IEEE. 1980. V. 68. P. 248–263.
Gaudi O.M. Integration of the ordinary differential equations // J. Math. Phys. 1964. V. 5. Iss. 420. P. 420–430.
Дополнительные материалы отсутствуют.
Инструменты
Журнал вычислительной математики и математической физики