СИМВОЛЬНОЕ ИНТЕГРИРОВАНИЕ КОМПОЗИЦИЙ ЭЛЕМЕНТАРНЫХ ФУНКЦИЙ
© С.М. Тарарова
Ключевые слова: символьное интегрирование, алгоритм Риша, теорема Лиувилля об элементарном интеграле.
Аннотация
Статья посвящена программной реализации алгоритма символьного интегрирования Риша. Приведен алгоритм символьного интегрирования,выделены основные процедуры алгоритма, и приведены результаты вычислительных экспериментов.
Вычисление интегралов представляет собой важную часть компьютерной алгебры. Алгоритм интегрирования в конечном виде функций из трансцендентного расширения поля рациональных функций, порожденного экспонентами и логарифмами, был сформулирован в 1969 году Ришем [1].
Алгоритм состоит из следующих этапов.
1. Проверка, принадлежит ли подынтегральная функция данному классу. Проверка осуществляется с помощью структурной теоремы [2].
Для формулировки структурной теоремы введем некоторые новые понятия.
Определение 1.1. Элемент в назовем регулярным мономом над дифференциальным по-
лем Р, если в трансцедентен над Р и является либо логарифмом, либо экспонентой над И. Последовательность элементов в\,..., вп называется последовательностью регулярных мономов над
К (ж, в\ 5 . . . , 6^ — 1)., і Ті.
Теорема 1. Пусть К - поле констант, #і,..., вь-і, к > 1 - последовательность регулярных мономов, Е - множество индексов 1 < г < к — 1 таких, что ві является экспонентой 9і = ехр(/г); а Ь - множество индексов 1 < г < к — 1 таких, что ві является логарифмом 9і — іп(/і).
(1) Пусть 6-к — ехр(Д) - экспонента над — К {х, ві,..., . Д Є Если элемент в^
алгебраичен над Ик-і, то Д представляется в виде линейной комбинации с рациональными коэффи-
Ц її ЄН'ЇЇІСіЛі'іІ
где с - некоторая константа.
(2) Пусть — 1п (Д) - логарифм над Иь-і = К {х,в\,... ,в-к~і} , ¡к Є Рк-\- Если элемент $к алгсбраичен над пго f|c представляется в виде произведения рациональных степеней
где с - некоторая константа.
1.1. Освобождаемся от знаменателя и приравниваем коэффициенты при одинаковых мономах левой и правой частях. Но в первом случае нужно предварительно прологарифмировать обе части, представив логарифм от произведения в виде суммы логарифмов, при этом степени пг, wij превратятся в коэффициенты при одинаковых мономах. В результате получим систему линейных уравнений относительно с, щ, raj.
1.2. Если полученная на этапе 1.1 система не имеет решение в поле констант, такое, что все щ. mj 6 Q, то в і не является регулярным мономом, в противном случае проверяем, единственным ли образом 9}£ выражается через ві. Если “да”, то ві не является регулярным мономом, иначе структурная теорема, может только подсказать, как переформулировать исходную задачу.
2. С помощью теоремы Лиувилля [3] определяется вид элементарного интеграла, при условии его существования.
n^rrij є Q,
ІЄ.Б
J€L
Теорема 2 (принцип Лиувилля). Пусть / - функция из некоторого функционального поля К. Если / обладает элементарным над К интегралом, то этот интеграл имеет следующий вид:
3. Разложение подынтегрального выражения в сумму полинома и правильной рациональной дроби
Если 6п - логарифмическая функция, то разложить подынтегральное выражение в сумму полинома от вп и правильной рациональной дроби:
где VI,г>к - нормированные полиномы от в, .. -, ьп принадлежат полю К.
Если вп - экспоненциальная функция, то разлагаем подынтегральное выражение в сумму обобщенного полинома и правильной рациональной функции, знаменатель которой не делится на вп:
где щ - степень полинома, в' - 7)'д.
4. Вычисляем интеграл или приводим доказательство его отсутствия. Вычисление интеграла или доказательство его отсутствия производится методом неопределенных коэффициентов с использованием рекурсии.
Для интегрирования логарифмической функции будем рассматривать функциональные поля, порожденные логарифмом.
-К - функциональное поле, предполагаемое эффективным, такое, что мы можем интегрировать в К; -в - логарифм над К, в' = ~ и в предполагается трансцендентным над К;
- поле К (в) имеет то же поле констант, что и поле К.
Для интегрирования экспоненциальной функции будем рассматривать функциональные пол», порожденные экспонентой.
- К - функциональное поле, предполагаемое эффективным, такое, что мы можем интегрировать в К и умеем решать в К дифференциальное уравнение у' fy — д\
~ 6 - экспонента над К, 9' = т]'в и в предполагается трансцендентным над К;
- поле К (в) имеет то же поле констант, что и поле К.
Основной алгоритм метода неопределенных коэффициентов.
Представим полиномиальную (обобщенную полиномиальную) часть интеграла в виде [3]:
П
1 = 1
где ио принадлежит полю К, г>* принадлежит расширению К поля К с помощью конечного числа алгебраических над К констант, а С{ - константы, принадлежащие К.
[3].
ПОЛИНОМ
правильная рациональная функция
обобщенный полином
ч------------- ---------
правильная рациональная функция
т
р — ^ Аів1, п = т + 1;
т /Пч/П/гг п п / /
®пг+1 — 0;
'т+1
Вт — J Лт {т т 1)Вт+ів — — (ш -Ь І)Вт-\-і6 -Ь J Av Вт-1 = -гпЬт9+ / Am_i - rnBm0':
it л
Bq + Сі In г>і — —bid + / Aq — Bid1.
__L, і 1 J
1
Предположим, что полином д записан в виде Ац@ъ- Тогда дробно-рациональную часть можно представить в виде :
ЕШо А1г91 =
Гп СІХ
}■ TD “і
у^ + СгЫг\
/ тп — г I
4=1 ' J
Е?=оА1гв1
г=1
" 1 Г В^гУ ,В^, Сг(гп~У
г, А I 1 “Г ^ „ __ •
£
(і)
где коэффициенты (г е 1,..., п — 1) находятся с помощью расширенного алгоритма Евклида [4]. Т. е. находим такие Р(0), Q(<9), где Р - линейный относительно 9 полином, P(9),Q(9) е Кх, #i,..., 9n~i, что:
—Вцг' = q (mod г).
Подставляем значения Вц в равенство (1) и приравниваем коэффициенты при одинаковых мономах левой и правой частей интеграла.
На основе выше приведенного алгоритма была разработана программа в среде программирования Java, для вычисления интеграла от функции, содержащей полиномиальное выражение. Исходная функция преобразуется в матричный вид, что позволяет выполнять различные операции с ней.
Основные процедуры программного кода.
Основная процедура integrate выполняет интегрирование композиций элементарных функций. На выходе процедуры integrate получим результат интегрирования. Она использует следующие процедуры.
- Процедура razbienie выполняет выделение в подынтегральном выражении последовательности подвыражений.
-Процедуры ЕвИЕХР(для ехр()) и EsliLN (для 1п()) проверяют, является ли выбранная последовательность последовательностью регулярных мономов.
- Процедура FuncUonRAddArg представляет исходную функцию в виде массива, где строки массива хранят в себе элементарные функции и их аргументы.
- Процедура Solve решает систему линейных уравнений относительно коэффициентов при одинаковых мономах (с, щ, гаметодом Гауса. На выходе получаем решения системы линейных уравнений (гпЩх).
- Процедура Verify проверяет, является ли система совместной. На вход подаются корни системы линейных уравнений (int\}x) и некоторая заданная точность (double eps). На выходе получаем true или false,
- Если система линейных уравнений несовместна, то вместо с, пг, rrij с помощью процедуры EsliVerify подставляем их значения и проверяем единственным ли образом 9k выражается через 9i. Если “нет”, то данная процедура возвращает переформулированную исходную функцию.
- Процедура Diff находит производную от 9i.
- Метод неопределенных коэффициентов в зависимости от того, относительно какой переменной происходит интегрирование (ехр() или 1п0), осуществляется в процедуре InPatsMeniExv или InPatsMeniLn. Данные процедуры возвращают массив В,.
- Процедура ItogSum подставляет вместо Вг и 9i их значения в формуле:
ГП
P=Y,Biei.
¿=о
Перечисленные выше процедуры программы реализованы. Приведем пример вычисления интеграла.
функции: / — 1п(:г ехрж2)2.
Построим последовательность расширений полей, которая начинается с поля рациональных чисел Пусть С01 = X2, а02 = ехр(асц), аоз = ха02, а04 = 1п(а03), 005 = а24.
Нужно проверить, является ли выписанная последовательность последовательностью регулярных мономов над (¡¿(х) — (¡¿(аох).
йо-2 = ехр(асп), Я = Д[с, х], ро1 = х2с.
Приравниваем коэффициенты при одинаковых мономах. Получили массив коэффициентов
/ 0 -1 \
х = , „ I .
у -1 и у
Т.к. соответствующая система несовместна, то ао2 является регулярным мономом над (2(аоъ аог)-ао4 = 1п(аоз), Я — Я[с, т0,х, ао2], ро1 — —т0а02 + а02 + хс Приравниваем коэффициенты при одинаковых мономах. Получили массив коэффициентов
/0 -1 -1 ^
10 0-1 V -1 о о /
1ак как соответствующая система несовместна, то ао4 является регулярным мономом над <5(aoi, Дог, аоз)-
В поле Q(x, 001, ао2, аоз) исходное выражение имеет вид а§4.
Производная от йоъ а02> аоз, ао4:
ab i = (2.0а:),
а02 = ((2.0a:)) * а02,
4з = (((2.0а:)) * а02) * (a:) + а02 * (1),
а04 = (((((2.0а:)) * а02) * (ж) + а02 * (1)))/(а02 * х).
Метод неопределенных коэффициентов
т = (х), ]
В[ 1] = — (ж'»5 — 2 * (ж).
в|о] = ((г)3)/(3) -f (3 * х2)/(2) + 2 * (х),
J / = (i3/3 3 * íc2/2 + 2 * г) + ln(cc ехр(а:2))(—(а:)2 — 2 * х) + 1п(х ехр(а:2))2а;.
Написаны программы для метода неопределенных коэффициентов для полиномиальной части интеграла, которая содержит композицию элементарных функций, ехр() и 1п(). В дальнейшем планируется расширить программный комплекс на дробно-рациональные выражения комплексную область,а также распараллелить программу для проведения вычислений на кластере ТГУ и МСЦ.
Работа выполнена при частичной поддержке грантов РФФИ (проект 08-07-97507) и программы "Развитие потенциала высшей школы"(проект 2.1.1/1853).
Список литературы
1. Risch R.H. The problem of integration in finite terms // Trans. Amer. Math. Soc. 1969. Vol. 139. P. 167-189.
2. Панкратьев E.B. Элементы компьютерной алгебры (Конспекты спецкурса). М.: Бином. Лаборатория знаний, 2007.
3. Дэвенпорт Д., Сирэ П., Турнъе Э. Компьютерная алгебра. М.: Мир,1991.
4. Кнут Д. Искусство программирования для ЭВМ. М.: Мир, 1976. Т. 1.
Поступила в редакцию 20 ноября 2008 г.