Клен (программное обеспечение)
Разработчик(и) | Клен Ватерлоо (Maplesoft) |
---|---|
Первоначальный выпуск | 1982 |
Стабильная версия | ) |
Написано в | С , Ява , Клен |
Платформа | Windows (7, 8 и 10), macOS , Linux |
Доступно в | Английский , японский и ограниченная поддержка на дополнительных языках. [2] |
Тип | Система компьютерной алгебры , Числовые вычисления |
Лицензия | Собственное коммерческое программное обеспечение |
Веб-сайт | www |
Maple — это среда символьных и числовых вычислений, а также многопарадигмальный язык программирования . Он охватывает несколько областей технических вычислений, таких как символьная математика, численный анализ, обработка данных, визуализация и другие. Набор инструментов MapleSim добавляет функциональные возможности для многодоменного физического моделирования и генерации кода.
Возможности Maple для символьных вычислений аналогичны возможностям системы компьютерной алгебры общего назначения . Например, он может манипулировать математическими выражениями и находить символические решения для определенные проблемы, например, возникающие из обыкновенных уравнений и уравнений в частных производных .
Maple коммерчески разработан канадской компанией-разработчиком программного обеспечения Maplesoft . Название Maple является отсылкой к канадскому наследию программного обеспечения .
Обзор
[ редактировать ]Основная функциональность
[ редактировать ]Пользователи могут вводить математику в традиционных математических обозначениях . Также можно создавать собственные пользовательские интерфейсы. Имеется поддержка числовых вычислений с произвольной точностью, а также символьных вычислений и визуализации. Ниже приведены примеры символьных вычислений.
Maple включает в себя динамически типизированный императивного стиля язык программирования (напоминающий Pascal ), который допускает переменные лексической области видимости . [3] Также имеются интерфейсы к другим языкам ( C , C# , Fortran , Java , MATLAB и Visual Basic ), а также к Microsoft Excel .
Maple поддерживает MathML 2.0 — формат W3C для представления и интерпретации математических выражений, включая их отображение на веб-страницах. [4] Также имеется функционал по преобразованию выражений из традиционной математической записи в разметку, подходящую для системы набора текста LaTeX .
Архитектура
[ редактировать ]Maple основан на небольшом ядре , написанном на C , которое обеспечивает язык Maple. Большая часть функциональности обеспечивается библиотеками, полученными из различных источников. Большинство библиотек написаны на языке Maple; у них есть видимый исходный код. Многие численные вычисления выполняются числовыми библиотеками NAG , библиотеками ATLAS или библиотеками GMP .
Различные функции Maple требуют числовых данных в разных форматах. Символьные выражения хранятся в памяти в виде направленных ациклических графов . Стандартный интерфейс и интерфейс калькулятора написаны на Java .
История
[ редактировать ]Первая концепция Maple возникла на встрече в конце 1980 года в Университете Ватерлоо . [5] Исследователи из университета хотели приобрести компьютер, достаточно мощный для запуска на основе Lisp системы компьютерной алгебры Macsyma . Вместо этого они решили разработать собственную систему компьютерной алгебры под названием Maple, которая могла бы работать на более дешевых компьютерах. Стремясь к переносимости, Maple начали писать на языках программирования семейства BCPL (первоначально используя подмножество B и C , а позже только C). [5] Первая ограниченная версия появилась через три недели, а более полные версии стали широко использоваться начиная с 1982 года. [6] К концу 1983 года копии Maple были установлены на компьютерах более чем 50 университетов. [ нужна ссылка ]
В 1984 году исследовательская группа договорилась с Watcom Products Inc о лицензировании и распространении первой коммерчески доступной версии Maple 3.3. [6] В 1988 году была основана компания Waterloo Maple Inc. (Maplesoft). Первоначальной целью компании было управление распространением программного обеспечения, но со временем у нее появился собственный отдел исследований и разработок, где сегодня происходит большая часть разработок Maple (остальная часть делается в различных университетских лабораториях). [7] ).
В 1989 году был разработан первый графический интерфейс пользователя Maple, включенный в версию 4.3 для Macintosh . Версии нового интерфейса для X11 и Windows последовали в 1990 году с Maple V. В 1992 году в Maple V Release 2 был представлен «рабочий лист» Maple, который объединял текст, графику, а также ввод и наборный вывод. [8] специальный выпуск информационного бюллетеня, созданного разработчиками Maple, под названием MapleTech . В 1994 году был опубликован [9]
В 1999 году с выпуском Maple 6 в состав Maple вошли некоторые числовые библиотеки NAG . [10] В 2003 году текущий «стандартный» интерфейс был представлен в Maple 9. Этот интерфейс в основном написан на Java (хотя некоторые его части, такие как правила набора математических формул, написаны на языке Maple). Интерфейс Java критиковали за медленную работу; [11] улучшения были сделаны в более поздних версиях, хотя документация Maple 11 [12] рекомендует предыдущий («классический») интерфейс для пользователей с объемом физической памяти менее 500 МБ.
В период с 1995 по 2005 год Maple уступила значительную долю рынка конкурентам из-за более слабого пользовательского интерфейса. [13] В Maple 10, вышедшем в 2005 году, Maple представила новый интерфейс «режима документа», который с тех пор получил дальнейшее развитие в нескольких выпусках.
В сентябре 2009 года Maple и Maplesoft были приобретены японским ритейлером программного обеспечения Cybernet Systems . [14]
История версий
[ редактировать ]- Клен 1.0: январь 1982 г.
- Клен 1.1: январь 1982 г.
- Клен 2.0: май 1982 г.
- Клен 2.1: июнь 1982 г.
- Клен 2.15: август 1982 г.
- Клен 2.2: декабрь 1982 г.
- Клен 3.0: май 1983 г.
- Клен 3.1: октябрь 1983 г.
- Клен 3.2: апрель 1984 г.
- Maple 3.3: март 1985 г. (первая общедоступная версия)
- Клен 4.0: апрель 1986 г.
- Клен 4.1: май 1987 г.
- Клен 4.2: декабрь 1987 г.
- Клен 4.3: март 1989 г.
- Maple V: August, 1990
- Maple V R2: November 1992
- Maple V R3: 15 марта 1994 г.
- Maple V R4: январь 1996 г.
- Maple V R5: November 1, 1997
- Клен 6: 6 декабря 1999 г.
- Клен 7: 1 июля 2001 г.
- Клен 8: 16 апреля 2002 г.
- Клен 9: 30 июня 2003 г.
- Клен 9.5: 15 апреля 2004 г.
- Клен 10: 10 мая 2005 г.
- Клен 11: 21 февраля 2007 г.
- Клен 11.01: июль 2007 г.
- Клен 11.02: ноябрь 2007 г.
- Клен 12: май 2008 г.
- Клен 12.01: октябрь 2008 г.
- Клен 12.02: декабрь 2008 г.
- Клен 13: 28 апреля 2009 г. [15]
- Клен 13.01: июль 2009 г.
- Клен 13.02: октябрь 2009 г.
- Клен 14: 29 апреля 2010 г. [16]
- Клен 14.01: 28 октября 2010 г.
- Клен 15: 13 апреля 2011 г. [17]
- Клен 15.01: 21 июня 2011 г.
- Клен 16: 28 марта 2012 г. [18]
- Клен 16.01: 16 мая 2012 г.
- Клен 17: 13 марта 2013 г. [19]
- Клен 17.01: июль 2013 г.
- Клен 18: 5 марта 2014 г. [20]
- Клен 18.01: май 2014 г.
- Клен 18.01а: июль 2014 г.
- Клен 18.02: ноябрь 2014 г.
- Maple 2015.0: 4 марта 2015 г. [21]
- Клен 2015.1: ноябрь 2015 г.
- Клен 2016.0: 2 марта 2016 г. [22]
- Клен 2016.1: 20 апреля 2016 г.
- Maple 2016.1a: 27 апреля 2016 г.
- Клен 2017.0: 25 мая 2017 г. [23]
- Клен 2017.1: 28 июня 2017 г.
- Клен 2017.2: 2 августа 2017 г.
- Maple 2017.3: 3 октября 2017 г.
- Клен 2018.0: 21 марта 2018 г. [24]
- Клен 2019.0: 14 марта 2019 г. [25]
- Клен 2020.0: 12 марта 2020 г. [26]
- Клен 2021.0: 10 марта 2021 г. [27]
- Клен 2022.0: 15 марта 2022 г. [28]
- Клен 2023.0: 9 марта 2023 г. [29]
Функции
[ редактировать ]К особенностям Maple относятся: [30]
- Поддержка символьных и числовых вычислений с произвольной точностью.
- элементарных и специальных математических функций Библиотеки
- Комплексные числа и интервальная арифметика
- Арифметика, наибольшие общие делители и факторизация многомерных многочленов над рациональными числами, конечными полями , полями алгебраических чисел и полями алгебраических функций.
- Пределы, ряды и асимптотические разложения
- База Грёбнер
- Дифференциальная алгебра
- Инструменты манипулирования матрицами , включая поддержку разреженных массивов
- математических функций Инструменты построения графиков и анимации
- Решатели систем уравнений , диофантовых уравнений , ОДУ , УЧП , ДАУ , ДДУ и рекуррентных соотношений
- Числовые и символические инструменты для дискретного и непрерывного исчисления , включая определенное и неопределенное интегрирование , определенное и неопределенное суммирование , автоматическое дифференцирование и непрерывные и дискретные интегральные преобразования.
- Ограниченная и неограниченная локальная и глобальная оптимизация.
- Статистика, включая подбор модели, проверку гипотез и распределения вероятностей.
- Инструменты для манипулирования, визуализации и анализа данных
- Инструменты для решения вероятностных и комбинаторных задач
- Поддержка временных рядов и данных на основе единиц измерения
- Подключение к онлайн-сбору финансово-экономических данных
- Инструменты для финансовых расчетов, включая облигации, аннуитеты, деривативы, опционы и т. д.
- Расчеты и моделирование случайных процессов
- Инструменты для анализа текста, включая регулярные выражения
- Средства обработки сигналов и систем линейного и нелинейного управления
- Инструменты дискретной математики, включая теорию чисел
- Инструменты для визуализации и анализа ориентированных и неориентированных графов
- Теория групп, включая перестановки и конечно представленные группы
- Символьные тензорные функции
- Импорт и экспорт фильтров для форматов данных, изображений, звука, САПР и документов.
- Техническая обработка текста, включая редактирование формул
- Язык программирования, поддерживающий процедурные , функциональные и объектно-ориентированные конструкции.
- Инструменты для добавления пользовательских интерфейсов в расчеты и приложения.
- Инструменты для подключения к 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 = -2.080507182, y = -5.122547821, z = -0.9408850733}
Построение графика функции одной переменной
[ редактировать ]Сюжет с от -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);
- Сквозная анимация трехмерных сюжетов. [31]
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 :
- MapleNet позволяет пользователям создавать страницы JSP и Java апплеты . MapleNet 12 и более поздние версии также позволяют пользователям загружать и работать с рабочими листами Maple, содержащими интерактивные компоненты.
- MapleSim — инструмент инженерного моделирования. [32]
- Пакет квантовой химии Maple от RDMChem вычисляет и визуализирует электронную энергию и свойства молекул. [33]
Ниже перечислены коммерческие продукты сторонних производителей, которые больше не используют движок Maple:
- Версии Mathcad , выпущенные между 1994 и 2006 годами, включали алгебраический движок на основе Maple (MKM, также известный как Mathsoft Kernel Maple), хотя последующие версии использовали MuPAD .
- Символьный Math Toolbox в MATLAB содержал часть движка Maple 10, но теперь использует MuPAD (начиная с выпуска MATLAB R2007b+). [34]
- Старые версии математического редактора Scientific Workplace включали Maple в качестве вычислительного механизма, хотя текущие версии включают MuPAD .
См. также
[ редактировать ]- Сравнение систем компьютерной алгебры
- Сравнение программного обеспечения для численного анализа
- Сравнение языков программирования
- Сравнение статистических пакетов
- Список систем компьютерной алгебры
- Список программного обеспечения для компьютерного моделирования
- Список графического программного обеспечения
- Список программного обеспечения для численного анализа
- Математическое программное обеспечение
- SageMath (программа алгебры с открытым исходным кодом)
Ссылки
[ редактировать ]- ^ «Медиа-релизы Maplesoft» . www.maplesoft.com . Проверено 12 мая 2024 г.
- ^ «Международная языковая поддержка в Maple» . Мэйплсофт . Проверено 2 июня 2016 г.
- ↑ Сила двух. Архивировано 6 июля 2010 г. в журнале Wayback Machine Bitwise Magazine.
- ^ «Добро пожаловать на домашнюю страницу Maplesoft MathML» . www.maplesoft.com .
- ^ Jump up to: Перейти обратно: а б МакКаллум, Малкольм А.Х. (2018). «Компьютерная алгебра в исследованиях гравитации» . Живые обзоры в теории относительности . 21 (1): 6. Бибкод : 2018LRR....21....6M . дои : 10.1007/s41114-018-0015-6 . ISSN 2367-3613 . ПМК 6105178 . ПМИД 30174551 .
- ^ Jump up to: Перейти обратно: а б «История клена» . 15 декабря 1998 г. Проверено 6 апреля 2020 г.
- ^ Две такие университетские лаборатории - это Группа символических вычислений в Университете Ватерлоо и Исследовательский центр компьютерной алгебры Онтарио в Университете Западного Онтарио.
- ^ Примечания к Maple V Release 2 Maplesoft
- ^ «Специальный выпуск MTN 1994» . web.mit.edu .
- ^ Maple 6.0. Архивировано 18 июня 2008 г. на Wayback Machine Macworld, февраль 2001 г.
- ^ Получение знаний с помощью чистой математики , Мир научных вычислений.
- ^ Руководство по установке Maple 11 Maplesoft
- ↑ Интервью с Гастоном Гонне, соавтором Maple. Архивировано 29 декабря 2007 г. в Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 марта 2005 г.
- ^ «Медиа-релизы Maplesoft» . www.maplesoft.com .
- ^ «Блог MaplePrimes — Maple 13 и MapleSim 2 теперь доступны» . Проверено 28 апреля 2009 г.
- ^ «Блог MaplePrimes — анонс Maple 14 и MapleSim 4» . Проверено 29 апреля 2010 г.
- ^ «Блог MaplePrimes — Представляем Maple 15» . Проверено 11 апреля 2011 г.
- ^ «Блог MaplePrimes — Maple 16 уже здесь» . Проверено 28 марта 2012 г.
- ^ «Блог MaplePrimes — Представляем Maple 17» . Проверено 13 марта 2013 г.
- ^ «Блог MaplePrimes — анонс Maple 18» . Проверено 5 марта 2014 г.
- ^ «Блог MaplePrimes — Maple 2015 теперь доступен!» . Проверено 4 марта 2015 г.
- ^ «Блог MaplePrimes — анонс Maple 2016» . Проверено 2 марта 2016 г.
- ^ «Блог MaplePrimes — анонс Maple 2017» . Проверено 25 мая 2017 г.
- ^ «Блог MaplePrimes — Maple 2018 уже здесь!» . Проверено 21 марта 2018 г.
- ^ «Блог MaplePrimes — анонс Maple 2019» . Проверено 14 марта 2019 г.
- ^ «Блог MaplePrimes — Maple 2020 запущен!» . Проверено 20 марта 2020 г.
- ^ «Блог MaplePrimes — Представляем Maple 2021» . Проверено 2 марта 2024 г.
- ^ «Блог MaplePrimes — Распаковка Maple 2022» . Проверено 2 марта 2024 г.
- ^ «Блог MaplePrimes — Maple 2023 уже здесь!» . Проверено 2 марта 2024 г.
- ^ «Что такое Maple: Особенности продукта — Математическое и инженерное программное обеспечение — Maplesoft» . www.maplesoft.com .
- ^ Использование новой функции пролета в Maple 13 Maplesoft
- ^ Махмуд, Хизир; Таун, Грэм Э. (июнь 2016 г.). «Обзор компьютерных инструментов для моделирования энергетических потребностей электромобилей и их влияния на распределительные сети». Прикладная энергетика . 172 : 337–359. doi : 10.1016/j.apenergy.2016.03.100 .
- ^ «Блог MaplePrimes — Представляем набор инструментов для квантовой химии Maple» . Проверено 6 мая 2019 г.
- ^ «Примечания к выпуску для Symbian Math Toolbox» . Матворкс . Проверено 10 июля 2014 г.
Внешние ссылки
[ редактировать ]- Maplesoft, подразделение Waterloo Maple, Inc. – официальный сайт
- Программное обеспечение C (язык программирования)
- Интерфейс ноутбука
- Программное обеспечение системы компьютерной алгебры для Linux
- Программное обеспечение системы компьютерной алгебры для macOS
- Программное обеспечение системы компьютерной алгебры для Windows
- Системы компьютерной алгебры
- Кроссплатформенное программное обеспечение
- Программное обеспечение для интеллектуального анализа данных и машинного обучения
- Программное обеспечение для визуализации данных
- Языки программирования, ориентированные на данные
- Программное обеспечение для эконометрики
- Функциональные языки
- Программное обеспечение для интерактивной геометрии
- Программное обеспечение IRIX
- Линейная алгебра
- Мэйплсофт
- Программное обеспечение для математической оптимизации
- Математическое программное обеспечение
- Программное обеспечение для численного анализа для Linux
- Программное обеспечение для численного анализа для macOS
- Программное обеспечение для численного анализа для Windows
- Языки числового программирования
- Числовое программное обеспечение
- Параллельные вычисления
- Программное обеспечение по физике
- Программное обеспечение для печати
- Продукты, представленные в 1982 году
- Проприетарное коммерческое программное обеспечение для Linux.
- Собственное кроссплатформенное программное обеспечение.
- Программное обеспечение для регрессии и подбора кривых
- Языки программирования моделирования
- Язык моделирования программного обеспечения
- Статистические языки программирования
- Программные системы для доказательства теорем
- Программное обеспечение временных рядов