Mathematica
система аналитических и других вычислений Из Википедии, свободной энциклопедии
Mathematica — проприетарная система компьютерной алгебры, широко используемая для научных, инженерных, математических расчётов. Разработана в 1988 году Стивеном Вольфрамом, дальнейшим развитием системы занята основанная им совместно с Теодором Греем компания Wolfram Research.
Mathematica | |||
---|---|---|---|
![]() | |||
![]() | |||
Тип | Система компьютерной алгебры | ||
Разработчик | Wolfram Research | ||
Написана на | Си, C++[1], Java[1] и Wolfram | ||
Интерфейс | Qt | ||
Операционные системы | Windows, macOS, Linux | ||
Первый выпуск | 23 июня 1988 | ||
Последняя версия | |||
| |||
Состояние | В активной разработке | ||
Лицензия | Проприетарное программное обеспечение, коммерческая | ||
Сайт | wolfram.com/mathematica | ||
Медиафайлы на Викискладе |
Оснащена как аналитическими возможностями, так и обеспечивает численные расчёты; результаты выводятся как в алфавитно-цифровом виде, так и в форме графиков. Вычислительные и аналитические функции обеспечиваются бэкендом, к которому могут подключаться различные пользовательские интерфейсы. Традиционный интерфейс, поставляющийся с системой — вычислительная записная книжка, но имеется возможность работать с бэкендом из интегрированных сред разработки, таких как 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.
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.