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

редактировать
Для использования в других целях, см Клен (значения).
Клен
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» отсылает к канадскому наследию этого программного обеспечения.

СОДЕРЖАНИЕ
  • 1 Обзор
    • 1.1 Основные функции
    • 1.2 Архитектура
  • 2 История
  • 3 История версий
  • 4 Особенности
  • 5 примеров кода Maple
    • 5.1 Интеграция
    • 5.2 Детерминант
    • 5.3 Расширение серии
    • 5.4 Численное решение уравнений
    • 5.5 Построение графика функции одной переменной
    • 5.6 Построение функции двух переменных
    • 5.7 Анимация функций
    • 5.8 преобразование Лапласа
    • 5.9 преобразование Фурье
    • 5.10 Интегральные уравнения
  • 6 Использование движка Maple
  • 7 См. Также
  • 8 ссылки
  • 9 Внешние ссылки
Обзор

Основная функциональность

Пользователи могут вводить математику в традиционных математических обозначениях. Также можно создавать собственные пользовательские интерфейсы. Имеется поддержка числовых вычислений с произвольной точностью, а также символьных вычислений и визуализации. Примеры символьных вычислений приведены ниже.

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 -gt; product(i, i = 1..n);

Интеграция

Находить

потому что ( Икс а ) d Икс {\ displaystyle \ int \ cos \ left ({\ frac {x} {a}} \ right) dx}.
 int(cos(x/a), x);

Выход:

а грех ( Икс а ) {\ Displaystyle а \ грех \ влево ({\ гидроразрыва {х} {а}} \ вправо)}

Детерминант

Вычислить определитель матрицы.

 M:= Matrix([[1,2,3], [a,b,c], [x,y,z]]); # example Matrix
[ 1 2 3 а б c Икс у z ] {\ displaystyle {\ begin {bmatrix} 1 amp; 2 amp; 3 \\ a amp; b amp; c \\ x amp; y amp; z \ end {bmatrix}}}
LinearAlgebra:-Determinant(M);
б z - c у + 3 а у - 2 а z + 2 Икс c - 3 Икс б {\ displaystyle bz-cy + 3ay-2az + 2xc-3xb}

Расширение серии

series(tanh(x), x = 0, 15)
Икс - 1 3 Икс 3 + 2 15 Икс 5 - 17 315 Икс 7 {\ displaystyle x - {\ frac {1} {3}} \, x ^ {3} + {\ frac {2} {15}} \, x ^ {5} - {\ frac {17} {315} } \, х ^ {7}}
+ 62 2835 Икс 9 - 1382 155925 Икс 11 + 21844 6081075 Икс 13 + О ( Икс 15 ) {\ displaystyle {} + {\ frac {62} {2835}} \, x ^ {9} - {\ frac {1382} {155925}} \, x ^ {11} + {\ frac {21844} {6081075 }} \, x ^ {13} + {\ mathcal {O}} \ left (x ^ {15} \ right)}

Решайте уравнения численно

Следующий код численно вычисляет корни многочлена высокого порядка:

 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: Икс грех ( Икс ) {\ Displaystyle х \ грех (х)} Икс {\ displaystyle x}

 plot(x*sin(x), x = -10..10);
Maple1DPlot.PNG

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

Участок с и в пределах от -1 до 1: Икс 2 + у 2 {\ displaystyle x ^ {2} + y ^ {2}} Икс {\ displaystyle x} у {\ displaystyle y}

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

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

  • Анимация функции двух переменных
ж знак равно 2 k 2 шиш 2 ( Икс k - 4 k 3 т ) {\ displaystyle f: = {\ frac {2k ^ {2}} {\ cosh ^ {2} \ left (xk-4k ^ {3} t \ right)}}}
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);
( 1 + А т + B т 2 ) е c т {\ displaystyle \ left (1 + A \, t + B \, t ^ {2} \ right) e ^ {ct}}
 inttrans:-laplace(f, t, s);
1 s - c + А ( s - c ) 2 + 2 B ( s - c ) 3 {\ displaystyle {\ frac {1} {sc}} + {\ frac {A} {(sc) ^ {2}}} + {\ frac {2B} {(sc) ^ {3}}}}
  • обратное преобразование Лапласа
inttrans:-invlaplace(1/(s-a), s, x);
е а Икс {\ displaystyle e ^ {ax}}

преобразование Фурье

 inttrans:-fourier(sin(x), x, w)
я π ( D я р а c ( ш + 1 ) - D я р а c ( ш - 1 ) ) {\ Displaystyle \ mathrm {I} \ пи \, (\ mathrm {Дирак} (ш + 1) - \ mathrm {Дирак} (ш-1))}

Интегральные уравнения

Найти функции, удовлетворяющие интегральному уравнению ж {\ displaystyle f}

ж ( Икс ) - 3 - 1 1 ( Икс у + Икс 2 у 2 ) ж ( у ) d у знак равно час ( Икс ) {\ Displaystyle е (х) -3 \ int _ {- 1} ^ {1} (ху + х ^ {2} y ^ {2}) f (y) dy = h (x)}.
eqn:= f(x)-3*Int((x*y+x^2*y^2)*f(y), y=-1..1) = h(x): intsolve(eqn,f(x));
ж ( Икс ) знак равно - 1 1 ( - 15 Икс 2 у 2 - 3 Икс у ) час ( у ) d у + час ( Икс ) {\ displaystyle f \ left (x \ right) = \ int _ {- 1} ^ {1} \! \ left (-15 \, {x} ^ {2} {y} ^ {2} -3 \, xy \ right) h \ left (y \ right) {dy} + h \ left (x \ right)}
Использование движка 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.
Смотрите также
использованная литература
внешние ссылки
Последняя правка сделана 2024-01-01 06:53:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте