ИСПОЛЬЗОВАНИЕ ШАБЛОНИЗАТОРА КАК ИНСТРУМЕНТАРИЯ КОМПЬЮТЕРНОЙ АЛГЕБРЫ (2021)
В исследовательских задачах, требующих применения численных методов решения систем обыкновенных дифференциальных уравнений, часто возникает необходимость выбора наиболее эффективного и оптимального для конкретной задачи численного метода. В частности, для решения задачи Коши, сформулированной для системы обыкновенных дифференциальных уравнений, применяются методы Рунге–Кутты (явные или неявные, с управлением шагом сетки или без и т.д.). При этом приходится перебирать множество реализаций численного метода, подбирать коэффициенты или другие параметры численной схемы. В данной статье предложено описание разработанной авторами библиотеки и скриптов автоматизации генерации функций программного кода на языке Julia для набора численных схем методов Рунге–Кутты. При этом для символьных манипуляций использовано программное средство подстановки по шаблону. Предлагаемый подход к автоматизации генерации программного кода позволяет вносить изменения не в каждую подлежащую сравнению функцию по отдельности, а использовать для редактирования единый шаблон, что с одной стороны дает универсальность в реализации численной схемы, а с другой позволяет свести к минимуму число ошибок в процессе внесения изменений в сравниваемые реализации численного метода. Рассмотрены методы Рунге–Кутты без управления шагом, вложенные методы с управлением шагом и методы Розенброка также с управлением шагом. Полученные автоматически с помощью разработанной библиотеки программные коды численных схем протестированы при численном решении нескольких известных задач.
Идентификаторы и классификаторы
- eLIBRARY ID
- 44429146
Методы Рунге–Кутты являются основными численными методами для решения нежестких систем обыкновенных дифференциальных уравнений. Известны численные схемы высоких порядков (10 и выше) с управлением шагом и плотной выдачей. Для многих языков программирования разработаны библиотеки, реализующие наиболее эффективные из построенных численных схем. Наиболее отлаженные коды были созданы для языка Fortran 77 Э. Хайрером (Ernst Hairer) и его коллегами, они описаны в книгах [1, 2] и доступны для скачивания на сайте [3]. Эти программы реализуют методы DOPRI5 [4] и DOPRI853 [5], которые обеспечивают управление шагом и плотную выдачу. Второй из этих методов также поддерживает переключение порядка метода между 8 и 5 для обеспечения большего быстродействия при решении гладких задач.
Подпрограммы DOPRI5 и DOPRI853 очень хорошо оптимизированы и доступны для использования во многих библиотеках и математических пакетах, таких как Matlab [6], Octave [7], SciPy [8], SciLab [9], Boost C++ [10] и т.д. Однако часто для учебных и исследовательских целей возникает необходимость перебора нескольких методов Рунге–Кутты для выбора оптимального для конкретной задачи [11–13].
Список литературы
- Hairer E., Nørsett S.P., G. Wanner. Solving Ordinary Differential Equations I. 2 edition. Berlin: Springer, 2008.
- Hairer E., Wanner G. Solving Ordinary Diffrential Equations II. Stiff and Differential-Algebraic Problems. 2 edition. 1996.
- Fortran and Matlab Codes. URL: https://www.unige.ch/~hairer/software.html.
- Dormand J.R., Prince P.J. A family of embedded Runge-Kutta formulae // Journal of computational and applied mathematics. 1980. Vol. 6, no. 1. P. 19-26.
- Prince P.J., Dormand J.R. High order embedded Runge-Kutta formulae // Journal of Computational and Applied Mathematics. 1981. V. 7. № 1. P. 67-75.
- Matlab. 2020. URL: https://www.mathworks.com/products/matlab.html.
- GNU Octave. 2020. URL: https://www.gnu.org/software/octave/.
- Jones E., Oliphant T., Peterson P., Others. SciPy: Open source scientific tools for Python. URL: http://www.scipy.org/.
- Scilab. 2020. URL: http://www.scilab.org/.
-
Boost. Boost C++ Libraries. 2020. URL: http://www.boost.org/.
-
Gevorkyan M.N., Velieva T.R., Korolkova A.V. et al. Stochastic Runge-Kutta Software Package for Stochastic Differential Equations // Dependability Engineering and Complex Systems. Springer International Publishing, 2016. V. 470. P. 169-179. arXiv: 1606.06604.
-
Kulyabov D.S., Gevorkyan M.N., Demidova A.V. et al. Implementation Diffi"culties Analysis of Stochastic Numerical Runge-Kutta Methods // 2nd International Scientific Conference "Convergent Cognitive Information Technologies", Convergent 2017 / Ed. by M. Shneps-Shneppe, V. Sukhomlin, E. Zubareva. Vol. 2064 of CEUR Workshop Proceedings. Moscow: CEUR-WS, 2017. 11. P. 28-40.
-
Gevorkyan M.N., Demidova A.V., Korolkova A.V., Kulyabov D.S. Issues in the Software Implementation of Stochastic Numerical Runge-Kutta // Distributed Computer and Communication Networks / Ed. by Vladimir M. Vishnevskiy, Dmitry V. Kozyrev. Cham: Springer International Publishing, 2018. Vol. 919 of Communications in Computer and Information Science. P. 532-546. arXiv: 1811.01719.
-
Bezanson J., Edelman A., Karpinski S., Shah V.B. Julia: A Fresh Approach to Numerical Computing. 2014.
-
Bezanson J., Karpinski S., Shah V.B., Edelman A. Julia: A Fast Dynamic Language for Technical Computing. 2012.
-
Kwong T. Hands-On Design Patterns and Best Practices with Julia. Birmingham B3 2PB, UK: Packt Publishing, 2020.
-
Геворкян М.Н., Королькова А.В., Кулябов Д.С., Севастьянов Л.А. Пример модульного расширения системы компьютерной алгебры // Программирование. 2020. № 2. С. 30-37. EDN: SPTDEJ
-
Python Reference Manual: Rep.; Executor: Guido Rossum. Amsterdam, The Netherlands, The Netherlands: 1995.
-
Jinja2 offial site. URL: http://http//jinja.pocoo.org.
-
Butcher J.C. Numerical Methods for Ordinary Differential Equations. 2 edition. New Zealand: Wiley, 2003.
-
Dormand J.R., Prince P.J. A reconsideration of some embedded Runge-Kutta formulae // Journal of Computational and Applied Mathematics. 1986. V. 15. № 2. P. 203-211.
-
Fehlberg E. Klassische Runge-Kutta Formeln fünfter und siebenter Ordnung mit Schrittweiten-Kontrolle // Computing. 1969. 6. Bd. 4, H. 2. S. 93-106.
-
Fehlberg E. Klassische Runge-Kutta-Formeln vierter und niedrigerer Ordnung mit Schrittweiten-Kontrolle und ihre Anwendung auf Wärmeleitungsprobleme // Computing. 1970. 3. Bd. 6, H. 1-2. S. 61-71.
-
Cash J., Karp A. A variable order Runge-Kutta method for initial value problems with rapidly varying right-hand sides // ACM Trans. Math. Softw. 1990. V. 16. № 3. P. 201-222.
Выпуск
Другие статьи выпуска
Предложены эвристические вероятностные алгоритмы полиномиального времени с односторонней ошибкой для распознавания кубических гиперповерхностей, чьи сингулярные локусы не содержат никакого линейного подпространства достаточно большой размерности. Эти алгоритмы легко реализовать в системах компьютерной алгебры. Алгоритмы основаны на проверке условий, что гессиан кубической формы не обращается в нуль тождественно или не определяет конус в проективном пространстве. Проверка свойств гессиана, в свою очередь, выполнима вероятностными алгоритмами с односторонней ошибкой, основанными на лемме Шварца–Зиппеля.
Обсуждается проблема поиска равновесных состояний машины Атвуда, в которой шкив конечного радиуса заменяется двумя отдельными малыми шкивами и оба груза могут колебаться в вертикальной плоскости. Получены дифференциальные уравнения движения системы и вычислены их решения в виде степенных рядов по малому параметру. Показано, что в случае грузов одинаковой массы равновесное положение r=const системы существует только при одинаковых амплитудах и частотах колебаний грузов и сдвиге фаз α = 0 или α = π. Кроме того, возможно состояние динамического равновесия, когда оба груза совершают колебания с одинаковыми амплитудами и частотами, а сдвиг фаз составляет α=±π/2. При этом длины маятников также совершают колебания около некоторого равновесного значения. Сравнение полученных результатов с соответствующими численными решениями уравнений движения подтверждает их корректность. Все необходимые вычисления выполняются с помощью системы компьютерной алгебры Wolfram Mathematica.
Рассматривается задача построения начальных членов формальных лорановых рядов, являющихся решениями для заданной компоненты yk (1⩽k⩽m) вектора неизвестных y дифференциальной системы y′=Ay, где y=(y1,…,ym)T, A – m × m-матрица, элементами которой являются d-усечения формальных лорановых рядов, т.е. их начальные члены до степени d⩾0 включительно. Предлагается алгоритм решения задачи с использованием алгоритма TSLS (Truncated Series Laurent Solution). Строящиеся предлагаемым алгоритмом первые члены формальных лорановых решений для yk являются инвариантными относительно возможных продолжений элементов матрицы исходной системы.
В статье предлагается алгоритмическая реализация элементарной версии метода Рунге для семейства диофантовых уравнений 4-й степени с двумя неизвестными. К уравнениям рассматриваемого типа сводится любое диофантово уравнение 4-й степени, старшая однородная часть которого разлагается в произведение линейного и кубического многочленов. Компьютерную реализацию алгоритма решения (в его оптимизированном виде) предполагается осуществить в системе компьютерной алгебры PARI/GP.
Компьютерная алгебра все шире применяется в научных и прикладных вычислениях. В качестве примера приведем тензорные вычисления или в более широком смысле этого слова – упрощение выражений с индексами. В настоящей статье развивается метод цветных графов для упрощения абстрактных выражений с индексами на случай, когда индексы могут быть отнесены к нескольким различным типам. Примерами таких индексов могут быть верхние и нижние индексы в тензорных выражениях. Предложенный подход позволяет значительно уменьшить число перебираемых вариантов при поиске канонической формы выражения, что резко ускоряет процесс вычислений.
В работе исследуется задача символьного представления общего решения системы обыкновенных дифференциальных уравнений с постоянными коэффициентами, заданными в символьном виде, при условии, что некоторые символьные константы могут обращаться в ноль. Кроме того, символьное представление собственных векторов матрицы коэффициентов системы не единственно. В работе на примере исследуемой системы показано, что стандартные процедуры компьютерной алгебры отыскивают конкретные символьные представления собственных векторов, игнорируя существование других символьных представлений собственных векторов. В свою очередь предлагаемые системой компьютерной алгебры собственные векторы могут быть непригодны для построения численных алгоритмов на их основе, что продемонстрировано в работе. Авторами предложен алгоритм отыскания различных символьных представлений собственных векторов символьно заданных матриц. В работе рассматривается конкретная система дифференциальных уравнений, полученная при исследовании решений уравнений Максвелла, однако предложенный алгоритм исследования применим к произвольной системе с нормальной матрицей коэффициентов.
В данной работе представлен алгоритм вычисления решения задачи Коши для двумерного разностного уравнения с постоянными коэффициентами в точке по коэффициентам разностного уравнения и начальным данным задачи Коши методами компьютерной алгебры. В одномерном случае решение задачи Коши для разностного уравнения не представляет сложности, однако уже в двумерном случае число неизвестных растет на каждом шаге очень быстро. Для автоматизации процесса вычисления решения задачи Коши для двумерного разностного уравнения с постоянными коэффициентами в заданной точке в среде MATLAB был разработан алгоритм, где входными данными являются: матрица коэффициентов, полученная исходя из структуры двумерного полиномиального разностного уравнения; координаты точки, регламентирующей структуру матрицы начальных данных; координаты точки, регламентирующей размерность матрицы начальных данных; матрица начальных данных. Результатом работы алгоритма является решение задачи Коши для двумерного разностного уравнения, представляющее собой значение функции в искомой точке.
Издательство
- Издательство
- ИЗДАТЕЛЬСТВО НАУКА
- Регион
- Россия, Москва
- Почтовый адрес
- 121099 г. Москва, Шубинский пер., 6, стр. 1
- Юр. адрес
- 121099 г. Москва, Шубинский пер., 6, стр. 1
- ФИО
- Николай Николаевич Федосеенков (Директор)
- E-mail адрес
- info@naukapublishers.ru
- Контактный телефон
- +7 (495) 2767735