Введение

Математическое программное обеспечение

Компьютерная алгебраическая система (CAS) или символическая алгебраическая система (SAS) – это любое математическое программное обеспечение, обладающее способностью манипулировать математическими выражениями аналогично традиционным ручным вычислениям, выполняемым математиками и учеными. Развитие компьютерных алгебраических систем во второй половине 20-го века является частью дисциплины "компьютерная алгебра" или "символьные вычисления", которая стимулировала разработку алгоритмов для математических объектов, таких как полиномы. Компьютерные алгебраические системы можно разделить на два класса: специализированные и общего назначения. Специализированные системы посвящены конкретной области математики, такой как теория чисел, теория групп или обучение элементарной математике. Компьютерные алгебраические системы общего назначения предназначены для пользователей, работающих в любой научной области, требующей манипулирования математическими выражениями. Чтобы быть полезной, компьютерная алгебраическая система общего назначения должна включать в себя различные функции, такие как:
пользовательский интерфейс, позволяющий пользователю вводить и отображать математические формулы, как правило, с помощью клавиатуры, выбора меню, мыши или стилуса;
язык программирования и интерпретатор (результат вычисления обычно имеет непредсказуемую форму и размер, поэтому часто требуется вмешательство пользователя);
упроститель – система преобразований для упрощения математических формул;
менеджер памяти, включая сборщик мусора, необходимый из-за большого объема промежуточных данных, которые могут возникать в процессе вычисления;
арифметика произвольной точности, необходимая для работы с целыми числами большого размера;
обширная библиотека математических алгоритмов и специальных функций. Библиотека должна удовлетворять не только потребности пользователей, но и потребности упростителя. Например, вычисление наибольшего общего делителя многочленов систематически используется для упрощения выражений, содержащих дроби. Этот большой объем требуемых вычислительных ресурсов объясняет небольшое количество компьютерных алгебраических систем общего назначения. К значимым системам относятся 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 («математическая лаборатория») не следует путать с MATLAB («матричная лаборатория»), которая представляет собой систему для численных вычислений, разработанную через 15 лет в Университете Нью-Мексико. В 1987 году Hewlett Packard представила первый портативный калькулятор с CAS — серию HP 28, и впервые в калькуляторе стало возможным упорядочивать алгебраические выражения, выполнять дифференцирование, ограниченную символьную интеграцию, построение рядов Тейлора и решать алгебраические уравнения. В 1999 году независимо разработанная CAS Erable для серии HP 48 стала официально интегрированной частью прошивки новой серии HP 49/50, а год спустя — и серии HP 40, в то время как HP Prime перешла на систему Xcas в 2013 году. Компания Texas Instruments в 1995 году выпустила калькулятор TI 92 с CAS, основанным на программном обеспечении Derive; серия TI Nspire заменила Derive в 2007 году. Серия TI 89, впервые выпущенная в 1998 году, также содержит CAS. Casio выпустила свой первый калькулятор CAS с CFX 9970G и сменила его серией Algebra FX в 1999–2003 годах и текущей серией ClassPad. Первыми популярными системами компьютерной алгебры были muMATH, Reduce, Derive (основанный на muMATH) и Macsyma; популярная версия Macsyma с открытым исходным кодом под названием Maxima активно поддерживается. Reduce стала свободным программным обеспечением в 2008 году. На сегодняшний день наиболее популярными коммерческими системами являются Mathematica и Maple, которые широко используются исследователями-математиками, учёными и инженерами. Свободно доступные альтернативы включают SageMath (который может выступать в качестве интерфейса к нескольким другим свободным и несвободным CAS). Другие значимые системы включают Axiom, GAP, Maxima и Magma. Переход к веб-приложениям в начале 2000-х годов привёл к выпуску WolframAlpha — онлайн-поисковой системы и CAS, включающей в себя возможности Mathematica. В последнее время системы компьютерной алгебры стали разрабатываться с использованием искусственных нейронных сетей, однако по состоянию на 2020 год они не были доступны в коммерческой продаже.

Типы выражений

Выражения, с которыми обычно работает CAS, включают многочлены от нескольких переменных, стандартные функции выражений (синус, экспонента и т.п.), различные специальные функции (гамма-функция, дзета-функция, функция ошибок, функции Бесселя и т.д.), произвольные функции выражений, задачи оптимизации, вычисление производных и интегралов, упрощение выражений, суммирование и умножение выражений, усеченные ряды с выражениями в качестве коэффициентов, матрицы, состоящие из выражений, и многое другое. Поддерживаемые числовые типы данных обычно включают представление действительных чисел с плавающей точкой, целые числа (произвольной точности), комплексные числа (представление с плавающей точкой), интервальные представления действительных чисел, рациональные числа (точное представление) и алгебраические числа.

Использование в образовании

Было много сторонников расширения использования компьютерных алгебраических систем в классах начальной и средней школы. Главная причина этой поддержки заключается в том, что компьютерные алгебраические системы более точно отражают реальные математические задачи, чем традиционные методы с использованием бумаги и карандаша или ручных калькуляторов. Это стремление к увеличению использования компьютеров на уроках математики было поддержано некоторыми органами управления образованием и даже включено в учебные программы отдельных регионов. Компьютерные алгебраические системы широко используются в высшем образовании. Многие университеты предлагают специальные курсы по их освоению или подразумевают, что студенты будут использовать их при выполнении учебных заданий. Компании, разрабатывающие компьютерные алгебраические системы, активно продвигают их внедрение в учебные программы университетов и колледжей. Калькуляторы, оснащенные CAS, не разрешены к использованию на экзаменах ACT и PLAN, а также в некоторых классах, хотя их использование может быть разрешено на всех экзаменах, допускающих использование калькуляторов, проводимых College Board, включая SAT, некоторые специализированные тесты SAT и экзамены AP по математике, химии, физике и статистике.