Mathematica | |||
---|---|---|---|
| |||
| |||
Тип | Система компьютерной алгебры | ||
Разработчик | Wolfram Research | ||
Написана на | Си, C++[2], Java[2] и Wolfram | ||
Интерфейс | Qt | ||
Операционные системы | Windows, macOS, Linux | ||
Первый выпуск | 23 июня 1988 | ||
Последняя версия | |||
| |||
Состояние | В активной разработке | ||
Лицензия | Проприетарное программное обеспечение, коммерческая | ||
Сайт | wolfram.com/mathematica | ||
Медиафайлы на Викискладе |
Mathematica — проприетарная система компьютерной алгебры, широко используемая для научных, инженерных, математических расчётов. Разработана в 1988 году Стивеном Вольфрамом, дальнейшим развитием системы занята основанная им совместно с Теодором Греем компания Wolfram Research.
Оснащена как аналитическими возможностями, так и обеспечивает численные расчёты; результаты выводятся как в алфавитно-цифровом виде, так и в форме графиков. Вычислительные и аналитические функции обеспечиваются бэкендом, к которому могут подключаться различные пользовательские интерфейсы. Традиционный интерфейс, поставляющийся с системой — вычислительная записная книжка, но имеется возможность работать с бэкендом из интегрированных сред разработки, таких как Eclipse и IntelliJ IDEA; с 2002 года существует свободный инструмент JMath, обеспечивающий интерфейс командной строки к Mathematica посредством интерфейса MathLink[3].
Возможности
Основные аналитические возможности:
- решение систем полиномиальных и тригонометрических уравнений и неравенств, а также трансцендентных уравнений, сводящихся к ним;
- решение рекуррентных уравнений;
- упрощение выражений;
- нахождение пределов;
- интегрирование и дифференцирование функций;
- нахождение конечных и бесконечных сумм и произведений;
- решение дифференциальных уравнений и уравнений в частных производных;
- преобразования Фурье и Лапласа, а также Z-преобразование;
- преобразование функции в ряд Тейлора, операции с рядами Тейлора: сложение, умножение, композиция, получение обратной функции;
- вейвлет-анализ.
Система также осуществляет численные расчёты: определяет значения функций (в том числе специальных) с произвольной точностью, осуществляет полиномиальную интерполяцию функции от произвольного числа аргументов по набору известных значений, рассчитывает вероятности.
Теоретико-числовые возможности — определение простого числа по его порядковому номеру, определение количества простых чисел, не превосходящих данное; дискретное преобразование Фурье; разложение числа на простые множители, нахождение НОД и НОК.
Также в систему заложены линейно-алгебраические возможности — работа с матрицами (сложение, умножение, нахождение обратной матрицы, умножение на вектор, вычисление экспоненты, взятие определителя), поиск собственных значений и собственных векторов.
Система результаты представляет как в алфавитно-цифровой форме, так и в виде графиков. В частности, реализовано построение графиков функций, в том числе параметрических кривых и поверхностей; построение геометрических фигур (ломаных, кругов, прямоугольников и других); построение и манипулирование графами. Кроме того, реализовано воспроизведение звука, график которого задаётся аналитической функцией или набором точек.
Система обеспечивает автоматическую генерацию программного кода на языке Си и его компоновку; при этом сгенерированные программы могут быть использованы автономно. Для создания, обработки и оптимизации си-кода поддерживается использование SymbolicC. Программы могут использовать внешние динамические библиотеки, в том числе поддерживается интеграция с CUDA и OpenCL.
Язык программирования Wolfram
Wolfram — интерпретируемый язык функционального программирования, составляющий лингвистическую основу системы, позволяющий расширять её возможности; более того, система Mathematica в значительной степени написана на языке Wolfram, хотя некоторые функции, особенно относящиеся к линейной алгебре, в целях оптимизации реализованы на Си.
Язык поддерживает и процедурное программирование с применением стандартных операторов управления выполнением программы (циклы и условные переходы), и объектно-ориентированный подход, допускает отложенные вычисления. Также в системе Mathematica можно задавать правила работы с теми или иными выражениями.
Пример кода — список простых чисел выбирается блоками с помощью уровней простых чисел:
In[1] := tm = 2; p = {}; k = 1; Do[
Do[If[t > 0,
For[i = 1, (s = p[[i]]) <= t + 1, i++,
If[GCD[k - s, 2 s - 1] != 1, Goto[l]]]]; p = AppendTo[p, k];
Label[l]; k++, {4 (t + 1)}], {t, 0, tm}]; p *= 2; p--; p[[1]]++;
p
Out[1] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47}
Расширения
Для системы существуют многочисленные расширения, решающие специализированные классы задач. Например, расширение AceFEM предназначено для решения физических и математических задач методом конечных элементов, расширение Analog Insydes — для моделирования, анализа и создания электрических схем, Derivatives Expert — для анализа ценных бумаг и деривативов, Fuzzy Logic — для создания, модификации и визуализации нечётких множеств. Для решения геометрических задач существуют расширения Geometrica (геометрическая энциклопедия с возможностями точного построения геометрических объектов и проверки утверждений) и Geometry Expressions (символьная геометрия). Также как расширения реализованы кодогенераторы для C++ и Fortran 90 и интеграционные пакеты для взаимодействия с Excel и LabView.
Примечания
- ↑ ContentsYet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & MathematicaView All Release Announcements »Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica — 2024.
- ↑ 1 2 The Software Engineering of Mathematica — 2012.
- ↑ JMath: A GNU Readline based frontend for Mathematica (англ.) (15 февраля 2002). Дата обращения: 5 мая 2022. Архивировано 7 апреля 2022 года.
Литература
- Аладьев В. З., Шишаков М. Л. Введение в среду пакета Mathematica 2.2. — М.: Информационно-издательский дом «Филинъ», 1997. — 368 с.
- Дьяконов В. П. Mathematica 5/6/7. Полное руководство. — М.: «ДМК Пресс», 2009. — 624 с. — ISBN 978-5-94074-553-2.
- Чарльз Генри Эдвардс, Дэвид Э. Пенни. Дифференциальные уравнения и проблема собственных значений: моделирование и вычисление с помощью Mathematica, Maple и MATLAB = Differential Equations and Boundary Value Problems: Computing and Modeling. — 3-е изд. — М.: «Вильямс», 2007. — ISBN 978-5-8459-1166-7.
- Шмидский Яков Константинович. Mathematica 5. Самоучитель. Система символьных, графических и численных вычислений. — М.: «Диалектика», 2004. — 592 с. — ISBN 5-8459-0678-4.
- Глушко В. П., Глушко А. В. Курс уравнений математической физики с использованием пакета Mathematica. — СПб.: «Лань», 2010. — 320 с. — ISBN 978-5-8114-0983-9.
- Аладьев В. З., Гринь Д. С. Расширение функциональной среды системы Mathematica. — Херсон: Олди–Плюс, 2012. — 552 с. — ISBN 978-966-2393-72-9.
- Аладьев В. З., Ваганов В. А., Гринь Д. С. Избранные системные задачи в программной среде Mathematica. — Херсон: Олди–Плюс, 2013. — 556 с. — ISBN 978-966-289-012-9.
Ссылки
Обычно почти сразу, изредка в течении часа.