Maple — это символьная и числовая вычислительная среда, а также многопарадигмальный язык программирования . Он охватывает несколько областей технических вычислений, таких как символьная математика, численный анализ, обработка данных, визуализация и другие. Набор инструментов MapleSim добавляет функциональность для многодоменного физического моделирования и генерации кода.
Возможности Maple для символьных вычислений включают возможности универсальной системы компьютерной алгебры . Например, он может манипулировать математическими выражениями и находить символические решения определенных задач, например, возникающих из обыкновенных и частных дифференциальных уравнений .
Maple разработана в коммерческих целях канадской компанией-разработчиком программного обеспечения Maplesoft . Название «Maple» является отсылкой к канадскому происхождению программного обеспечения .
Обзор
Основная функциональность
Пользователи могут вводить математические данные в традиционной математической нотации . Также можно создавать пользовательские интерфейсы. Поддерживаются числовые вычисления с произвольной точностью, а также символьные вычисления и визуализация. Примеры символьных вычислений приведены ниже.
Maple поддерживает MathML 2.0, который является форматом W3C для представления и интерпретации математических выражений, включая их отображение на веб-страницах. [4] Также имеется функционал для преобразования выражений из традиционной математической нотации в разметку, подходящую для системы набора LaTeX .
Архитектура
Maple основан на небольшом ядре , написанном на языке C , который предоставляет язык Maple. Большая часть функциональности предоставляется библиотеками, которые поступают из различных источников. Большинство библиотек написано на языке Maple; они имеют просматриваемый исходный код. Многие числовые вычисления выполняются библиотеками NAG Numerical Libraries , библиотеками ATLAS или библиотеками GMP .
Различные функции в Maple требуют числовых данных в разных форматах. Символьные выражения хранятся в памяти как направленные ациклические графы . Стандартный интерфейс и интерфейс калькулятора написаны на Java .
История
Первая концепция Maple возникла на встрече в конце 1980 года в Университете Ватерлоо . [5] Исследователи университета хотели приобрести компьютер, достаточно мощный для запуска системы компьютерной алгебры Macsyma на основе Lisp . Вместо этого они решили разработать собственную систему компьютерной алгебры, названную 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 г.
Клен 2.15: август 1982 г.
Maple 2.2: декабрь 1982 г.
Maple 3.0: май 1983 г.
Maple 3.1: октябрь 1983 г.
Maple 3.2: апрель 1984 г.
Maple 3.3: март 1985 г. (первая общедоступная версия)
Следующий код, вычисляющий факториал неотрицательного целого числа, является примером конструкции императивного программирования в Maple:
myfac := proc ( n::nonnegint ) local out , i ; out := 1 ; for i от 2 до 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 ]]) ; # пример матрицы
ЛинейнаяАлгебра:-Определитель(M);
Расширение серии
ряд ( тангенс ( x ) , x = 0 , 15 )
Решить уравнения численно
Следующий код численно вычисляет корни многочлена высокого порядка:
f := х ^ 53 - 88 * х ^ 5 - 3 * х - 5 = 0fsolve ( 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 } ) ;{ х = - 2,080507182 , у = - 5,122547821 , z = - 0,9408850733 }
Построение графика функции одной переменной
График с диапазоном от -10 до 10:
график ( 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 , thick = 3 ) ;
Анимация функций трех переменных
графики :- animate3d ( cos ( t * x ) * sin ( 3 * t * y ) , x =- Пи .. Пи , y =- Пи .. Пи , t = 1. . 2 ) ;
Анимация пролета 3D-графиков. [31]
M := Matrix ([[ 400 , 400 , 200 ] , [ 100 , 100 ,- 400 ] , [ 1 , 1 , 1 ]] , тип данных = float [ 8 ]) : plot3d ( 1 , x = 0. . 2 * Pi , y = 0. . Pi , оси = нет , координаты = сферические , точка обзора = [ path = M ]) ;
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, содержащими интерактивные компоненты.
Пакет Maple Quantum Chemistry от RDMChem вычисляет и визуализирует электронную энергию и свойства молекул. [33]
Ниже перечислены сторонние коммерческие продукты, которые больше не используют движок Maple:
Версии Mathcad , выпущенные между 1994 и 2006 годами, включали в себя алгебраический движок, производный от Maple (MKM, он же Mathsoft Kernel Maple), хотя последующие версии используют MuPAD .
Symbolic Math Toolbox в MATLAB содержал часть движка Maple 10, но теперь использует MuPAD (начиная с версии MATLAB R2007b+). [34]
В более ранних версиях математического редактора Scientific Workplace в качестве вычислительного движка использовался Maple, хотя в современных версиях используется MuPAD .
↑ Maple 6.0 Архивировано 18 июня 2008 г. на Wayback Machine Macworld, февраль 2001 г.
^ Получение знаний с помощью чистой математики, Scientific Computing World.
^ Руководство по установке Maple 11 Maplesoft
↑ Интервью с Гастоном Гонне, одним из создателей Maple. Архивировано 29 декабря 2007 г. в Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 марта 2005 г.
^ "Maplesoft Media Releases". 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 г.). «Обзор компьютерных инструментов для моделирования энергетических потребностей электромобилей и их влияние на сети распределения электроэнергии». Applied Energy . 172 : 337–359. doi :10.1016/j.apenergy.2016.03.100.
^ "Блог MaplePrimes - Знакомство с набором инструментов квантовой химии Maple" . Получено 6 мая 2019 г. .
^ "Заметки о выпуске Symbolic Math Toolbox". MathWorks . Получено 10 июля 2014 г.
Внешние ссылки
На Викискладе есть медиафайлы по теме Maple (программное обеспечение) .
В Wikibooks есть книга по теме: Клен
Maplesoft, подразделение Waterloo Maple, Inc. – официальный сайт