Maple (программное обеспечение) - Maple (software)

Клен
Maple 2016 Core Screenshots.jpg
Maple интерфейс
Разработчики) Клен Ватерлоо (Maplesoft)
Первый выпуск 1982 г.
Стабильный выпуск
2020.1 (10 июня 2020 г . ; 16 месяцев назад ) [±] ( 2020-06-10 )
Написано в C , Java , Клен
Платформа Windows (7, 8 и 10), macOS , Linux
Доступно в Английский , японский и ограниченная поддержка на дополнительных языках
Тип Система компьютерной алгебры , Числовые вычисления
Лицензия Проприетарное коммерческое программное обеспечение
Веб-сайт www .maplesoft .com / products / Maple /

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 включают:

Примеры кода 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);
Maple1DPlot.PNG

Построение функции двух переменных

Участок с и в пределах от -1 до 1:

plot3d(x^2+y^2, x = -1..1, y = -1..1);
Maple163DPlot.jpg

Анимация функций

  • Анимация функции двух переменных
plots:-animate(subs(k = 0.5, f), x=-30..30, t=-10..10, numpoints=200, frames=50, color=red, thickness=3);
2D колокол
  • Анимация функций трех переменных
plots:-animate3d(cos(t*x)*sin(3*t*y), x=-Pi..Pi, y=-Pi..Pi, t=1..2);
3D анимация функции
  • Пролетная анимация трехмерных графиков.
 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]);
Кленовый участок. 3D-перелет

Преобразование Лапласа

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 .

Смотрите также

использованная литература

внешние ссылки