Добавить материал и получить бесплатное свидетельство о публикации
версия для слабовидящих
Главная / Информатика / Реферат на тему "Система Axiom и ее возможности для символьных вычислений"

Реферат на тему "Система Axiom и ее возможности для символьных вычислений"

1 Введение


1.1 Что такое «Аксиома»

«Аксиома» (Axiom) — свободная универсальная система компьютерной алгебры. Она состоит из среды интерпретатора, компилятора и библиотеки, описывающей строгую, математически правильную иерархию типов.


Разработка «Аксиомы» ведётся с 1971 года. В то время она называлась«Черновик»(Scratchpad) и была большим проектом универсальной системы компьютерной алгебры, созданным в «Межделмаше» (IBM) под руководством Ричарда Дженкса (RichardJenks). На протяжении 20 лет проект «Аксиома», руководимый Барри Тагером (BarryTager), был инструментом серьёзных исследований в вычислительной математике. В 1990-е, когда удача отвернулась от IBM, проект был продан компании «Числовые алгоритмы» (NumericalAlgorithmsGroup) и, став коммерческим продуктом, получил своё нынешнее имя. По разным причинам«Аксиома» продавалась не очень хорошо и в октябре 2001 года покинуларынок программного обеспечения. В сентябре 2002 года «Аксиома» была выпущена под свободной лицензией БСД,2) а 27-го августа 2003 года сталадоступна для загрузки с сайта Фонда свободного программного обеспечения — «Саванна» В 2007 году на основе «Аксиомы» были созданы ещё два проекта: «Фрикас» и «Открытая Аксиома». В настоящее время «Аксиома» доступна и может быть использована на многих системахтипа Юникс, в том числе Линукс, а также Виндоус.

Одной из причин коммерческого провала «Аксиомы» можно считать

(а можно и не считать) саму её суть: она многое делает не так, как большинство программ. В основе «Аксиомы» лежит строгая математика, и это — еёприоритет над красивой внешностью или удобством использования. Однакоудобство использования — понятие субъективное, и для подготовленногоспециалиста «Аксиома» — настоящий подарок и удовольствие.

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

Решающая сила «Аксиомы» кроется в её великолепной структуре,которая позволяет наращивать новые возможности, не увеличивая общую сложность системы (программа «не умрёт под собственной тяжестью», чем страдают многие, не только научные, коммерческие монстры). Дизайн «Аксиомы» позволяет интегрировать её с другими инструментами типа численных библиотек на Фортране или Си. «Аксиома» — литературная программа, технология литературного программирования Дональда Кнута используется по всему исходному коду, что позволяет «Аксиоме» иметь актуальную документацию и быть понятной новым разработчикам.

В настоящее время не существует конкурента «Аксиоме» на её поле и, что особенно важно, в плане структуры и организации проекта. «Аксиома» предлагает основу для математических изысканий любой сложности и новизны. Она предоставляет язык для компьютерного описания математических объектов и их отношений.

Хотя «Аксиома» уже сейчас представляет собой мощную систему,перспектива использования её для создания новых разделов математикипоистине завораживает. В последние годы «Аксиома» была использованадля успешного решения задач теоретической математики, математическойфизики, комбинаторики, обработки сигналов и параллельных вычислений.С её помощью были получены новые диофантовы приближения для числа ;подтверждена гипотеза Гротендика для некоторых классов линейных дифференциальныхуравнений; были изучены арифметические свойства униформизациигиперэллиптических кривых; были построены новые алгоритмыфакторизации чисел на основе теории групп; с помощью «Аксиомы»были получены некоторые результаты в квантовой теории поля.

Появление«Аксиомы» в научном мире вывело символьные вычисления на новыйуровень, на котором учёные могут формулировать свои мысли и решатьзадачи с помощью компьютера.

2 Начало работы

2.1 Ввод и вывод

Интерактивная среда «Аксиомы» запускается в терминале командой axiom.

Чтобы выйти из «Аксиомы», надо набрать команду quit(со скобочкой) и нажать клавишу Enter. Всё это написано в приветствии,выводимом программой при запуске (пример 1).

hello_html_m7f889d64.png

В интерактивном режиме команды вводятся в одну строку, нажатие клавиши Enter приводит к выполнению команды и выводу результата. Несколько команд можно ввести в одной строке, разделяя их символом «точка с запятой» (;), при этом выводится только результат последней. Длинную строку можно разбить на несколько, заканчивая каждую символом подчёркивания(_) и нажимая Enter.

Для ссылки на предыдущие результаты вычислений используютсясимволы: % — самый последний; %% n — результат номер n, который лучшезаключать в скобки; %%(-n) — результат номер n с конца, так что %%(-1)≡%

(пример 2).

hello_html_m522a0598.png

hello_html_m71d38145.png

«Аксиома» по умолчанию выводит результаты в виде, похожем на «человеческую» запись. Можно попросить её заодно выводить результатыв формате TEX, в формате языка Фортран, MathML и др. (пример 3).

hello_html_m14ea6088.png

hello_html_1a983abf.png

Можно запустить интерактивную сессию в программе TEXMACS. Проще всего это сделать с оригинальной «Аксиомой», и хотя TEXMACS —достаточно тяжёлая, требовательная к ресурсам программа, результат прекрасен.

hello_html_m132a866d.png

3 Простые примеры

3.1 Арифметика

«Аксиома» способна работать с вещественными числами очень большой точности (пример 6).hello_html_691b8926.png

Однако следует понимать, что такие числа при любой точности всё же приближённы. Если нужен числовой результат, следует до самого конца проводить символьные вычисления и лишь затем превращать результат в вещественное число. Точность задаётся функцией digits (изначально — 20). Для представлениерезультата в числовой (десятичной) форме используется функция numeric, для перевода в любую другую систему исчисления — radix. Возведение в степень обозначается символом ** либо ^.2)



hello_html_4b380041.png

В «Аксиоме» легко реализуется модульная арифметика (пример 7).hello_html_m2659fc76.pnghello_html_mffef998.png



Например, расчёт времени дня (часы) использует арифметику по модулю 12 или 24. Так что 22+3 = 1. Арифметика по модулю 360 используется дляотсчёта углов.

3.2 Переменные, макросы и функции

3.2.1 Переменные и макросы

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

=√2 − 4. То же самое можно делать и в «Аксиоме» с помощью символа «:=» вот так — d:=sqrt(b**2-4*a*c). Теперь везде, где появится переменная d, вместо неё будет подставлено выражение sqrt(b**2-4*a*c).

Ещё пример int:=integrate — и можно писать интегралы короче.

Использование переменных имеет и «обратную силу», например, можно менять элементы матрицы, обращаясь к ней по имени переменной. Более общий случай подстановок реализуется с помощью макросов — подстановок с параметрами, но они уже обратной силы не имеют, так как означают буквальную подстановку (пример 8).

hello_html_m5d8da3d6.png

hello_html_m73101b4f.png

3.2.2 Функции

Функции принципиально отличаются от макросов и являются одним из основных понятий «Аксиомы» и т. н. функциональных языков программирования.

1) Функция — это последовательность действий (операций).

Функция задаётся конструкцией:

имя (аргументы) == тело функции.

Результат функции — результат последней операции в её теле.

Функции могут иметь одинаковые имена, а смысл функции (последовательность операций) определяется типом и количеством переданных ей параметров. Например, и для решения алгебраических уравнений, и для решения дифференциальных уравнений, и для решения их систем используется функция solve (см. далее).

Чтобы узнать, для каких типов объектов применима та или иная функция, служит команда )displayoperations<имя функции>. Чтобыузнать, какие функции применимы к тому или иному типу объектов, служиткоманда )show<тип>. Эта команда также показыват сокращённые названиятипов, например, INT для Integer, POLY для Polynomial.

Тип объекта можно уточнить либо при его объявлении (через одно двоеточие), либо при использовании (через два двоеточия). Если тип не указан,подразумевается самый простой, очевидный вариант (пример 9).

hello_html_m62ab82c6.png

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

Функция p(n) принимает в качестве аргумента символ n, а как результат возвращает выражение. При этом она выполняет некоторые действия (операции)над символом n, и если для какого-то типа n (например, матрицы) эти операции не определены, «Аксиома» сообщит об ошибке. Кроме этого,если был указан тип функции, попытка использовать её не по назначению будет отвергнута. Чтобы превратить какое-либо выражение (например, результатдлинных вычислений) в новую функцию, надо использовать функцию function (пример 11).

hello_html_m3b0ffb61.png

hello_html_1876d951.png

3.2.3 Операторы

Операции (действия) с математическими объектами также являются математическими объектами. Абстракные операции (которые «что-то» делают) создаются функцией operator с аргументом, означающим имя оператора, которое будет использоваться для обозначения этого оператора (пример13)

hello_html_2562d41b.png

Наиболее частое использование операторов — дифференциальные уравнения. Имя оператораникак не связано с именами переменных, и чтобы не водить «Аксиому» в заблуждение, часто имя оператора «экранируют» с помощью символа ’(апостр´оф); можно просто заключать его в кавычки, если так привычнее.

hello_html_m39dc6102.png

3.3 Производные

Производные выводятся с помощью функции differentiate. Для краткости можно использовать лишь букву D (заглавную).

hello_html_m5c4344e7.png

hello_html_79368f0a.png

3.4 Последовательности
Последовательности, в том числе бесконечные, создаются конструкцией

[f(n) for n in a] . Для применения некоторой функции ко всем членам последовательности используется функция map. В примере 15 показано табулирование функции на заданном отрезке с заданным шагом. Для свёртки конечной последовательности с помощью некоторой операции (сложение, умножение, разность, минимум, максимум) используется функция reduce, суммы задаются функцией sum (пример 16)

hello_html_23628979.png







hello_html_66a65c3d.png

hello_html_49234c49.png

3.5 Матрицы

Матрицы создаются функцией matrix, диагональные матрицы можно создать проще — функцией diagonalMatrix. Ранг матрицы вычисляется функцией rank, определитель — determinant, обратная матрица — inverse
(или возвести в степень 1), транспонированная — transpose, след матрицы — trace. Доступ к элементам матрицы — матрица (строка, столбец) .
Разумеется, матрицы можно складывать, умножать друг на друга и на скаляр, возводить в целую степень. Все возможные операции над матрицами
покажет команда
)show Matrix. Следует помнить, что «Аксиома» работает
по вполне определённым правилам и лишена творческого начала, поэтому
функция
rank не замечает, что sin х/ tg х = cosх (пример 18).

hello_html_4578cddd.png

hello_html_af546.png

3.6 Векторы


Векторы создаются функцией vector. Вектор имеет фиксированное число элементов (в отличие от списка или массива) любого, но только одного типа. Если для элементов массива определены операции сложения, вычитания, умножения на скаляр, то они определены и для вектора. Число элементов вектора можно узнать, добавив к нему символ #. Доступ к элементам вектора — вектор (номер). Векторы можно умножать на матрицы. Скалярное произведение векторов — dot, векторное — cross. Полный список операций с векторами, как обычно, можно узнать по команде )showVector (пример 19).

hello_html_m11869d1f.png

hello_html_101c5388.png

hello_html_6b0d2812.png

hello_html_21fcd868.png

3.10 Интегралы
Неопределённые и определённые интегралы берутся с помощью функции integrate.


Неопределённые интегралы (первообразные)


Интегралы от элементарных функций часто не выражаются через элементарные же функции. В таких случаях «Аксиома» выводит формальный интеграл, но только лишь если может доказать его «неэлементарность»; иначе она сообщает об ошибке.

Если вид ответа зависит от знаков выражений, входящих в исходное
выражение, например, интеграл ниже,
то функция integrate покажет все возможные варианты (пример 26). Функция complexIntegrate этим не заморачивается, считая все переменные и функции комплексными.

hello_html_m414004c9.png

hello_html_m4dcb8e9d.png


hello_html_m1e4cbca7.png

Определённые интегралы


«Аксиома » проверяет, определена ли функция на указанном интервале. Если это не так, она выводит сообщение об ошибке. Для несобственных
интегралов (в том числе и для «потенциально» несобственных в силу на
личия параметров) «Аксиома» пишет слово
potentialPole и отказывается
вычислять интеграл, если её не успокоить
, (пример 27).

hello_html_m13295baf.png

hello_html_5154def6.png

Заключение



Результат, полученный с помощью систем компьютерной алгебры с закрытым кодом, не может считаться частью математического доказательства, так как сам код проверить невозможно.
«Аксиома» — система компьютерной алгебры
с открытым исходным кодом.



  • Информатика
Описание:

1.1 Что такое «Аксиома»

«Аксиома» (Axiom) — свободная универсальная система компью­терной алгебры. Она состоит из среды интерпретатора, компилятора и биб­лиотеки, описывающей строгую, математически правильную иерархию ти­пов.

Разработка «Аксиомы» ведётся с 1971 года. В то время она назы­валась«Черновик»(Scratchpad) и была большим проектом универсальной системы компьютерной алгебры, созданным в «Межделмаше» (IBM) под руководством Ричарда Дженкса (RichardJenks). На протяжении 20 лет про­ект «Аксиома», руководимый Барри Тагером (BarryTager), был инструмен­том серьёзных исследований в вычислительной математике. В 1990-е, когда удача отвернулась от IBM, проект был продан компании «Числовые алгоритмы» (NumericalAlgorithmsGroup) и, став ком­мерческим продуктом, получил своё нынешнее имя. По разным причинам«Аксиома» продавалась не очень хорошо и в октябре 2001 года покинуларынок программного обеспечения. В сентябре 2002 года «Аксиома» была выпущена под свободной лицензией БСД,2) а 27-го августа 2003 года сталадоступна для загрузки с сайта Фонда свободного программного обеспече­ния — «Саванна» В 2007 году на основе «Аксиомы» были созданы ещё два проекта: «Фрикас» и «Открытая Аксиома». В настоящее время «Аксиома» доступна и может быть использована на многих системахтипа Юникс, в том числе Линукс, а также Виндоус.

Одной из причин коммерческого провала «Аксиомы» можно считать

(а можно и не считать) саму её суть: она многое делает не так, как большинство программ. В основе «Аксиомы» лежит строгая математика, и это — еёприоритет над красивой внешностью или удобством использования. Однакоудобство использования — понятие субъективное, и для подготовленногоспециалиста «Аксиома» — настоящий подарок и удовольствие.

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

Решающая сила «Аксиомы» кроется в её великолепной структуре,которая позволяет наращивать новые возможности, не увеличивая общую сложность системы (программа «не умрёт под собственной тяжестью», чем страдают многие, не только научные, коммерческие монстры). Дизайн «Аксиомы» позволяет интегрировать её с другими инструментами типа численных библиотек на Фортране или Си. «Аксиома» — литературная программа, технология литературного программирования Дональда Кнута используется по всему исходному коду, что позволяет «Аксиоме» иметь актуальную документацию и быть понятной новым разработчикам.

В настоящее время не существует конкурента «Аксиоме» на её поле и, что особенно важно, в плане структуры и организации проекта. «Аксиома» предлагает основу для математических изысканий любой сложности и новизны. Она предоставляет язык для компьютерного описания математических объектов и их отношений.

Хотя «Аксиома» уже сейчас представляет собой мощную систему,перспектива использования её для создания новых разделов математикипоистине завораживает. В последние годы «Аксиома» была использованадля успешного решения задач теоретической математики, математическойфизики, комбинаторики, обработки сигналов и параллельных вычислений.С её помощью были получены новые диофантовы приближения для числа

Автор Багданова Яна Сергеевна
Дата добавления 12.04.2017
Раздел Информатика
Подраздел Другое
Просмотров 403
Номер материала MA-071046
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

Популярные курсы