В последнее время на место основного языка научных и инженерных расчетов выдвигается язык Julia. У ряда пользователей возникает желание работать полностью внутри “экосистемы” Julia, подобно тому, как происходит работа в “экосистеме” Python. Для Julia существуют библиотеки, покрывающие большинство потребностей научно-инженерных расчетов. Перед авторами возникла необходимость использовать символьные вычисления для задач математического моделирования. Поскольку основным языком реализации численных алгоритмов мы выбрали язык Julia, то и задачи компьютерной алгебры хотелось бы решать на этом же языке. Авторы выделили основные функциональные области, задающие разные варианты применения систем компьютерной алгебры. В каждой из областей нами выделены наиболее характерные представители систем компьютерной алгебры на Julia. В результате авторы делают вывод, что в рамках “экосистемы” Julia возможно (и даже удобно) использовать системы компьютерной алгебры.
Идентификаторы и классификаторы
- eLIBRARY ID
- 44652418
Для задач математического моделирования мы ориентированы на использование языка Julia [1–4].
Язык Julia является проблемно-ориентированным языком для научных и инженерных расчетов. Язык имеет простой синтаксис. Для облегчения перехода научно-инженерных работников, Julia использует удачные языковые конструкции, заимствованные из языков MATLAB, R, Python, FORTRAN [5, 6]. Для поддержки интерактивной разработки и оптимизации времени исполнения Julia использует JIT-компиляцию. Внутри Julia является LISP-подобным языком, поэтому она органично использует функциональные конструкции. Julia поддерживает библиотеки, написанные на других языках программирования.
Одной из причин выбора Julia является последовательная реализация принципа одного языка. Дело в том, что в своем развитии языки программирования для научных и инженерных задач разошлись по двум направлениям: языки для создания высокопроизводительных программ (FORTRAN, C, C++) и языки для быстрого прототипирования и использования непрограммистами (Matlab, R, Python). Julia старается решить проблему двух языков1 . Однако задачи компьютерной алгебры выпадают из основного направления развития языка Julia.
Список литературы
- Bezanson J., Edelman A., Karpinski S., Shah V.B. Julia: A fresh approach to numerical computing // SIAM Review. 2017. 1. V. 59. № 1. P. 65-98. arXiv: 1411.1607.
- Joshi A., Lakhanpal R. Learning Julia. Packt Publishing, 2017. 316 p. ISBN: 978-1-78588-327-9
- Tate B.A., Daoud F., Dees I., Moffitt J. Seven More Languages in Seven Weeks. 2015. 318 p. ISBN: 978-1-941222-15-7
- Bezanson J., Karpinski S., Shah V.B., Edelman A. Julia: A Fast Dynamic Language for Technical Computing. 2012. P. 1-27. arXiv: 1209.5145.
- Bezanson J., Chen J., Chung B. et al. Julia: dynamism and performance reconciled by design // Proceedings of the ACM on Programming Languages. 2018. 10. V. 2. № OOPSLA. P. 1-23. URL: https://doir.org.://dl.acm.org/doi/10.1145/3276490. DOI: 10.1145/3276490https
- A Comparison of Programming Languages in Economics Research; Executor: S. Boraan Aruoba, Jesús Fernández-Villaverde. Cambridge, MA: 2014. 6 p. URL: http://www.nber.org/papers/w20263.pdf.
- Julia interface to SymPy via PyCall. URL: https://github.com/JuliaPy/SymPy.jl.
- Symata.jl. Symbolic mathematics language. URL: https://github.com/jlapeyre/Symata.jl.
- Wolfram S. An Elementary Introduction to the Wolfram Language. 2015. 313 p. 1-1944183-01-1. URL: http://www.wolfram.com/language/elementary-inroduction/. ISBN: 978
-
ModelingToolkit.jl. URL: https://github.com/SciML/ModelingToolkit.jl.
-
Lämmel R. Software Languages. Syntax, Semantics, and Metaprogramming. Cham: Springer International Publishing, 2018. XXX, 424 p. URL: http://link.springer.com/. DOI: 10.1007/978-3-319-90800-7 ISBN: 978-3-319-90798-7 EDN: NQITTL
-
Lotka A.J. Elements of Physical Biology. Baltimore: Williams and Wilking Company, 1925. 435 p. URL: https://archive.org/details/elementsofphysic017171mbp.
-
Kulyabov D.S., Korolkova A.V., Sevastianov L.A. Two Formalism of Stochastication of One-Step Models // Physics of Atomic Nuclei. 2018. V. 81. № 6. P. 916-922. arXiv: 1908.04294. EDN: DACCZK
-
Rackauckas C., Nie Q. DifferentialEquations.jl - A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia // Journal of Open Research Software. 2017. V. 5.
Выпуск
Другие статьи выпуска
Предлагается пакет символьного построения экспоненциально-логарифмических решений таких линейных обыкновенных дифференциальных уравнений, которые могут иметь неполностью заданные (усеченные) коэффициенты – степенные ряды, для которых известны только начальные члены. Входящие в решения ряды также представляются конечным числом начальных членов. Для каждого такого ряда вычисляется максимально возможное число начальных членов, полностью определенных известными начальными фрагментами коэффициентов уравнения. При этом степень усечения каждого из этих рядов не может превосходить заданной пользователем величины. Последнее обеспечивает окончание вычисления и тогда, когда по известным фрагментам коэффициентов уравнения может быть определено любое число членов рядов, входящих в решения.
На основе рекуррентных формул Ньютона приведен алгоритм построения результанта двух целых функций, что является одним из методов исключения неизвестных для систем неалгебраических уравнений. Алгоритм реализован в системе компьютерной алгебры Maple. Приведены примеры, демонстрирующие работу данного алгоритма.
Рассматривается поведение квантовой запутанности в процессе унитарной эволюции в конструктивных моделях многокомпонентных квантовых систем. Описываются группы симметрий квантовых систем, допускающих возникновение геометрических структур, ассоциированных с квантовой запутанностью. Алгоритмы моделирования динамики квантовой запутанности основаны на методах компьютерной алгебры и вычислительной теории групп. Приводятся примеры конкретных вычислений.
В статье предложены два наиболее простых метода определения положений равновесия спутника, движущегося в центральном ньютоновом силовом поле по круговой орбите под действием гравитационного момента. В первом методе применялись подходы линейной алгебры, во втором алгоритмы компьютерной алгебры. Положения равновесия спутника в орбитальной системе координат при заданных значениях главных центральных моментов инерции определяются корнями системы нелинейных алгебраических уравнений. Для определения равновесных решений проводилась декомпозиция системы алгебраических уравнений с применением методов линейной алгебры и алгоритмов построения базисов Гребнера. Положения равновесия спутника определялись путем исследования числа действительных корней алгебраических уравнений из полученных базисов Гребнера. С использованием предложенного подхода показано, что спутник с неравными главными центральными моментами инерции имеет на круговой орбите 24 положения равновесия.
Факторизация полиномов – классическая алгоритмическая проблема алгебры, имеюшая широкий спектр приложений. Особый интерес представляет факторизация над конечными полями, среди которых поле порядка два является, вероятно, наиболее важным в связи с представлением булевых функций полиномами Жегалкина. В частности, факторизация булевых полиномов соответствует конъюнктивной декомпозиции булевых функций, заданных в алгебраической нормальной форме. Кроме того, факторизация дает решение проблемы декомпозиции функций, заданных в СДНФ и позитивных ДНФ, а также декартовой декомпозиции реляционых данных. Эти приложения демонстрируют важность разработки быстрых алгоритмов факторизации. В статье мы рассматриваем некоторые недавно предложенные алгоритмы факторизации полиномиальной сложности и описываем параллельную MIMD-реализацию, которая использует как параллелизм уровня задачи, так и параллелизм уровня данных. Мы представляем эксперименты, выполненные на бенчмарках логического синтеза и на синтетических (случайных) полиномах, которые показывают значительное ускорение факторизации. В заключение представлены результаты тестирования параллельной реализации алгоритма на массивнопараллельной многоядерной архитектуре (Redefine).
Для систем обыкновенных дифференциальных уравнений (ОДУ) с невырожденной линейной частью в общем и гамильтоновом случаях ставится задача отыскания инвариантных координатных подпространств в координатах ее нормальной формы, вычисленной вблизи положения равновесия. Приведены условия существования таких инвариантных подпространств в терминах резонансных соотношений между собственными числами линейной части системы. Дан алгоритм поиска резонансных соотношений между собственными числами без их явного вычисления, который существенно использует методы компьютерной алгебры и q-аналог субрезультантов многочлена. Обсуждается его реализация в трех распространенных системах компьютерной алгебры – Mathematica, Maple и SymPy. Приведены содержательные модельные примеры.
Издательство
- Издательство
- ИЗДАТЕЛЬСТВО НАУКА
- Регион
- Россия, Москва
- Почтовый адрес
- 121099 г. Москва, Шубинский пер., 6, стр. 1
- Юр. адрес
- 121099 г. Москва, Шубинский пер., 6, стр. 1
- ФИО
- Николай Николаевич Федосеенков (Директор)
- E-mail адрес
- info@naukapublishers.ru
- Контактный телефон
- +7 (495) 2767735