~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 1231EC31DA8B9B6E8F5F25ACCE558F46__1715836020 ✰
Заголовок документа оригинал.:
✰ Computer algebra - Wikipedia ✰
Заголовок документа перевод.:
✰ Компьютерная алгебра — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Symbolic_computation ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/12/46/1231ec31da8b9b6e8f5f25acce558f46.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/12/46/1231ec31da8b9b6e8f5f25acce558f46__translat.html ✰
Дата и время сохранения документа:
✰ 09.06.2024 14:43:00 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 16 May 2024, at 08:07 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Компьютерная алгебра — Википедия Jump to content

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

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

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

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

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

Терминология [ править ]

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

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

Научное сообщество [ править ]

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

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

Существует несколько журналов, специализирующихся на компьютерной алгебре, ведущим из которых является Journal of Символические вычисления, основанный в 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
Номер скриншота №: 1231EC31DA8B9B6E8F5F25ACCE558F46__1715836020
URL1:https://en.wikipedia.org/wiki/Symbolic_computation
Заголовок, (Title) документа по адресу, URL1:
Computer algebra - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)