УДК 511.2
В.С. Мельман, Ю.В. Шабля, Д.В. Кручинин, В.В. Кручинин
Сравнительный анализ вычислительных способов нахождения коэффициентов ряда Тейлора в математических пакетах
Исследуется способ нахождения коэффициентов ряда Тейлора с использованием композит производящих функций. Также проводится сравнение способов нахождения коэффициентов ряда Тейлора различными математическими пакетами с новым способом, реализованным в виде библиотеки для МаШешайса. Ключевые слова: ряд Тейлора, коэффициенты ряда Тейлора, производящие функции, композиты производящих функций, коэффициенты производящих функций, математические пакеты, сравнительный анализ. ао1: 10.21293/1818-0442-2017-20-4-71-74
Числовым рядом или рядом называют бесконечную числовую последовательность. Ряды нашли своё применение как в теоретических исследованиях математического анализа, так и в численных методах: для решения дифференциальных уравнений, приближённого вычисления значений функций, определённых интегралов, в интерполяции, аппроксимации. Наибольшее применение на практике нашли степенные ряды. Это ряды, членами которых являются степенные функции аргумента х. Наиболее известными являются степенные ряды Тейлора.
Главной проблемой использования степенных рядов на практике является большая вычислительная сложность алгоритмов нахождения коэффициентов при степенях х.
Для работы с рядами на практике зачастую используют математические пакеты. Прикладные математические пакеты - это пакеты прикладных программ, используемые для численных и аналитических расчётов. Как правило, каждый математический пакет имеет свою реализацию и способы для вычисления коэффициентов ряда Тейлора.
Схожим понятием с рядом Тейлора является производящая функция. Производящие функции применяются в перечислительном комбинаторном анализе, теории вероятностей, математическом анализе [1, 2]. Производящая функция последовательности {ап} - это следующий формальный степенной ряд [1]:
да
а0 + а1х + а2х2 +... = ^ апхп .
п=0
Формальным степенным рядам не придаётся числовых значений, и сходимость таких рядов не рассматривается. Если на производящую функцию наложить условие сходимости, то она будет являться рядом Тейлора.
В работах [3-5], был предложен новый метод нахождения коэффициентов производящих функций, основанный на композитах, который может быть использован для нахождения коэффициентов ряда Тейлора. Композиты - это коэффициенты степеней производящих функций [3]. Таким образом, определяя формулы нахождения композит для основных операций с производящими функциями и композиты для простейших производящих функций, будут по-
лучены формулы для нахождения коэффициентов сложных производящих функций. Данный способ является новым и нуждается в изучении, поэтому целью данного исследования является анализ способа нахождения коэффициентов производящих функций через композиты производящих функций.
Ранее в работе [6] для автоматизации нового способа была разработана модель нахождения ко -эффициентов производящих функций, на основе которой в [7] была реализована библиотека по работе с производящими функциями для математического пакета Mathematica.
Задачей данной работы является проведение сравнительного анализа способов нахождения коэффициентов ряда Тейлора, реализованных в библиотеке, со способами, используемыми в математических пакетах.
Подготовка к проведению сравнительного анализа
Для проведения сравнительного анализа был выбран ряд наиболее популярных математических пакетов: Wolfram Mathematica 11.0, Maxima 5.39.0, SageMath 7.6, Matlab R2017a Symbolic Math Toolbox, Maple 2016.2.
Поскольку три из пяти представленных математических пакетов являются проприетарным программным обеспечением, исходные коды их алгоритмов являются закрытыми, то посчитать теоретическую сложность алгоритмов разложения функции в ряд Тейлора не представляется возможным. Поэтому сравнительный анализ будет проводиться на основе эмпирически полученных данных.
Для сравнения нового метода с существующими необходимо определить критерии сравнения. Для анализа способов может возникнуть потребность в определении различных ресурсов, необходимых для вычисления, но чаще всего определяют время вычисления и затрачиваемую память [8].
Для сравнения способов было произведено тестирование, включающее в себя следующие этапы:
- составление базы функций, на основе которых будет проводиться тестирование;
- проведение измерения времени выполнения и затраченной памяти для существующих методов нахождения коэффициентов ряда Тейлора и нового метода для одинаковых функций;
_- проведение сравнения результатов._
Для проведения тестирования была составлена тестовая база, состоящая из трёх разделов. Каждый из разделов отличается сложностью входящих в него функций. Первый раздел состоит из сложных функций, которые составлены из двух простейших функций и одной операцией над ними. Второй раздел состоит из сложных функций, которые составлены из трёх простейших функций и двумя операциями над ними. Третий раздел состоит из сложных функций, которые составлены из четырёх функций и трёх операций над ними. Каждый из разделов содержит по 10 функций. Для составления базы были взяты следующие функции: полиномы, рациональные, тригонометрические, гиперболические, логарифмические, экспоненциальные функции, радикалы; а также операции сложения, произведения и суперпозиции над данными функциями. Тестовая база приведена в табл. 1, 2.
Проведение тестирование и анализ результатов
В качестве существующих методов нахождения коэффициентов ряда Тейлора использовались встроенные в математические пакеты алгоритмы, которые позволяют разложить заданную функцию в ряд Тейлора до заданного номера коэффициента. Для проведения измерения времени вычисления коэффициентов ряда Тейлора для заданной функции и затраченной памяти на вычисления также использовались встроенные в математические пакеты функции. Тестирование проходило на компьютере со следующими характеристиками: процессор Intel Core i3-6100U (2,3 ГГц), оперативная память DDR4 12 Гбайт.
Для каждой функции из тестовой базы было приведено измерение времени вычисления и затраченной памяти для разных методов нахождения ко -эффициентов ряда Тейлора для п равных от 10 до 100 с шагом 10.
Для сравнения полученных результатов были подсчитаны средние значения времени выполнения и затраченной памяти. На рис. 1 приведена зависимость времени выполнения от п в секундах.
Таблица 1 Первый раздел тестовой базы
№ Функция
1 tan(sin( x))
2 x • (cos( x) 1) 1-x
3 , arctan(x)
4 ln(1 + x _ + x • ex
5 sin(3x- 2x2 + x3)
6 cosh( x) —— 1-x
7 x •>/1-x +--—^r (1-x)2
8 cos( x) + sec( x)-2
9 x , ч -- • arctan( x) 1-x-x
10 л/1- x • ln(1 + x)
Таблица 2
Второй и третий разделы тестовой базы_
№ Второй раздел тестовой базы Третий раздел тестовой базы
1 tan(sin( x))+arctan( x) 1-V1-4 x tan(sin( x)) +--2--+ arctan( x)
2 . , ч x • (cos(x) -1) sin( x) +---—-- 1-x sin( x) + (ln(1 + x) • x •JTx) 1- sin( x)
3 1-v1-4x , .. . ,„ „ 2ч —--ln(1 + x) + (2 x + 3x2) (x4x + x• ex)•jj x x2) + (12x 3x2))
4 2 3 x sin(5x+3x2 + x )+- 1-x [x•ex • 1-x) + [ln(1-x)• 1-x-x2 J
5 x cosh( x)---+ arctan( x) 1-x 1->/1-4x • (1-4T^) + x + x23 + (-17x-3x2 +10x3) 2 (1- x)3
6 cos(x) + sec(x) + x • ex -2 ((ex -1) + arctan( x)) • (ln(1 + x) + x2)
7 —— (cos( x) -1) + x •%/1-4 x 1-x ( 2 J x x + x (cos( x) + sec( x) - 2) +--- +--- V1-x-x2 (1-x)3 )
8 ln(1 + x) • x • ex +-x—- 1-x-x ^(cosh(x) 1)• x )) + ((ex 1)• ( 7x + x2 + 4x3))
9 (11x 4 x2 2 x3) •isin(x) +1-^1-4 x| V 2 ) (i-x •(C0S< x)"1)!l+((i xx"x2 )•(3x" 2 x 1>)
10 (ex-1) •f1-^1-4x + x 2 1-x V ) -x—— • arctan( x) + (x V1-4 x • ln(1 + x)) 1-x-x
Из рис. 1 видно, что наибольше время на вычисление коэффициентов ряда Тейлора затрачивает математический пакет Matlab (от 0,0042 до 0,83 с), затем библиотека (от 0,0025 до 0,75 с), Maxima (от 0,0047 до 0,35 с), Sage (от 0,017 до 0,29 с), Maple (от 0,0073 до 0,12 с), Mathematica (на уровне 0,000035 с).
Алгоритмы Matlab и библиотеки имеют квадратичную зависимость от количества элементов в ряде Тейлора ко времени вычисления, Maxima, Sage, Maple имеют линейную зависимость. У Mathematica нет зависимости времени выполнения от количества элементов, такие результаты можно объяснить наличием у Mathematica сложных, отличных от других математических пакетов алгоритмов, которые используют распараллеливание вычислений, это также можно наблюдать на рис. 2, на котором представлен
график затраченной на вычисления памяти» в мегабайтах.
Из рис. 2 видно, что Mathematica с увеличением количества элементов выделяет большее количество памяти относительно других математических пакетов и библиотеки, а именно от 0,037 до 0,57 Мб. Большее количество памяти затрачивает только Maxima (от 0,071 до 6,46 Мб), затем, Matlab (от 0,0069 до 0,079 Мб), Maple (от 0,0029 до 0,059 Мб), библиотека (от 0,0065 до 0,0023 Мб). Измерить память в Sage не удалось из-за нечувствительности функции измерения памяти к проводимым вычислениям. Алгоритмы Maxima имеют квадратичную зависимость от количества элементов в ряде Тейлора ко времени вычисления, Matlab, библиотека, Maple, Mathematica имеют линейную зависимость.
Время, с
о,уо
■Май ab -Библиотека -Maxima -Sage Maple
Mathematica
80 90 100
п - количество элементов Рис. 1. График зависимости времени вычисления коэффициентов ряда Тейлора от п для функций библиотеки и математических пакетов
Память, Мб
7,00
I I
50 60 70 80
n - количество элементов
100
-Maxima
Mathematica -Matlab Maple Библиотека
Рис. 2. График зависимости памяти, затраченной на вычисления коэффициентов ряда Тейлора, от п для функций библиотеки и математических пакетов
Заключение
Для нахождения коэффициентов ряда Тейлора при небольших п можно использовать любой из исследованных математических пакетов или библиотеку по работе с производящими функциями. Если для пользователя важна скорость вычислений при боль-
ших n, то предпочтительнее будет использовать Mathematica, потому что её вычислительные способы вероятнее всего используют распараллеливание. Если же необходимо проводить вычисление коэффициентов ряда Тейлора параллельно с другими вычислениями или на слабых машинах с ограничен-
ными ресурсами, то наиболее предпочтительно выглядит использование библиотеки или Maple за счёт использования маленького количества памяти.
Из проведённого исследования видно, что использование библиотеки для вычисления коэффициентов ряда Тейлора оправдано при определённых условиях. Также библиотека имеет открытый исходный код и может быть использована для других задач, так, например, она обладает функционалом для вычисления критериев простоты числа на основе свойств композиции производящих функций [9], для решения функциональных и итеративных уравнений [4], для вычисления различных полиномов [10].
В дальнейшем планируется реализовать параллельные вычисления библиотеки для ускорения поиска коэффициентов ряда Тейлора, реализовать библиотеку не только для Mathematica, но и для других приведённых математических пакетов, чтобы проверить, не удастся ли улучшить алгоритмы, используемые этими математическими пакетами. Планируется посчитать теоретическую сложность алгоритмов вычисления коэффициентов ряда Тейлора для свободно распространяемых математических пакетов.
Работа выполнена при финансовой поддержке Министерства образования и науки РФ в рамках базовой части государственного задания ТУСУРа на 2017-2019 гг. (проект № 2.8172.2017/8.9).
Литература
1. Ландо С.К. Лекции о производящих функциях. -М.: МЦНМО, 2007. - 144 с.
2. Wilf H.S. Generatingfunctionology. - Academic Press, 1994. - 226 p.
3. Кручинин В.В. Комбинаторика композиций и её приложения. - Томск: В-Спектр, 2010. - 156 с.
4. Кручинин В.В. Степени производящих функций и их приминение / В.В. Кручинин, Д.В. Кручинин. - Томск: Изд-во Том. гос. ун-та систем упр. и радиоэлектроники, 2013. - 236 с.
5. Kruchinin V.V., Kruchinin D.V. Composita and its properties / V.V. Kruchinin, D.V. Kruchinin // Journal of Analysis and Number Theory. - 2014. - Vol. 2(2). - P. 1-8.
6. Мельман В.С. Моделирование процесса вычисления коэффициентов производящих функций / В.С. Мельман, Д.В. Кручинин, Ю.В. Шабля // Научный альманах. -Тамбов: Изд-во ООО «Консалтинговая компания Юком», 2016. - № 12-2 (26). - С. 220-224.
7. Мельман В. С. Разработка библиотеки по работе с производящими функциями в математическом пакете «Mathematica» / В.С. Мельман, Ю.В. Шабля, Д.В. Кручинин // Матер. Междунар. науч.-техн. конф. студентов, аспирантов и молодых учёных «Научная сессия ТУСУР-2017», Томск, 10-12 мая 2017 г. - Томск: В-Спектр, 2017. - Ч. 4. -С. 215-217.
8. Алгоритмы: построение и анализ / Т.Х. Кормен, Ч.И. Лейзерсон, Р.Л. Ривест, К. Штайн. - 3-е изд.; пер. с англ., под ред. И.В. Красикова. - М.: ООО «И.Д. Виль-ямс», 2013. - 1328 с.
9. Кручинин Д.В. Метод построения алгоритмов проверки простоты натуральных чисел для защиты информации / Д.В. Кручинин, В.В. Кручинин // Доклады ТУСУРа. -2011. - № 2 (24). - С. 247-251.
10. Кручинин Д.В. Метод получения явных выражений полиномов на основе степеней производящих функций: дис. ... канд. физ.-мат. наук: - Красноярск, 2015. -97 с.
Мельман Вадим Сергеевич
Студент каф. безопасности информационных систем
(БИС) ТУСУРа
Тел.: +7-961-892-23-46
Эл. почта: [email protected]
Шабля Юрий Васильевич
Аспирант каф. комплексной информационной
безопасности электронно-вычислительных систем
(КИБЭВС)ТУСУРа
Тел.: +7-906-949-03-07
Эл. почта: [email protected]
Кручинин Дмитрий Владимирович
Канд. физ.-мат. наук, научный сотрудник каф. КИБЭВС
Тел.: +7-913-845-99-04
Эл. почта: [email protected]
Кручинин Владимир Викторович
Д-р техн. наук, профессор каф. промышленной электроники ТУСУРа Тел.: 8 (383-2) 42-30-67 (вн. 41-70) Эл. почта: [email protected]
Melman V.S., Shablya Yu.V.,
Kruchinin D.V., Kruchinin V.V.
Comparative analysis of computational methods for
finding Taylor series coefficients in computer algebra
systems
In this paper the method of finding the Taylor series coefficients using the generating functions composite was considered. Authors also compare the methods for finding the Taylor series coefficients with different computer algebra systems with a new method realized as a library for the Mathematica. Keywords: Taylor series, Taylor series coefficients, generating functions, composite of generating functions, generating functions coefficients, computer algebra systems, comparative analysis.