Системы компьютерной алгебры можно разделить на два класса: специализированные и общего назначения. Специализированные посвящены определенной части математики, например теории чисел , теории групп или преподаванию элементарной математики .
Системы компьютерной алгебры общего назначения нацелены на то, чтобы быть полезными пользователю, работающему в любой научной области, требующей манипулирования математическими выражениями. Чтобы быть полезной, система компьютерной алгебры общего назначения должна включать в себя различные функции, такие как:
пользовательский интерфейс , позволяющий пользователю вводить и отображать математические формулы, как правило, с помощью клавиатуры, выбора пунктов меню, мыши или стилуса.
язык программирования и интерпретатор (результат вычислений обычно имеет непредсказуемую форму и непредсказуемый размер, поэтому часто требуется вмешательство пользователя),
упроститель , представляющий собой систему переписывания для упрощения математических формул,
менеджер памяти , включая сборщик мусора , необходимый из-за огромного размера промежуточных данных, которые могут появляться в ходе вычислений,
арифметика произвольной точности , необходимая из-за огромного размера целых чисел, которые могут возникнуть,
Библиотека должна не только обеспечивать потребности пользователей, но и потребности упрощающего. Например, вычисление наибольших общих делителей полиномов систематически используется для упрощения выражений, содержащих дроби.
Этот большой объем требуемых компьютерных возможностей объясняет небольшое количество систем компьютерной алгебры общего назначения. Значимые системы включают Axiom , GAP , Maxima , Magma , Maple , Mathematica и SageMath .
История
Системы компьютерной алгебры начали появляться в 1960-х годах и развивались из двух совершенно разных источников — потребностей физиков-теоретиков и исследований в области искусственного интеллекта .
Ярким примером первой разработки была новаторская работа, проведенная будущим лауреатом Нобелевской премии по физике Мартинусом Вельтманом , который в 1963 году разработал программу для символьной математики, особенно физики высоких энергий, названную Schoonschip (в переводе с голландского «чистый корабль»). Другой ранней системой была FORMAC .
Используя Lisp в качестве основы программирования, Карл Энгельман создал MATHLAB в 1964 году в MITRE в исследовательской среде искусственного интеллекта. Позже MATHLAB стал доступен пользователям систем PDP-6 и PDP-10, работающих под управлением TOPS-10 или TENEX в университетах. Сегодня его все еще можно использовать в эмуляциях SIMH PDP-10. MATHLAB (« math ematical lab oratory») не следует путать с MATLAB (« mat rix lab oratory»), которая представляет собой систему для численных вычислений, созданную 15 лет спустя в Университете Нью-Мексико .
Первыми популярными системами компьютерной алгебры были muMATH , Reduce , Derive (основанная на muMATH) и Macsyma ; версия Macsyma с копилефтом называется Maxima . Reduce стала свободным программным обеспечением в 2008 году. [3] Коммерческие системы включают Mathematica [4] и Maple , которые обычно используются исследователями-математиками, учеными и инженерами. Свободно доступные альтернативы включают SageMath (которая может выступать в качестве интерфейса для нескольких других свободных и несвободных CAS). Другие значимые системы включают Axiom , GAP , Maxima и Magma .
Переход к веб-приложениям в начале 2000-х годов привел к выпуску WolframAlpha — онлайн-поисковой системы и системы автоматизированного проектирования, включающей возможности Mathematica . [5]
Совсем недавно системы компьютерной алгебры были реализованы с использованием искусственных нейронных сетей , хотя по состоянию на 2020 год они не были коммерчески доступны. [6]
Символические манипуляции
Обычно поддерживаются следующие символьные манипуляции:
упрощение до меньшего выражения или некоторой стандартной формы , включая автоматическое упрощение с допущениями и упрощение с ограничениями
замена символов или числовых значений для определенных выражений
API для связывания с внешней программой, например, базой данных, или использования в языке программирования для использования системы компьютерной алгебры
Некоторые системы компьютерной алгебры фокусируются на специализированных дисциплинах; они обычно разрабатываются в академических кругах и бесплатны. Они могут быть неэффективны для числовых операций по сравнению с числовыми системами .
Было много сторонников увеличения использования систем компьютерной алгебры в классах начальной и средней школы. Основной причиной такой пропаганды является то, что системы компьютерной алгебры представляют реальную математику в большей степени, чем математика, основанная на бумаге и карандаше или ручном калькуляторе. [12]
Это стремление к увеличению использования компьютеров в классах математики было поддержано некоторыми советами по образованию. Это даже было предписано в учебной программе некоторых регионов. [13]
Системы компьютерной алгебры широко используются в высшем образовании. [14] [15] Многие университеты предлагают либо специальные курсы по развитию их использования, либо неявно ожидают, что студенты будут использовать их в своих курсовых работах. Компании, которые разрабатывают системы компьютерной алгебры, стремятся увеличить их распространенность среди университетских и колледжских программ. [16] [17]
Калькуляторы, оборудованные CAS, не допускаются на экзаменах ACT , PLAN и в некоторых классах [18], хотя они могут быть разрешены на всех тестах College Board , где разрешено использование калькуляторов, включая SAT , некоторые предметные тесты SAT и экзамены AP по исчислению , химии , физике и статистике . [19]
Математика, используемая в системах компьютерной алгебры
^ Кунс, Альберт (октябрь 1999 г.), «Начало работы с символическими математическими системами: инструмент повышения производительности», Technology Tips, The Mathematics Teacher , 92 (7): 620–622, doi :10.5951/mt.92.7.0620, JSTOR 27971125
↑ Интервью с Гастоном Гонне, одним из создателей Maple. Архивировано 29 декабря 2007 г. в Wayback Machine , SIAM History of Numerical Analysis and Computing, 16 марта 2005 г.
^ Бхаттачарья, Джотирмой (2022-05-12). "Wolfram|Alpha: бесплатная онлайн-система компьютерной алгебры". The Hindu . ISSN 0971-751X . Получено 2023-04-26 .
^ Орнес, Стивен. «Символическая математика наконец уступает место нейронным сетям». Журнал Quanta . Получено 04.11.2020 .
^ Дана-Пикар, Тьерри Ноа. «Компьютерные доказательства и автоматизированные методы в математическом образовании». arxiv.org . Получено 23.06.2024 .
^ «Символическая алгебра и математика с Xcas» (PDF) .
^ "Обучение детей настоящей математике с помощью компьютеров". Ted.com . Получено 12 августа 2017 г.
^ "Математика - Образование Манитобы". Edu.gov.mb.ca . Получено 2017-08-12 .
^ "Mathematica для преподавателей, сотрудников и студентов: информационные технологии - Северо-Западный университет". It.northwestern.edu . Получено 12 августа 2017 г.
^ "Mathematica для студентов - Информационные технологии Колумбийского университета". cuit.columbia.edu . Получено 12 августа 2017 г.
^ "Mathematica для высшего образования: использование в курсах университетов и колледжей". Wolfram.com . Получено 12 августа 2017 г.
^ Тесты CAAP ACT: использование калькуляторов на тесте CAAP по математике. Архивировано 31 августа 2009 г. на Wayback Machine.
^ "Политика калькулятора экзаменов AP". Студенты AP . College Board . Получено 24.05.2024 .
^ ab B. Buchberger; GE Collins; R. Loos (2013-06-29). Компьютерная алгебра: символические и алгебраические вычисления. Springer Science & Business Media. ISBN978-3-7091-3406-1.
^ Иоахим фон цур Гатен; Юрген Герхард (25 апреля 2013 г.). Современная компьютерная алгебра. Издательство Кембриджского университета. ISBN978-1-107-03903-2.
^ Кит О. Геддес; Стивен Р. Цапор; Джордж Лабан (2007-06-30). Алгоритмы для компьютерной алгебры. Springer Science & Business Media. ISBN978-0-585-33247-5.
Ричард Дж. Фейтман. "Очерки алгебраического упрощения". Технический отчет MIT-LCS-TR-095, 1972. (Представляет исторический интерес, показывая направление исследований в области компьютерной алгебры. На сайте MIT LCS: [1])