stringtranslate.com

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

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 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 включают в себя: [30]

Примеры кода Maple

Следующий код, вычисляющий факториал неотрицательного целого числа, является примером конструкции императивного программирования в 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 = 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 } ) ;       { х = - 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 ) ;         
2D решение колокола
графики :- animate3d ( cos ( t * x ) * sin ( 3 * t * y ) , x =- Пи .. Пи , y =- Пи .. Пи , t = 1. . 2 ) ;   
3D анимация функции
 M := Matrix ([[ 400 , 400 , 200 ] , [ 100 , 100 ,- 400 ] , [ 1 , 1 , 1 ]] , тип данных = float [ 8 ]) : plot3d ( 1 , x = 0. . 2 * Pi , y = 0. . Pi , оси = нет , координаты = сферические , точка обзора = [ path = M ]) ;           
Maple plot3D пролет

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

f := ( 1 + A * t + B * t ^ 2 ) * exp ( c * t ) ;  
 inttrans :- laplace ( f , t , s ) ;  
inttrans :- invlaplace ( 1 / ( s - a ) , s , x ) ;  

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

 inttrans :- фурье ( 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 :

Ниже перечислены сторонние коммерческие продукты, которые больше не используют движок Maple:

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

Ссылки

  1. ^ "Maplesoft Media Releases". www.maplesoft.com . Получено 2024-05-12 .
  2. ^ "Поддержка международных языков в Maple". Maplesoft . Получено 2 июня 2016 г.
  3. ^ Степень двойки Архивировано 2010-07-06 в журнале Wayback Machine Bitwise Magazine
  4. ^ «Добро пожаловать на домашнюю страницу Maplesoft MathML». www.maplesoft.com .
  5. ^ ab MacCallum, Malcolm AH (2018). «Компьютерная алгебра в исследовании гравитации». Living Reviews in Relativity . 21 (1): 6. Bibcode : 2018LRR....21....6M. doi : 10.1007/s41114-018-0015-6 . ISSN  2367-3613. PMC 6105178. PMID 30174551  . 
  6. ^ ab "История клена". 1998-12-15 . Получено 2020-04-06 .
  7. ^ Две такие университетские лаборатории — Группа символических вычислений в Университете Ватерлоо и Исследовательский центр компьютерной алгебры Онтарио в Университете Западного Онтарио.
  8. ^ Maple V Release 2 Заметки Maplesoft
  9. ^ "MTN Специальный выпуск 1994". web.mit.edu .
  10. Maple 6.0 Архивировано 18 июня 2008 г. на Wayback Machine Macworld, февраль 2001 г.
  11. ^ Получение знаний с помощью чистой математики, Scientific Computing World.
  12. ^ Руководство по установке Maple 11 Maplesoft
  13. Интервью с Гастоном Гонне, одним из создателей Maple. Архивировано 29 декабря 2007 г. в Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 марта 2005 г.
  14. ^ "Maplesoft Media Releases". www.maplesoft.com .
  15. ^ "Блог MaplePrimes - Maple 13 и MapleSim 2 теперь доступны" . Получено 28 апреля 2009 г.
  16. ^ "Блог MaplePrimes - Анонс Maple 14 и MapleSim 4" . Получено 29 апреля 2010 г. .
  17. ^ "Блог MaplePrimes - Знакомство с Maple 15" . Получено 11 апреля 2011 г.
  18. ^ "Блог MaplePrimes - Maple 16 уже здесь" . Получено 28 марта 2012 г.
  19. ^ "Блог MaplePrimes - Знакомство с Maple 17" . Получено 13 марта 2013 г. .
  20. ^ "Блог MaplePrimes - Анонс Maple 18" . Получено 5 марта 2014 г. .
  21. ^ "Блог MaplePrimes - Maple 2015 уже доступен!" . Получено 4 марта 2015 г.
  22. ^ "Блог MaplePrimes - Анонс Maple 2016" . Получено 2 марта 2016 г. .
  23. ^ "Блог MaplePrimes - Анонс Maple 2017" . Получено 25 мая 2017 .
  24. ^ "Блог MaplePrimes - Maple 2018 уже здесь!" . Получено 21 марта 2018 г.
  25. ^ "Блог MaplePrimes - Анонс Maple 2019" . Получено 14 марта 2019 .
  26. ^ "Блог MaplePrimes - Maple 2020 запущен!" . Получено 20 марта 2020 г. .
  27. ^ "Блог MaplePrimes - Представляем Maple 2021" . Получено 2 марта 2024 г.
  28. ^ "Блог MaplePrimes - Распаковка Maple 2022" . Получено 2 марта 2024 г. .
  29. ^ "Блог MaplePrimes - Maple 2023 уже здесь!" . Получено 2 марта 2024 г.
  30. ^ «Что такое Maple: Возможности продукта — Математическое и инженерное программное обеспечение — Maplesoft». www.maplesoft.com .
  31. ^ Использование новой функции пролета в Maple 13 Maplesoft
  32. ^ Махмуд, Хизир; Таун, Грэм Э. (июнь 2016 г.). «Обзор компьютерных инструментов для моделирования энергетических потребностей электромобилей и их влияние на сети распределения электроэнергии». Applied Energy . 172 : 337–359. doi :10.1016/j.apenergy.2016.03.100.
  33. ^ "Блог MaplePrimes - Знакомство с набором инструментов квантовой химии Maple" . Получено 6 мая 2019 г. .
  34. ^ "Заметки о выпуске Symbolic Math Toolbox". MathWorks . Получено 10 июля 2014 г.

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