Maple (программное обеспечение) - Maple (software)
Разработчики) | Клен Ватерлоо (Maplesoft) |
---|---|
Первый выпуск | 1982 г. |
Стабильный выпуск | 2020.1 (10 июня 2020 г . [±]
) |
Написано в | C , Java , Клен |
Платформа | Windows (7, 8 и 10), macOS , Linux |
Доступно в | Английский , японский и ограниченная поддержка на дополнительных языках |
Тип | Система компьютерной алгебры , Числовые вычисления |
Лицензия | Проприетарное коммерческое программное обеспечение |
Веб-сайт | www |
Maple - это символьная и числовая вычислительная среда, а также многопарадигмальный язык программирования . Он охватывает несколько областей технических вычислений, таких как символьная математика, численный анализ, обработка данных, визуализация и другие. Набор инструментов MapleSim добавляет функциональность для многодоменного физического моделирования и генерации кода.
Возможности Maple для символьных вычислений включают в себя возможности системы компьютерной алгебры общего назначения . Например, он может манипулировать математическими выражениями и находить символические решения определенных проблем, например, возникающих из обыкновенных дифференциальных уравнений и уравнений в частных производных .
Maple коммерчески разрабатывается канадской компанией-разработчиком программного обеспечения Maplesoft . Название «Maple» отсылает к канадскому наследию этого программного обеспечения .
Обзор
Основная функциональность
Пользователи могут вводить математику в традиционных математических обозначениях . Также можно создавать собственные пользовательские интерфейсы. Имеется поддержка числовых вычислений с произвольной точностью, а также символьных вычислений и визуализации. Примеры символьных вычислений приведены ниже.
Maple включает динамически типизированный язык программирования императивного стиля (похожий на Паскаль ), который допускает переменные лексической области видимости . Есть также интерфейсы к другим языкам ( C , C # , Fortran , Java , MATLAB и Visual Basic ), а также к Microsoft Excel .
Maple поддерживает MathML 2.0, формат W3C для представления и интерпретации математических выражений, включая их отображение на веб-страницах. Также имеется функция преобразования выражений из традиционных математических обозначений в разметку, подходящую для системы набора текста LaTeX .
Архитектура
Maple основан на небольшом ядре , написанном на C , которое предоставляет язык Maple. Большинство функций обеспечивается библиотеками, которые поступают из различных источников. Большинство библиотек написано на языке Maple; у них есть доступный для просмотра исходный код. Многие численные вычисления выполняются библиотеками NAG Numerical Libraries , ATLAS или GMP .
Для различных функций Maple требуются числовые данные в разных форматах. Символьные выражения хранятся в памяти как направленные ациклические графы . Стандартный интерфейс и интерфейс калькулятора написаны на Java .
История
Первая концепция Maple возникла на встрече в конце 1980 года в Университете Ватерлоо . Исследователи из университета хотели приобрести компьютер, достаточно мощный для работы основанной на Лиспе системы компьютерной алгебры Macsyma . Вместо этого они решили разработать свою собственную систему компьютерной алгебры под названием Maple, которая будет работать на более дешевых компьютерах. Стремясь к переносимости, они начали писать Maple на языках программирования из семейства BCPL (первоначально с использованием подмножества B и C , а затем только C). Первая ограниченная версия появилась через три недели, а более полные версии вошли в массовое использование, начиная с 1982 года. К концу 1983 года более 50 университетов установили на своих компьютерах копии Maple.
В 1984 году исследовательская группа договорилась с Watcom Products Inc о лицензировании и распространении первой коммерчески доступной версии Maple 3.3. В 1988 году была основана компания Waterloo Maple Inc. (Maplesoft). Первоначальной целью компании было управление распространением программного обеспечения, но со временем у нее появился собственный отдел исследований и разработок, где большая часть разработки Maple происходит сегодня (остальная часть выполняется в различных университетских лабораториях).
В 1989 году был разработан первый графический пользовательский интерфейс для Maple, который был включен в версию 4.3 для Macintosh . Версии нового интерфейса для X11 и Windows последовали в 1990 г. с Maple V. В 1992 г. в Maple V Release 2 был представлен «рабочий лист» Maple, который сочетал в себе текст, графику, ввод и набор вывода. В 1994 году был опубликован специальный выпуск информационного бюллетеня разработчиков Maple под названием MapleTech .
В 1999 году с выпуском Maple 6 в Maple были включены некоторые числовые библиотеки NAG . В 2003 году в Maple 9 был представлен текущий «стандартный» интерфейс. Этот интерфейс в основном написан на Java (хотя такие части, как правила набора математических формул, написаны на языке Maple). Интерфейс Java критиковали за медлительность; улучшения были внесены в более поздние версии, хотя документация Maple 11 рекомендует предыдущий («классический») интерфейс для пользователей с менее чем 500 МБ физической памяти.
Между 1995 и 2005 годами Maple уступила значительную долю рынка своим конкурентам из-за более слабого пользовательского интерфейса. В Maple 10 в 2005 году Maple представила новый интерфейс «режима документа», который с тех пор получил дальнейшее развитие в нескольких выпусках.
В сентябре 2009 года компании Maple и Maplesoft были приобретены японским продавцом программного обеспечения Cybernet Systems .
История версий
- Maple 1.0: январь 1982 г.
- Maple 1.1: январь 1982 г.
- Maple 2.0: май 1982 г.
- Maple 2.1: июнь 1982 г.
- Maple 2.15: август 1982 г.
- Maple 2.2: декабрь 1982 г.
- Maple 3.0: май 1983 г.
- Maple 3.1: октябрь 1983 г.
- Maple 3.2: апрель 1984 г.
- Maple 3.3: март 1985 г. (первая общедоступная версия)
- Maple 4.0: апрель 1986 г.
- Maple 4.1: май 1987 г.
- Maple 4.2: декабрь 1987 г.
- Maple 4.3: март 1989 г.
- Maple V: август 1990 г.
- Maple V R2: ноябрь 1992 г.
- Maple V R3: 15 марта 1994 г.
- Maple V R4: январь 1996 г.
- Maple V R5: 1 ноября 1997 г.
- Maple 6: 6 декабря 1999 г.
- Maple 7: 1 июля 2001 г.
- Maple 8:16 апреля 2002 г.
- Maple 9: 30 июня 2003 г.
- Maple 9.5: 15 апреля 2004 г.
- Maple 10:10 мая 2005 г.
- Maple 11:21 февраля 2007 г.
- Maple 11.01: июль 2007 г.
- Maple 11.02: ноябрь 2007 г.
- Maple 12: май 2008 г.
- Maple 12.01: октябрь 2008 г.
- Maple 12.02: декабрь 2008 г.
- Maple 13:28 апреля 2009 г.
- Maple 13.01: июль 2009 г.
- Maple 13.02: октябрь 2009 г.
- Maple 14:29 апреля 2010 г.
- Maple 14.01: 28 октября 2010 г.
- Maple 15:13 апреля 2011 г.
- Maple 15.01: 21 июня 2011 г.
- Maple 16:28 марта 2012 г.
- Maple 16.01: 16 мая 2012 г.
- Maple 17:13 марта 2013 г.
- Maple 17.01: июль 2013 г.
- Maple 18: 5 марта 2014 г.
- Maple 18.01: май 2014 г.
- Maple 18.01a: июль 2014 г.
- Maple 18.02: ноябрь 2014 г.
- Maple 2015.0: 4 марта 2015 г.
- Maple 2015.1: ноябрь 2015 г.
- Maple 2016.0: 2 марта 2016 г.
- Maple 2016.1: 20 апреля 2016 г.
- Maple 2016.1a: 27 апреля 2016 г.
- Maple 2017.0: 25 мая 2017 г.
- Maple 2017.1: 28 июня 2017 г.
- Maple 2017.2: 2 августа 2017 г.
- Maple 2017.3: 3 октября 2017 г.
- Maple 2018.0: 21 марта 2018 г.
- Maple 2019.0: 14 марта 2019 г.
- Maple 2020.0: 12 марта 2020 г.
Функции
Особенности Maple включают:
- Поддержка символьных и числовых вычислений с произвольной точностью
- Библиотеки элементарных и специальных математических функций
- Комплексные числа и интервальная арифметика
- Арифметика, наибольшие общие делители и множители для многомерных полиномов над полем рациональных чисел, конечных полей , полей алгебраических чисел и алгебраических полей функции
- Пределы, ряды и асимптотические разложения
- Основа Грёбнера
- Дифференциальная алгебра
- Манипуляции Матричные инструменты , включая поддержку разреженных массивов
- Инструменты построения графиков и анимации математических функций
- Решатели для систем уравнений , диофантовых уравнений , ОДЫ , ФДЭ , ДАЕСА , DDEs и рекуррентных соотношений
- Числовые и символьные инструменты для дискретного и непрерывного исчисления, включая определенное и неопределенное интегрирование , определенное и неопределенное суммирование , автоматическое дифференцирование и непрерывные и дискретные интегральные преобразования
- Ограниченная и неограниченная локальная и глобальная оптимизация
- Статистика, включая подгонку модели, проверку гипотез и распределения вероятностей.
- Инструменты для обработки, визуализации и анализа данных
- Инструменты для вероятностных и комбинаторных задач
- Поддержка временных рядов и данных на основе единиц
- Подключение к онлайн-сбору финансово-экономических данных
- Инструменты для финансовых расчетов, включая облигации, аннуитеты, деривативы, опционы и т. Д.
- Расчеты и моделирование случайных процессов
- Инструменты для интеллектуального анализа текста, включая регулярные выражения
- Инструменты для обработки сигналов и линейных и нелинейных систем управления
- Инструменты дискретной математики , включая теорию чисел
- Инструменты для визуализации и анализа ориентированных и неориентированных графиков
- Теория групп, включая перестановки и конечно определенные группы
- Символьные тензорные функции
- Фильтры импорта и экспорта для форматов данных, изображений, звука, САПР и документов.
- Технический текстовый редактор, включая редактирование формул
- Язык программирования, поддерживающий процедурные , функциональные и объектно-ориентированные конструкции.
- Инструменты для добавления пользовательских интерфейсов в вычисления и приложения
- Инструменты для подключения к SQL , Java , .NET , C ++ , Fortran и http
- Инструменты для генерации кода для C , C # , Fortran , Java , JavaScript , Julia , Matlab , Perl , Python , R и Visual Basic
- Инструменты для параллельного программирования
Примеры кода Maple
Следующий код, который вычисляет факториал неотрицательного целого числа, является примером конструкции императивного программирования в Maple:
myfac := proc(n::nonnegint)
local out, i;
out := 1;
for i from 2 to n do
out := out * i
end do;
out
end proc;
Простые функции также могут быть определены с помощью обозначения стрелки "сопоставления":
myfac := n -> product(i, i = 1..n);
Интеграция
Находить
- .
int(cos(x/a), x);
Выход:
Детерминант
Вычислить определитель матрицы.
M := Matrix([[1,2,3], [a,b,c], [x,y,z]]); # example Matrix
LinearAlgebra:-Determinant(M);
Расширение серии
series(tanh(x), x = 0, 15)
Решайте уравнения численно
Следующий код численно вычисляет корни многочлена высокого порядка:
f := x^53-88*x^5-3*x-5 = 0
fsolve(f)
-1.097486315, -.5226535640, 1.099074017
Эта же команда может также решать системы уравнений:
f := (cos(x+y))^2 + exp(x)*y+cot(x-y)+cosh(z+x) = 0:
g := x^5 - 8*y = 2:
h := x+3*y-77*z=55;
fsolve( {f,g,h} );
{x = -1.543352313, y = -1.344549481, z = -.7867142955}
Построение функции одной переменной
Участок с диапазоном от -10 до 10:
plot(x*sin(x), x = -10..10);
Построение функции двух переменных
Участок с и в пределах от -1 до 1:
plot3d(x^2+y^2, x = -1..1, y = -1..1);
Анимация функций
- Анимация функции двух переменных
plots:-animate(subs(k = 0.5, f), x=-30..30, t=-10..10, numpoints=200, frames=50, color=red, thickness=3);
- Анимация функций трех переменных
plots:-animate3d(cos(t*x)*sin(3*t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2);
- Пролетная анимация трехмерных графиков.
M := Matrix([[400,400,200], [100,100,-400], [1,1,1]], datatype=float[8]):
plot3d(1, x=0..2*Pi, y=0..Pi, axes=none, coords=spherical, viewpoint=[path=M]);
Преобразование Лапласа
f := (1+A*t+B*t^2)*exp(c*t);
inttrans:-laplace(f, t, s);
- обратное преобразование Лапласа
inttrans:-invlaplace(1/(s-a), s, x);
преобразование Фурье
inttrans:-fourier(sin(x), x, w)
Интегральные уравнения
Найти функции , удовлетворяющие интегральному уравнению
- .
eqn:= f(x)-3*Int((x*y+x^2*y^2)*f(y), y=-1..1) = h(x):
intsolve(eqn,f(x));
Использование движка Maple
Движок Maple используется в нескольких других продуктах Maplesoft :
- Moebius, пакет онлайн-тестирования DigitalEd, использует Maple для алгоритмической генерации вопросов и оценки ответов учащихся.
- MapleNet позволяет пользователям создавать страницы JSP и апплеты Java . MapleNet 12 и выше также позволяет пользователям загружать и работать с рабочими таблицами Maple, содержащими интерактивные компоненты.
- MapleSim , инструмент инженерного моделирования.
- Пакет Maple Quantum Chemistry Package от RDMChem вычисляет и визуализирует электронные энергии и свойства молекул.
Ниже перечислены коммерческие продукты сторонних производителей, которые больше не используют движок Maple:
- Версии Mathcad, выпущенные между 1994 и 2006 годами, включали основанный на Maple движок алгебры (MKM, также известный как Mathsoft Kernel Maple), хотя в последующих версиях используется MuPAD .
- Symbolic Math Toolbox в MATLAB содержал часть движка Maple 10, но теперь использует MuPAD (начиная с версии MATLAB R2007b +).
- Старые версии математического редактора Scientific Workplace включали Maple в качестве вычислительного механизма, хотя текущие версии включают MuPAD .
Смотрите также
- Сравнение систем компьютерной алгебры
- Сравнение программ численного анализа
- Сравнение языков программирования
- Сравнение статистических пакетов
- Список систем компьютерной алгебры
- Список программ компьютерного моделирования
- Список программного обеспечения для построения графиков
- Список программного обеспечения для численного анализа
- Математическое программное обеспечение
- SageMath (программа алгебры с открытым исходным кодом)
использованная литература
внешние ссылки
- Maplesoft, подразделение Waterloo Maple, Inc. - официальный сайт
- Онлайн-справка по Maple - онлайн-документация
- MaplePrimes - сайт сообщества пользователей Maple
- MapleCloud - онлайн-просмотрщик приложений Maple