Программирование, 2023, № 2, стр. 31-35
СИМВОЛЬНЫЙ АЛГОРИТМ ДЛЯ ЗАДАЧИ НАХОЖДЕНИЯ НУЛЕЙ СИСТЕМЫ ГОЛОМОРФНЫХ ФУНКЦИЙ
В. И. Кузоватов a, *, А. А. Кытманов b, c, **, Е. К. Мышкина d, ***
a Сибирский федеральный университет
660041 Красноярск, пр. Свободный, 79, Россия
b МИРЭА — Российский технологический университет
119454 Москва, пр. Вернадского, 78, Россия
c Учебно-научная лаборатория искусственного интеллекта, нейротехнологий и бизнес-аналитики,
Российский экономический университет им. Г.В. Плеханова
117997 Москва, Стремянный пер., 36, Россия
d Институт вычислительного моделирования СО РАН
660036 Красноярск, Академгородок, 50/44, Россия
* E-mail: kuzovatov@yandex.ru
** E-mail: aakytm@gmail.com
*** E-mail: elfifenok@mail.ru
Поступила в редакцию 28.08.2022
После доработки 13.10.2022
Принята к публикации 30.10.2022
- EDN: MGDMHW
- DOI: 10.31857/S0132347423020139
Аннотация
На основе интегрального представления Бохнера–Мартинелли приведен алгоритм, позволяющий определять число нулей системы голоморфных функций. Нули системы функций ищутся на множестве поликуба. Использование методов компьютерной алгебры в данной задаче обусловлено вычислительной сложностью разрабатываемых алгоритмов и получаемых результатов. Дана реализация данного алгоритма в системе компьютерной алгебры Maple, позволяющая существенно упростить необходимые вычисления.
1. ВВЕДЕНИЕ
Данная работа посвящена исследованию систем неалгебраических уравнений в ${{\mathbb{C}}^{n}}$. Такие системы возникают при описании нелинейных процессов в различных областях знания, таких как теоретическая физика, химическая кинетика (включая задачи, возникающие при описании процессов в нефтегазовой промышленности, а также при изучении кинетики химических превращений композитов на основе горных пород), математическая биология. На данный момент системы неалгебраических уравнений, как правило, поддаются решению лишь в случае, когда их можно свести к алгебраическим с помощью замены переменных. В противном случае поиск решения производится приближенно с помощью численных методов [1].
Вместе с тем, в различных процессах, описываемых системами дифференциальных уравнений с правыми частями, разложимыми в ряд Тейлора, актуален вопрос об определении числа стационарных состояний в множествах определенного вида (и их локализации). Эта проблема приводит к задачам построения алгоритмов для определения числа корней заданной системы уравнений в разных множествах, определения самих корней, исключения части неизвестных из системы.
Научная значимость данной работы связана с определением нового подхода к итерационным методам решения систем трансцендентных уравнений, состоящих из голоморфных функций многих комплексных переменных. Полученные результаты позволят расширить области применения методов и алгоритмов компьютерной алгебры на нелинейные уравнения неполиномиального типа. В связи с этим решение поставленных в данной работе задач важно для развития данного направления науки.
2. ОСНОВНОЙ РЕЗУЛЬТАТ
Пусть D – ограниченная область в ${{\mathbb{C}}^{2}}$ с кусочно-гладкой границей $\partial D$, а $f:\overline D \to {{\mathbb{C}}^{2}}$ голоморфное отображение, $f\left| {_{{\partial D}}} \right. \ne 0$.
Известно обобщение теоремы о логарифмическом вычете на случай многих переменных на основе интегрального представления Бохнера–Мартинелли (см., например, [2, теорема 2.4]):
где $N$ – число нулей отображения $f$ в $D$ с учетом кратности, аРассмотрим случай, когда $D$ – поликуб, то есть произведение отрезков
Перейдем к вещественным координатам
Тогда
(2)
$\begin{gathered} a \leqslant {{x}_{1}} \leqslant b,\quad \alpha \leqslant {{y}_{1}} \leqslant \beta , \\ c \leqslant {{x}_{2}} \leqslant d,\quad \gamma \leqslant {{y}_{2}} \leqslant \delta . \\ \end{gathered} $Запишем форму $w$ в вещественных координатах. Будем иметь
Для удобства записи введем следующие обозначения. Обозначим через $J$ якобиан отображения f, через ${{\left| f \right|}^{2}}$ – квадрат евклидовой нормы. Таким образом,
Таким образом, с учетом введенных обозначений форму w можно записать в виде
(3)
$\begin{gathered} w = - \frac{2}{{{{{(2\pi i)}}^{2}}}}\frac{J}{{{{{\left| f \right|}}^{4}}}} \times \\ \, \times \left[ {A\left( {d{{x}_{1}} \wedge d{{y}_{1}} \wedge d{{y}_{2}} + i{\kern 1pt} d{{x}_{1}} \wedge d{{x}_{2}} \wedge d{{y}_{1}}} \right) + } \right. \\ \, + \left. {B\left( {d{{x}_{2}} \wedge d{{y}_{1}} \wedge d{{y}_{2}} + id{{x}_{1}} \wedge d{{x}_{2}} \wedge d{{y}_{2}}} \right)} \right]. \\ \end{gathered} $Для сведения интеграла (1) к интегралу Римана по гиперграням нужно выбрать их правильную ориентацию. Ориентация на многообразии задается (см., например, [3], глава II, п. 14) указанием дифференциальной формы максимальной степени, которая сопоставляется элементу объема $dV$ при интегрировании. Ориентация ${{\mathbb{R}}^{4}} = {{\mathbb{C}}^{2}}$, как и гиперкуба $D \subset {{\mathbb{C}}^{2}}$, традиционно задается формой
Согласованная с ней ориентация (в соответствии с [3], глава II, п. 14) граней следующая:
Интеграл (1) есть сумма интегралов по правильно ориентированным гиперграням. При этом имеется 4 пары гиперграней.
Рассмотрим для примера пару гиперграней, задаваемых условиями ${{x}_{1}} = a$ и ${{x}_{1}} = b$. В этом случае 3 из 4 дифференциальных форм в выражении (3) обращаются в нуль и форма $w$ примет вид
Форма $d{{x}_{2}} \wedge d{{y}_{1}} \wedge d{{y}_{2}}$ на ${{x}_{1}} = a$ отрицательна, а на ${{x}_{1}} = b$ – положительна. Поэтому
(4)
$\, = \frac{2}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\begin{gathered} {{x}_{1}} = a, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta , \\ \gamma \leqslant {{y}_{2}} \leqslant \delta \\ \end{gathered} } \frac{J}{{{\text{|}}f{{{\text{|}}}^{4}}}}BdV - \frac{2}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\begin{gathered} {{x}_{1}} = b, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta , \\ \gamma \leqslant {{y}_{2}} \leqslant \delta \\ \end{gathered} } \frac{J}{{{\text{|}}f{{{\text{|}}}^{4}}}}BdV = $Аналогично, получим следующие результаты для остальных пар гиперграней:
(5)
${{I}_{2}} = \int\limits_{{{x}_{2}} = c} w + \int\limits_{{{x}_{2}} = d} w = \frac{2}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta , \\ \gamma \leqslant {{y}_{2}} \leqslant \delta } } \left. {\frac{J}{{{\text{|}}f{{{\text{|}}}^{4}}}}A} \right|_{{{{x}_{2}} = c}}^{{{{x}_{2}} = d}}dV,$(6)
${{I}_{3}} = \int\limits_{{{y}_{1}} = \alpha } w + \int\limits_{{{y}_{1}} = \beta } w = \frac{{2i}}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \gamma \leqslant {{y}_{2}} \leqslant \delta } } \left. {\frac{J}{{{\text{|}}f{{{\text{|}}}^{4}}}}B} \right|_{{{{y}_{1}} = \beta }}^{{{{y}_{1}} = \alpha }}dV,$(7)
${{I}_{4}} = \int\limits_{{{y}_{2}} = \gamma } w + \int\limits_{{{y}_{2}} = \delta } w = \frac{{2i}}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta } } \left. {\frac{J}{{{\text{|}}f{{{\text{|}}}^{4}}}}A} \right|_{{{{y}_{2}} = \gamma }}^{{{{y}_{2}} = \delta }}dV.$Тем самым мы приходим к следующему утверждению.
Теорема 1. Пусть D – поликуб, то есть произведение отрезков $[a,b] \times [\alpha ,\beta ] \times $ $[c,d] \times [\gamma ,\delta ] \subset $ ${{\mathbb{C}}^{2}} = {{\mathbb{R}}^{4}}$, а $f:\overline D \to {{\mathbb{C}}^{2}}$ голоморфное отображение, $f\left| {_{{\partial D}}} \right. \ne 0$. Тогда количество N нулей системы
(8)
$\left( {\begin{array}{*{20}{c}} {{{f}_{1}}\left( {{{z}_{1}},{{z}_{2}}} \right) = 0,} \\ {{{f}_{2}}\left( {{{z}_{1}},{{z}_{2}}} \right) = 0} \end{array}} \right.$Заметим, что сумма интегралов (4)–(7) должна быть целым числом. Это означает, что для приближенного вычисления этих интегралов большая точность не требуется.
При наличии корней в поликубе D (то есть если указанная сумма интегралов не равна нулю), он разбивается на несколько поликубов меньшего размера, и вычисления повторяются в каждом из них для локализации корней. Алгоритм останавливается при достижении необходимой точности.
3. ПРИМЕР
Пусть ${{f}_{1}} = {{z}_{1}}$, ${{f}_{2}} = {{z}_{2}}$, то есть рассмотрим количество $N$ нулей системы
в области $D = [ - 1;1] \times [ - 1;1] \times $ $[ - 1;1] \times [ - 1;1]$. Очевидно, что единственным решением данной системы является точка $\left( {0,0} \right) \in {{\mathbb{C}}^{2}}$ и $N = 1$. Покажем это с помощью теории, изложенной выше. Такой выбор функций ${{f}_{1}}$ и ${{f}_{2}}$ объясняется необходимостью упрощения выкладок.Вычислим необходимые величины. Будем иметь:
Вычислим интегралы по гиперграням ${{x}_{1}} = a$ и ${{x}_{1}} = b$, при этом $a = - 1$, $b = 1$. Получим
Вычислим далее интегралы по гиперграням ${{x}_{2}} = c$ и ${{x}_{2}} = d$, при этом $c = - 1$, d = 1. Получим
Вычислим далее интегралы по гиперграням ${{y}_{1}} = \alpha $ и ${{y}_{1}} = \beta $, при этом $\alpha = - 1$, $\beta = 1$. Получим
Нам осталось вычислить последние интегралы по гиперграням ${{y}_{2}} = \gamma $ и ${{y}_{2}} = \delta $, при этом $\gamma = - 1$, $\delta = 1$. Получим
Таким образом, количество N нулей искомой системы равно
Очевидно, что даже в таком простом случае системы, как в рассмотренном нами примере, необходима помощь вычислительных процедур.
4. ОПИСАНИЕ АЛГОРИТМА
Алгоритм был реализован в среде Maple 2016 64bit. Полный код программы доступен по адресу https://github.com/aakytmanov/Zeros. Вычисления первого шага алгоритма производились на машине Intel Core i7-4790 (3.6 GHz) c 32 Gb RAM под управлением Windows 10 Pro x64 21H1. Время счета для системы функций
составило 53 секунды.Вызов функции для данного примера приведен ниже:
> fZeros([(z1, z2) -> z1, (z1, z2) -> z2],
[-1, 1, -1, 1, -1, 1, -1, 1]);
Реализация итерационной процедуры позволит приближенно находить корни системы уравнений, содержащей голоморфные функции, в заданном поликубе, однако она требует оптимизации приближенного вычисления интегралов с учетом отсутствия необходимости большой точности вычислений, поскольку результатом интегрирования всегда является целое число. Это является актуальной текущей задачей.
Алгоритм 1: Алгоритм вычисления числа нулей системы в заданной области.
Input: Список функций ${{f}_{i}}(z)$ из левой части системы (8), список пределов интегрирования $a$, $b$, $\alpha $, $\beta $, $c$, $d$, $\gamma $, $\delta $ из (2), определяющих поликуб. | |||
Output: Значение интеграла (1). | |||
begin | |||
${{f}_{1}}({{z}_{1}},{{z}_{2}}) \to {{u}_{1}}({{x}_{1}},{{y}_{1}},{{x}_{2}},{{y}_{2}}) + i{{{v}}_{1}}({{x}_{1}},{{y}_{1}},{{x}_{2}},{{y}_{2}})$ | |||
${{f}_{2}}({{z}_{1}},{{z}_{2}}) \to {{u}_{2}}({{x}_{1}},{{y}_{1}},{{x}_{2}},{{y}_{2}}) + i{{{v}}_{2}}({{x}_{1}},{{y}_{1}},{{x}_{2}},{{y}_{2}})$ | |||
${{\left| f \right|}^{4}}: = ({{f}_{1}}{{\bar {f}}_{1}} + {{f}_{2}}{{\bar {f}}_{2}}{{)}^{2}}$ | |||
$J: = \frac{{\partial {{f}_{1}}}}{{\partial {{z}_{1}}}}\frac{{\partial {{f}_{2}}}}{{\partial {{z}_{2}}}} - \frac{{\partial {{f}_{1}}}}{{\partial {{z}_{2}}}}\frac{{\partial {{f}_{2}}}}{{\partial {{z}_{1}}}}$ | |||
$A: = \overline {{{f}_{1}}\frac{{\partial {{f}_{2}}}}{{\partial {{z}_{1}}}} - {{f}_{2}}\frac{{\partial {{f}_{1}}}}{{\partial {{z}_{1}}}}} $ | |||
$B: = \overline {{{f}_{1}}\frac{{\partial {{f}_{2}}}}{{\partial {{z}_{2}}}} - {{f}_{2}}\frac{{\partial {{f}_{1}}}}{{\partial {{z}_{2}}}}} $ | |||
${{I}_{{{{x}_{1}}}}}: = \left. {\frac{J}{{{{{\left| f \right|}}^{4}}}}B} \right|_{{{{x}_{1}} = b}}^{{{{x}_{1}} = a}}$ | |||
${{I}_{{{{x}_{2}}}}}: = \left. {\frac{J}{{{{{\left| f \right|}}^{4}}}}A} \right|_{{{{x}_{2}} = c}}^{{{{x}_{2}} = d}}$ | |||
${{I}_{{{{y}_{1}}}}}: = \left. {\frac{J}{{{{{\left| f \right|}}^{4}}}}B} \right|_{{{{y}_{1}} = \beta }}^{{{{y}_{1}} = \alpha }}$ | |||
${{I}_{{{{y}_{2}}}}}: = \left. {\frac{J}{{{{{\left| f \right|}}^{4}}}}A} \right|_{{{{y}_{2}} = \gamma }}^{{{{y}_{2}} = \delta }}$ | |||
${{I}_{1}}: = \frac{2}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ c \leqslant {{x}_{2}} \leqslant d, \\ \alpha \leqslant {{y}_{2}} \leqslant \beta , \\ \gamma \leqslant {{y}_{2}} \leqslant \delta } } {{I}_{{{{x}_{1}}}}}{\kern 1pt} dV$ | |||
${{I}_{2}}: = \frac{2}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta , \\ \gamma \leqslant {{y}_{2}} \leqslant \delta } } {{I}_{{{{x}_{2}}}}}dV$ | |||
${{I}_{3}}: = \frac{{2i}}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \gamma \leqslant {{y}_{2}} \leqslant \delta } } {{I}_{{{{y}_{1}}}}}{\kern 1pt} dV$ | |||
${{I}_{4}}: = \frac{{2i}}{{{{{(2\pi i)}}^{2}}}}\int\limits_{\substack{ a \leqslant {{x}_{1}} \leqslant b, \\ c \leqslant {{x}_{2}} \leqslant d, \\ \alpha \leqslant {{y}_{1}} \leqslant \beta } } {{I}_{{{{y}_{2}}}}}{\kern 1pt} dV$ | |||
$I: = {{I}_{1}} + {{I}_{2}} + {{I}_{3}} + {{I}_{4}}$ | |||
Return$I$ |
Список литературы
Ортега Дж., Рейнболдт В. Итерационные методы решения нелинейных систем уравнений со многими неизвестными. М.: Мир, 1975.
Айзенберг Л.А., Южаков А.П. Интегральные представления и вычеты в многомерном комплексном анализе. Новосибирск: Наука, 1979.
Шабат Б.В. Введение в комплексный анализ. Функции нескольких переменных. Ч. 2. СПб.: Лань, 2004.
Дополнительные материалы отсутствуют.
Инструменты
Программирование