Jump to content

Компьютерная алгебра

Символьное интегрирование f алгебраической функции ( x ) = x / x 4 + 10 х 2 − 96 x − 71 с использованием системы компьютерной алгебры Аксиома

В математике и информатике , [ 1 ] Компьютерная алгебра , также называемая символическими вычислениями или алгебраическими вычислениями , — это научная область, которая занимается изучением и разработкой алгоритмов и программного обеспечения для управления математическими выражениями и другими математическими объектами . Хотя компьютерную алгебру можно считать подобластью научных вычислений , их обычно рассматривают как отдельные области, поскольку научные вычисления обычно основаны на числовых вычислениях с приблизительными числами с плавающей запятой , в то время как символьные вычисления делают упор на точные вычисления с выражениями, содержащими переменные , которые не имеют заданного значения и манипулируются как символы.

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

Компьютерная алгебра широко используется для математических экспериментов и разработки формул, используемых в числовых программах. Он также используется для полных научных вычислений, когда чисто численные методы не помогают, как в криптографии с открытым ключом , или для некоторых нелинейных задач.

Терминология

[ редактировать ]

Некоторые авторы отличают компьютерную алгебру от символьных вычислений, используя последнее название для обозначения видов символьных вычислений, отличных от вычислений с помощью математических формул . Некоторые авторы используют символьные вычисления для аспекта информатики предмета и «компьютерную алгебру» для математического аспекта. [ 2 ] В некоторых языках название поля не является прямым переводом его английского названия. Обычно по-французски это называется Calcul Formel , что означает «формальное вычисление». Это название отражает связь этой области с формальными методами .

Символические вычисления в прошлом также назывались символическими манипуляциями , алгебраическими манипуляциями , символьной обработкой , символьной математикой или символьной алгеброй , но эти термины, которые также относятся к невычислительным манипуляциям, больше не используются по отношению к компьютеру. алгебра.

Научное сообщество

[ редактировать ]

Не существует научного общества, специализирующегося на компьютерной алгебре, но эту функцию берет на себя группа по особым интересам Ассоциации вычислительной техники под названием SIGSAM (Специальная группа по интересам). «Символические и алгебраические манипуляции»). [ 3 ]

Ежегодно проводится несколько конференций по компьютерной алгебре, главной из которых является ISSAC (Международный симпозиум по символьным и алгебраическим вычислениям), который регулярно спонсируется SIGSAM. [ 4 ]

Есть несколько журналов, специализирующихся на компьютерной алгебре, ведущим из которых является Journal of Symbolic Computation, основанный в 1985 году Бруно Бухбергером . [ 5 ] Есть также несколько других журналов, которые регулярно публикуют статьи по компьютерной алгебре. [ 6 ]

Аспекты информатики

[ редактировать ]

Представление данных

[ редактировать ]

Поскольку числовое программное обеспечение очень эффективно для приближенных численных вычислений , в компьютерной алгебре принято уделять особое внимание точным вычислениям с точно представленными данными. Такое точное представление подразумевает, что даже если размер выходных данных невелик, промежуточные данные, генерируемые во время вычислений, могут расти непредсказуемым образом. Такое поведение называется раздутием выражения . [ 7 ] Чтобы обойти эту проблему, используются различные методы представления данных, а также алгоритмы, которые ими манипулируют. [ 8 ]

Обычные системы счисления, используемые в числовых вычислениях, представляют собой числа с плавающей запятой и целые числа фиксированного ограниченного размера. Ни один из них не удобен для компьютерной алгебры из-за раздутости выражений. [ 9 ]

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

Программирование эффективной реализации арифметических операций — сложная задача. Поэтому большинство бесплатных систем компьютерной алгебры и некоторые коммерческие, такие как Mathematica и Maple , [ 10 ] [ 11 ] используйте библиотеку GMP , которая, таким образом, является стандартом де-факто .

Выражения

[ редактировать ]
Представление выражения (8 - 6) × (3 + 1) в виде дерева Лиспа из магистерской диссертации 1985 года. [ 12 ]

За исключением чисел и переменных , каждое математическое выражение можно рассматривать как символ оператора, за которым следует последовательность операндов. В программах компьютерной алгебры выражения обычно представляются таким образом. Это представление очень гибкое, и многие вещи, которые на первый взгляд не кажутся математическими выражениями, можно представлять и манипулировать ими как таковые. Например, уравнение — это выражение с «=" в качестве оператора, матрица может быть представлена ​​как выражение с «матрицей» в качестве оператора и ее строками в качестве операндов.

Даже программы можно рассматривать и представлять как выражения с оператором «процедура» и, по крайней мере, двумя операндами, списком параметров и телом, которое само по себе является выражением с «телом» в качестве оператора и последовательностью инструкций в качестве операндов. И наоборот, любое математическое выражение можно рассматривать как программу. Например, выражение a + b можно рассматривать как программу сложения с a и b параметрами . Выполнение этой программы заключается в вычислении выражения для заданных значений a и b ; если им не присвоено никаких значений, результат оценки является просто входными данными.

Этот процесс отложенной оценки является фундаментальным в компьютерной алгебре. Например, оператор «=» уравнений в большинстве систем компьютерной алгебры также является названием программы проверки равенства: обычно вычисление уравнения приводит к уравнению, но когда требуется проверка равенства , либо явно запрашиваемый пользователем через команду «оценка логического значения», либо автоматически запускаемый системой в случае теста внутри программы, затем выполняется оценка логического результата.

Поскольку размер операндов выражения непредсказуем и может меняться в течение рабочего сеанса, последовательность операндов обычно представляется как последовательность либо указателей (как в Macsyma), либо в виде последовательности указателей (как в Macsyma ). [ 13 ] или записи в хэш-таблице (например, в Maple ).

Упрощение

[ редактировать ]

Грубое применение основных правил дифференцирования по x к выражению дает результат

Обычно желательно использовать более простое выражение, а при работе с общими выражениями необходимо упрощение.

Это упрощение обычно достигается путем переписывания правил . [ 14 ] Следует рассмотреть несколько классов правил переписывания. Самыми простыми являются правила, которые всегда уменьшают размер выражения, например E E → 0 или sin(0) → 0 . Они систематически применяются в системах компьютерной алгебры.

Трудность возникает с ассоциативными операциями, такими как сложение и умножение. Стандартный способ справиться с ассоциативностью — учитывать, что сложение и умножение имеют произвольное количество операндов, то есть a + b + c представляется как «+»( a , b , c ) . Таким образом, a + ( b + c ) и ( a + b ) + c упрощаются до «+»( a , b , c ) , который отображается как a + b + c . В случае таких выражений, как a b + c , проще всего систематически переписать E , E F , E / F как соответственно (−1)⋅ E , E + (−1)⋅ F , Э Ф −1 . Другими словами, во внутреннем представлении выражений нет ни вычитания, ни деления, ни унарного минуса, вне представления чисел.

Другая трудность возникает с коммутативностью сложения и умножения. Проблема состоит в том, чтобы быстро распознать схожие термины , чтобы объединить или отменить их. Проверка каждой пары условий требует больших затрат при использовании очень длинных сумм и произведений. Чтобы решить эту проблему, Macsyma сортирует операнды сумм и произведений в таком порядке, в котором подобные термины располагаются в последовательных местах, что позволяет легко их обнаружить. В Maple хеш -функция предназначена для генерации коллизий при вводе одинаковых терминов, что позволяет их объединять сразу после их введения. Это позволяет сразу распознавать и сохранять подвыражения, которые появляются в процессе вычислений несколько раз, и сохранять их только один раз. Это экономит память и ускоряет вычисления, избегая повторения одних и тех же операций с идентичными выражениями.

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

Математические аспекты

[ редактировать ]

Некоторые фундаментальные математические вопросы возникают, когда кто-то хочет манипулировать математическими выражениями в компьютере. Мы рассматриваем главным образом случай многомерных рациональных дробей . Это не является реальным ограничением, поскольку, как только иррациональные функции, входящие в выражение, упрощаются, они обычно рассматриваются как новые неопределенные. Например,

рассматривается как многочлен и

Равенство

[ редактировать ]

Есть два понятия равенства математических выражений . Синтаксическое равенство — это равенство их представления в компьютере. Это легко проверить в программе. Семантическое равенство — это когда два выражения представляют один и тот же математический объект, как в

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

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

В компьютерной алгебре «каноническая форма» и «нормальная форма» не являются синонимами. [ 15 ] Каноническая форма такова, что два выражения в канонической форме семантически равны тогда и только тогда, когда они синтаксически равны, в то время как нормальная форма такова, что выражение в нормальной форме семантически равно нулю только в том случае, если оно синтаксически равно нулю. Другими словами, ноль имеет уникальное представление как выражение в нормальной форме.

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

Компьютерная алгебра, управляемая человеком

[ редактировать ]

Ранние системы компьютерной алгебры, такие как ENIAC в Пенсильванском университете , полагались на человеческие компьютеры или программистов, чтобы перепрограммировать их между вычислениями, манипулировать многочисленными физическими модулями (или панелями) и снабжать устройство считывателя карт IBM. [ 16 ] Женщины-математики занимались большей частью программных вычислений ENIAC, управляемых человеком: Джин Дженнингс , Марлин Вескофф , Рут Лихтерман , Бетти Снайдер , Фрэнсис Билас и Кей МакНалти возглавляли указанные усилия. [ 17 ]

Основы и ранние приложения

[ редактировать ]

В 1960 году Джон Маккарти исследовал расширение примитивных рекурсивных функций для вычисления символических выражений с помощью языка программирования Лисп в Массачусетском технологическом институте . [ 18 ] Хотя его серия «Рекурсивные функции символьных выражений и их машинное вычисление» осталась незавершенной, [ 19 ] Маккарти и его вклад в программирование искусственного интеллекта и компьютерную алгебру с помощью Lisp помогли основать проект MAC в Массачусетском технологическом институте и организацию, которая позже стала Стэнфордской лабораторией искусственного интеллекта (SAIL) в Стэнфордском университете , чье соревнование способствовало значительному развитию компьютерной алгебры на протяжении всего конец 20 века.

Первые попытки символьных вычислений, предпринятые в 1960-х и 1970-х годах, столкнулись с проблемами, связанными с неэффективностью давно известных алгоритмов при переносе их в системы компьютерной алгебры. [ 20 ] Предшественники проекта MAC, такие как ALTRAN , стремились преодолеть алгоритмические ограничения за счет усовершенствований в аппаратном обеспечении и интерпретаторах, а более поздние усилия были направлены на оптимизацию программного обеспечения. [ 21 ]

Исторические проблемы

[ редактировать ]

Большая часть работы исследователей в этой области заключалась в пересмотре классической алгебры с целью повышения ее эффективности при разработке эффективных алгоритмов для использования в компьютерной алгебре. Примером такого типа работы является вычисление полиномиальных наибольших общих делителей — задача, необходимая для упрощения дробей и важный компонент компьютерной алгебры. Классические алгоритмы для этих вычислений, такие как алгоритм Евклида , оказались неэффективными в бесконечных полях; алгоритмы линейной алгебры столкнулись с аналогичными трудностями. [ 22 ] Таким образом, исследователи обратились к поиску методов сведения полиномов (например, над кольцом целых чисел или уникальной областью факторизации ) к варианту, эффективно вычислимому с помощью алгоритма Евклида.

Алгоритмы, используемые в компьютерной алгебре

[ редактировать ]

См. также

[ редактировать ]
  1. ^ «Ассоциация ACM по компьютерной алгебре» .
  2. ^ Ватт, Стивен М. (2006). Сделать компьютерную алгебру более символичной (приглашено) (PDF) . Трансгрессивные вычисления 2006: Конференция в честь Жана Делла Дора (TC 2006). стр. 43–49. ISBN  9788468983813 . OCLC   496720771 .
  3. ^ Официальный сайт СИГСАМ
  4. ^ «Список конференций СИГСАМ» . Архивировано из оригинала 8 августа 2013 г. Проверено 15 ноября 2012 г.
  5. ^ Коэн, Джоэл С. (2003). Компьютерная алгебра и символьные вычисления: математические методы . АК Петерс. п. 14 . ISBN  978-1-56881-159-8 .
  6. ^ Список журналов SIGSAM
  7. ^ «Лекция 12: Рациональные функции и преобразования. Введение в символические вычисления. Документация 1.7.6» . homepages.math.uic.edu . Проверено 31 марта 2024 г.
  8. ^ Нойт, Сильвен; Петито, Мишель; Дриди, Рауф (01 марта 2009 г.). «Геометрическое видение Эли Картана, или как избежать наплыва выражений» . Журнал символических вычислений . Решение полиномиальной системы в честь Дэниела Лазарда. 44 (3): 261–270. дои : 10.1016/j.jsc.2007.04.006 . ISSN   0747-7171 .
  9. ^ Ричард Лиска Выражение swell , из «Особенностей программирования в системах компьютерной алгебры»
  10. ^ «Ядро Mathematica: проблемы проектирования и реализации» . Октябрь 2006 г. Проверено 29 ноября 2023 г.
  11. ^ «Библиотека GNU Multiple Precision (GMP)» . Мэйплсофт . Проверено 29 ноября 2023 г.
  12. ^ Кэссиди, Кевин Г. (декабрь 1985 г.). Возможность автоматического освобождения памяти с параллельным выполнением программ в среде LISP (PDF) (магистерская диссертация). Военно-морская аспирантура, Монтерей/Калифорния. п. 15. АДА165184.
  13. ^ Справочное руководство Macsyma по математике и системам (PDF) . Максима . 1996. с. 419.
  14. ^ Бухбергер, Бруно; Лоос, Рюдигер (1983). «Алгебраическое упрощение» (PDF) . В Бухбергере, Бруно; Коллинз, Джордж Эдвин; Лоос, Рюдигер; Альбрехт, Рудольф (ред.). Компьютерная алгебра: символьные и алгебраические вычисления . Вычислительное дополнение. Том. 4. стр. 11–43. дои : 10.1007/978-3-7091-7551-4_2 . ISBN  978-3-211-81776-6 .
  15. ^ Давенпорт, Дж. Х.; Сирет, Ю.; Турнье, Э. (1988). Компьютерная алгебра: системы и алгоритмы алгебраических вычислений . Академический. ISBN  0-12-204230-1 . OCLC   802584470 .
  16. ^ «ЭНИАК в действии: что это было и как работало» . ENIAC: Празднование истории инженерного дела Пенсильванского университета . Пенсильванский университет. Проверено 3 декабря 2023 г.
  17. ^ Лайт, Дженнифер С. (1999). «Когда компьютеры были женщинами» . Технологии и культура . 40 (3): 455–483. дои : 10.1353/tech.1999.0128 . ISSN   1097-3729 .
  18. ^ Маккарти, Джон (1 апреля 1960 г.). «Рекурсивные функции символьных выражений и их машинное вычисление, Часть I» . Коммуникации АКМ . 3 (4): 184–195. дои : 10.1145/367177.367199 . ISSN   0001-0782 .
  19. ^ Вексельблат, Ричард Л. (1981). История языков программирования . Серия монографий АСМ. Конференция по истории языков программирования, Ассоциация вычислительной техники. Нью-Йорк Лондон Торонто: Академическая пресса. ISBN  978-0-12-745040-7 .
  20. ^ «Символические вычисления (Редакционная статья)» . Журнал символических вычислений . 1 (1): 1–6. 1 марта 1985 г. дои : 10.1016/S0747-7171(85)80025-0 . ISSN   0747-7171 .
  21. ^ Фельдман, Стюарт И. (1 ноября 1975 г.). «Краткая характеристика Альтрана» . Бюллетень ACM SIGSAM . 9 (4): 12–20. дои : 10.1145/1088322.1088325 . ISSN   0163-5824 .
  22. ^ Кальтофен, Э. (1983), Бухбергер, Бруно; Коллинз, Джордж Эдвин; Лоос, Рюдигер; Альбрехт, Рудольф (ред.), «Факторизация многочленов » , Компьютерная алгебра , Приложение по вычислениям, том. 4, Вена: Springer Vienna. 95–113, номер домена : 10.1007/978-3-7091-7551-4_8 , ISBN.  978-3-211-81776-6 , получено 29 ноября 2023 г.

Дальнейшее чтение

[ редактировать ]

Для детального определения предмета:

Для учебников, посвященных данному предмету:

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 559d7be2dd60ed9e4d1f70976fbf09f1__1720081440
URL1:https://arc.ask3.ru/arc/aa/55/f1/559d7be2dd60ed9e4d1f70976fbf09f1.html
Заголовок, (Title) документа по адресу, URL1:
Computer algebra - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)