Maple - это символьная и числовая вычислительная среда, а также многопарадигмальный язык программирования . Он охватывает несколько областей технических вычислений, таких как символьная математика, численный анализ, обработка данных, визуализация и другие. Набор инструментов MapleSim добавляет функциональность для многодоменного физического моделирования и генерации кода.
Разработчики) | Клен Ватерлоо (Maplesoft) |
---|---|
Первый выпуск | 1982 г. |
Стабильный выпуск | ) |
Написано в | C , Java , Клен |
Платформа | Windows (7, 8 и 10), macOS , Linux |
Доступно в | Английский , японский и ограниченная поддержка дополнительных языков [2] |
Тип | Система компьютерной алгебры , Числовые вычисления |
Лицензия | Проприетарное коммерческое программное обеспечение |
Веб-сайт | www |
Возможности Maple для символьных вычислений включают в себя возможности системы компьютерной алгебры общего назначения . Например, он может манипулировать математическими выражениями и находить символические решения определенных проблем, например, возникающих из обыкновенных дифференциальных уравнений и уравнений в частных производных .
Maple коммерчески разрабатывается канадской компанией-разработчиком программного обеспечения Maplesoft . Название «Maple» отсылает к канадскому наследию этого программного обеспечения .
Обзор
Основная функциональность
Пользователи могут вводить математику в традиционных математических обозначениях . Также можно создавать собственные пользовательские интерфейсы. Имеется поддержка числовых вычислений с произвольной точностью, а также символьных вычислений и визуализации. Примеры символьных вычислений приведены ниже.
Maple включает динамически типизированный язык программирования императивного стиля (похожий на Паскаль ), который допускает переменные лексической области видимости . [3] Существуют также интерфейсы к другим языкам ( C , C # , Fortran , Java , MATLAB и Visual Basic ), а также к Microsoft Excel .
Maple поддерживает MathML 2.0, формат W3C для представления и интерпретации математических выражений, включая их отображение на веб-страницах. [4] Также имеется функция преобразования выражений из традиционной математической записи в разметку, подходящую для системы набора текста LaTeX .
Архитектура
Maple основан на небольшом ядре , написанном на C , которое предоставляет язык Maple. Большинство функций обеспечивается библиотеками, которые поступают из различных источников. Большинство библиотек написано на языке Maple; у них есть доступный для просмотра исходный код. Многие численные вычисления выполняются библиотеками NAG Numerical Libraries , ATLAS или GMP .
Для различных функций Maple требуются числовые данные в разных форматах. Символьные выражения хранятся в памяти как направленные ациклические графы . Стандартный интерфейс и интерфейс калькулятора написаны на Java .
История
Первая концепция Maple возникла на встрече в конце 1980 года в Университете Ватерлоо . [5] Исследователи из университета хотели приобрести компьютер, достаточно мощный для работы основанной на Лиспе системы компьютерной алгебры Macsyma . Вместо этого они решили разработать свою собственную систему компьютерной алгебры под названием Maple, которая будет работать на более дешевых компьютерах. Стремясь к переносимости, они начали писать Maple на языках программирования из семейства BCPL (первоначально с использованием подмножества B и C , а затем только C). [5] Первая ограниченная версия появилась через три недели, а более полные версии вошли в массовое использование, начиная с 1982 года. [6] К концу 1983 года более 50 университетов установили копии Maple на своих компьютерах. [ необходима цитата ]
В 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] В 1994 году был опубликован специальный выпуск информационного бюллетеня, созданного разработчиками Maple, под названием MapleTech . [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]
История версий
- 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 г. [15]
- Maple 13.01: июль 2009 г.
- Maple 13.02: октябрь 2009 г.
- Maple 14: 29 апреля 2010 г. [16]
- Maple 14.01: 28 октября 2010 г.
- Maple 15: 13 апреля 2011 г. [17]
- Maple 15.01: 21 июня 2011 г.
- Maple 16: 28 марта 2012 г. [18]
- Maple 16.01: 16 мая 2012 г.
- Maple 17: 13 марта 2013 г. [19]
- Maple 17.01: июль 2013 г.
- Maple 18: 5 марта 2014 г. [20]
- Maple 18.01: май 2014 г.
- Maple 18.01a: июль 2014 г.
- Maple 18.02: ноябрь 2014 г.
- Maple 2015.0: 4 марта 2015 г. [21]
- Maple 2015.1: ноябрь 2015 г.
- Maple 2016.0: 2 марта 2016 г. [22]
- Maple 2016.1: 20 апреля 2016 г.
- Maple 2016.1a: 27 апреля 2016 г.
- Maple 2017.0: 25 мая 2017 г. [23]
- Maple 2017.1: 28 июня 2017 г.
- Maple 2017.2: 2 августа 2017 г.
- Maple 2017.3: 3 октября 2017 г.
- Maple 2018.0: 21 марта 2018 г. [24]
- Maple 2019.0: 14 марта 2019 г. [25]
- Maple 2020.0: 12 марта 2020 г. [26]
Функции
Особенности Maple: [27]
- Поддержка символьных и числовых вычислений с произвольной точностью
- Библиотеки элементарных и специальных математических функций
- Комплексные числа и интервальная арифметика
- Арифметика, наибольшие общие делители и множители для многомерных полиномов над полем рациональных чисел, конечных полей , полей алгебраических чисел и алгебраических полей функции
- Пределы, ряды и асимптотические разложения
- Основа Грёбнера
- Дифференциальная алгебра
- Манипуляции Матричные инструменты , включая поддержку разреженных массивов
- Инструменты построения графиков и анимации математических функций
- Решатели для систем уравнений , диофантовых уравнений , ОДЫ , ФДЭ , ДАЕСА , 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 ) локальный выход , я ; выход : = 1 ; для i от 2 до n do out : = out * i end do ; out end proc ;
Простые функции также могут быть определены с помощью обозначения стрелки "сопоставления":
myfac : = n -> product ( i , i = 1 .. n ) ;
Интеграция
Находить
- .
int ( соз ( х / а ) , х ) ;
Выход:
Детерминант
Вычислить определитель матрицы.
M : = Матрица ([[ 1 , 2 , 3 ] , [ a , b , c ] , [ x , y , z ]]) ; # example Matrix
LinearAlgebra: -Детерминант (M);
Расширение серии
серия ( tanh ( x ) , x = 0 , 15 )
Решайте уравнения численно
Следующий код численно вычисляет корни многочлена высокого порядка:
е : = х ^ 53 - 88 * х ^ 53 * х - 5 = 0 fsolve ( f ) - 1.097486315 , -. 5226535640 , 1.099074017
Эта же команда может также решать системы уравнений:
f : = ( cos ( x + y )) ^ 2 + exp ( x ) * y + cot ( x - y ) + cosh ( z + x ) = 0 : г : = х ^ 5 - 8 * у = 2 : h : = x + 3 * y - 77 * z = 55 ; fsolve ( { f , g , h } ) ; { x = - 1,543352313 , y = - 1,344549481 , z = -. 7867142955 }
Построение функции одной переменной
Сюжет с участием от -10 до 10:
участок ( х * грех ( х ) , х = - 10. . 10 ) ;
Построение функции двух переменных
Сюжет с участием а также от -1 до 1:
plot3d ( x ^ 2 + y ^ 2 , x = - 1 .. 1 , y = - 1 .. 1 ) ;
Анимация функций
- Анимация функции двух переменных
Участки : - одушевленные ( подводные лодки ( к = 0,5 , е ) , х = - 30. . 30 , т = - 10. . 10 , NumPoints = 200 , кадры = 50 , цвет = красный , толщина = 3 ) ;
- Анимация функций трех переменных
графики : - animate3d ( cos ( t * x ) * sin ( 3 * t * y ) , x = - Pi .. Pi , y = - Pi .. Pi , t = 1 .. 2 ) ;
- Пролетная анимация трехмерных графиков. [28]
M : = Matrix ([[ 400 , 400 , 200 ] , [ 100 , 100 , - 400 ] , [ 1 , 1 , 1 ]] , тип данных = float [ 8 ]) : plot3d ( 1 , x = 0 .. 2 * Р , у = 0. . Pi , осей = NONE , Coords = сферическая , точки обзора = [ путь = M ]) ;
Преобразование Лапласа
- Преобразование Лапласа
е : = ( 1 + А * т + В * т ^ 2 ) * ехр ( с * т ) ;
inttrans : - лаплас ( f , t , s ) ;
- обратное преобразование Лапласа
inttrans : - invlaplace ( 1 / ( s - a ) , s , x ) ;
преобразование Фурье
- преобразование Фурье
inttrans : - Фурье ( грех ( х ) , х , ш )
Интегральные уравнения
Найти функции удовлетворяющие интегральному уравнению
- .
уравнение : = F ( х ) - 3 * Int (( х * у + х ^ 2 * у ^ 2 ) * F ( у ) , у = - 1. . 1 ) = ч ( х ) : intsolve ( уравнение , е ( х )) ;
Использование движка Maple
Движок Maple используется в нескольких других продуктах Maplesoft :
- Moebius, пакет онлайн-тестирования DigitalEd, использует Maple для алгоритмической генерации вопросов и оценки ответов учащихся.
- MapleNet позволяет пользователям создавать страницы JSP и апплеты Java . MapleNet 12 и выше также позволяет пользователям загружать и работать с рабочими таблицами Maple, содержащими интерактивные компоненты.
- MapleSim , инструмент инженерного моделирования. [29]
- Пакет Maple Quantum Chemistry Package от RDMChem вычисляет и визуализирует электронные энергии и свойства молекул. [30]
Ниже перечислены коммерческие продукты сторонних производителей, которые больше не используют движок Maple:
- Версии Mathcad, выпущенные между 1994 и 2006 годами, включали основанный на Maple движок алгебры (MKM, также известный как Mathsoft Kernel Maple), хотя в последующих версиях используется MuPAD .
- Symbolic Math Toolbox в MATLAB содержал часть движка Maple 10, но теперь использует MuPAD (начиная с версии MATLAB R2007b +). [31]
- Старые версии математического редактора Scientific Workplace включали Maple в качестве вычислительного механизма, хотя текущие версии включают MuPAD .
Смотрите также
- Сравнение систем компьютерной алгебры
- Сравнение программ численного анализа
- Сравнение языков программирования
- Сравнение статистических пакетов
- Список систем компьютерной алгебры
- Список программ компьютерного моделирования
- Список программного обеспечения для построения графиков
- Список программного обеспечения для численного анализа
- Математическое программное обеспечение
- SageMath (программа алгебры с открытым исходным кодом)
Рекомендации
- ^ «История продукта Maple» . Проверено 20 марта 2020 .
- ^ «Международная языковая поддержка в Maple» . Maplesoft . Проверено 2 июня +2016 .
- ^ Сила двух Побитовый журнал
- ^ http://www.maplesoft.com/standards/MathML/info.html
- ^ а б МакКаллум, Малкольм А.Х. (2018). «Компьютерная алгебра в исследованиях гравитации» . Живые обзоры в теории относительности . 21 (1): 6. DOI : 10.1007 / s41114-018-0015-6 . ISSN 2367-3613 . PMC 6105178 . PMID 30174551 .
- ^ а б «История клена» . 1998-12-15 . Проверено 6 апреля 2020 .
- ^ Две такие университетские лаборатории - группа символических вычислений в Университете Ватерлоо и Исследовательский центр компьютерной алгебры Онтарио в Университете Западного Онтарио.
- ^ Примечания к выпуску 2 Maple V Maplesoft
- ^ MapleTech Специальный выпуск, Birkhäuser-Бостон (1994)
- ↑ Maple 6.0 Macworld, февраль 2001 г.
- ^ Получение знаний с помощью чистой математики , Scientific Computing World.
- ^ Руководство по установке Maple 11 Maplesoft
- ↑ Интервью с Гастоном Гоннетом, соавтором Maple. Архивировано 29декабря 2007 г.на Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 марта 2005 г.
- ^ https://www.maplesoft.com/company/news/releases/2009/2009-07-30-cybernet-systems-co-ltd-to-acquire-maple.aspx
- ^ «Блог 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 .
- ^ Страница характеристик продукта Maple
- ^ Использование новой функции пролета в Maple 13 Maplesoft
- ^ Махмуд, Хизир; Город, Грэм Э. (июнь 2016 г.). «Обзор компьютерных инструментов для моделирования требований к энергии электромобилей и их влияния на распределительные сети». Прикладная энергия . 172 : 337–359. DOI : 10.1016 / j.apenergy.2016.03.100 .
- ^ «Блог MaplePrimes - Введение в набор инструментов квантовой химии Maple» . Дата обращения 6 мая 2019 .
- ^ «Примечания к выпуску для Symbolic Math Toolbox» . MathWorks . Проверено 10 июля 2014 .
Внешние ссылки
- Maplesoft, подразделение Waterloo Maple, Inc. - официальный сайт
- Онлайн-справка по Maple - онлайн-документация
- MaplePrimes - сайт сообщества пользователей Maple
- MapleCloud - онлайн-просмотрщик приложений Maple