computer.algebra@yandex -...

56
Компьютерная алгебра (курс лекций) Игорь Алексеевич Малышев [email protected] (С) Кафедра «Компьютерные системы и программные технологии», Санкт-Петербургский государственный политехнический университет

Upload: others

Post on 30-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Компьютерная алгебра(курс лекций)

Игорь Алексеевич Малышев[email protected]

(С) Кафедра «Компьютерные системы и программные технологии»,Санкт-Петербургский государственныйполитехнический университет

Page 2: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 2

Лекция 5

Системы компьютерной алгебры :достижения и перспективы

Page 3: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 3

Содержание лекции

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 4: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 4

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 5: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 5

Классификация СКА

Системы компьютерной математики:

табличные процессоры: Microsoft Excel, GNU Calc и др.системы для статистических расчётов:SPSS, Statistica и др.системы компьютерной алгебрысистемы для моделирования, анализа и принятиярешений (в том числе, интеллектуальные):GPSS, AnyLogic и др. (DSS, NLP и другие AI-системы)универсальные математические системы: Matlab, MathCAD и др.

Page 6: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 6

Классификация СКА

Классификационные признаки:

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

Page 7: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 7

Классификация СКА

Классы СКА

по функциональному назначению

Специализированные

СКАСКА

общего назначения

Решение задач для одногоили нескольких смежныхразделов символьнойматематики.

Примеры:

теория групп – GAPтензорная алгебра – Cadabra

Решение задач длябольшинства основныхразделов символьнойматематики.

Примеры:

Maxima, Axiom, Maple, Mathematica, Sage, Yacas

Page 8: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 8

Классификация СКА

Классы СКА

по типу архитектуры

Встраиваемоерасширение(плагин) дляязыка и / илисистемы

программи-рования

Open Source,

GNU GPL, мульти-плат-

формныеСКА

СКАклассическойархитектуры: системноеядро +

прикладныерасширения

Программныйпакет для

расширениябазовой

прикладнойматематической

системы

Примеры:

Axiom, Maple, Mathematica

Пример:

Maple (ядро) дляMatlab и MathCAD

Примеры:

Maxima (Lisp), PARI/GP (C)

Пример:

MathEclipse / Symja– Java-библиотека

Page 9: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 9

Классификация СКА

Классы СКАпо средствам реализации

аппаратно-программные программные

Язык АНАЛИТИК Язык LISP Язык C / C++

АНАЛИТИК-2010

REDUCE MACSYMA

muMATHЭВМ серии «МИР»

MATHEMATICA DERIVE MAXIMA MAPLE

Page 10: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 10

Классификация СКА

Классы СКА

по областям применения

Микрокалькуляторы

Примеры:

Hewlett-Packard, Texas Instruments, Casio, Citizen

Примеры:

iPhone и Windows эмуляторынаучныхкалькуляторов HP

Мобильные устройства иweb-сервисы Интернет

Примеры:

БПФ-процессорыдля системЦОС

Спецпроцессоры

Образованиеи научные

исследования

Примеры: пакеты СКА

Page 11: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 11

Классификация СКА

Классы СКА

по интегральным оценкам качества

архитектурная расширяемость

контролируемая достоверность вычислений

унификация реализации, информационная совместимость

производительность и масштабируемость

Page 12: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 12

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 13: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 13

Типовая архитектура

Библиотекиалгоритмов

Арифметика

(числа + полиномы)Пользовательские

интерфейсы

ЯДРО

Абстрактная

алгебра

Линейная

алгебра

Аналитическая

геометрия

Текст

Математика

Графика

Справочная система

Пакетырасширения

Page 14: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 14

Типовая архитектураФункциональное назначение блоков:

Ядро содержит машинные коды реализаций операторов и встроенныхфункций СКА, обеспечивающих выполнение аналитических (символьных) преобразований математических выражений на основе системыопределённых правил.Библиотеки алгоритмов содержат каталогизированные (по типамобрабатываемых абстрактных объектов – числа, функции, алгебры и т.п. и/или методам вычислений – аналитические, численные, смешанные) реализации алгоритмов решения типовых математических задач. Онифункционально расширяют ядро СКА.Пакеты расширения обеспечивают различные формы адаптации СКА кклассам математических задач, внешнему ПО (операционным системам, графическим пакетам и т.п.) и целям пользователей. Пользовательские интерфейсы обеспечивают поддержку всех функций, необходимых для информационных и управляющих взаимодействий междуСКА и пользователями (людьми, программами, аппаратными средствами).Справочная система содержит описание функциональных возможностей ипримеров работы в СКА, информационные сообщения о текущем состояниисистемы, а также сведения о математических основах алгоритмов СКА.

Page 15: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 15

Типовая архитектура

Требования к ядру СКА:

Целевой показатель – производительность.Машинно-ориентированный язык реализации(С, С++).Оптимизация машинного кода (в том числе, с помощьючастичной реализации функциональности СКА на языкеассемблера или аппаратно).

Целевой показатель – достоверность.Функциональная полнота операторов описания ипреобразования математических объектов.Ограничение (в идеале – запрет) модификации ядрапользователями СКА.

Page 16: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 16

Типовая архитектура

Требования к библиотекам алгоритмов:

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

Целевой показатель – функциональность.Поддержка в СКА средств модификации существующих исоздания новых библиотек (в том числе, непривилегированными пользователями СКА).Обеспечение возможности программирования алгоритмов нетолько на языке самой СКА, но и на языке реализации СКА.

Page 17: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 17

Типовая архитектура

Требования к пакетам расширения:

Целевой показатель – функциональность.Наличие у СКА собственного языка программирования приложений, обеспечивающего одновременно средства абстракции данных дляописания произвольных математических объектов и управляющиеконструкции достаточные для описания произвольных алгоритмов.Наличие в СКА средств динамической (в идеале – без рестартаСКА) конфигурации состава и приоритетности выбора алгоритмов(как из базовых библиотек, так и из пакетов расширения) решения(математических и нематематических) задач любыми категориямипользователей СКА.

Целевой показатель – совместимость.Унификация интерфейсов сопряжения пакетов расширения с СКА, атакже (в случае необходимости) непосредственно между собой.Открытость исходного кода реализации СКА для нейтрализациипротиворечивых ситуаций взаимодействия с пакетами расширения.

Page 18: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 18

Типовая архитектура

Требования к пользовательским интерфейсам:

Целевой показатель – функциональность.Унификация элементов наблюдения и управления СКА всоответствии с принципами обслуживания типовых прикладныхпрограмм в среде операционной системы (перемещаемые имасштабируемые окна документов, диалоговые и информационныеокна, кнопки управления, доступ к периферийным устройствам –принтерам, сетевым адаптерам и т.п.).Возможность настройки архитектуры пользовательскогоинтерфейса в зависимости от квалификации пользователя(начинающий, профессионал, разработчик СКА), спецификирешаемых задач (обучение, расчёты, исследования, сопряжение свнешним ПО), вычислительных и графических мощностейинструментальных платформ (суперкомпьютеры, персональныекомпьютеры, многофункциональные мобильные устройства и т.п.).Наличие встроенного языка программирования высокого (илисверхвысокого) уровня с расширяемой функциональностью.

Page 19: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 19

Типовая архитектура

Требования к справочной системе (1):

Целевой показатель – информативность.Локализация всех справочных материалов:

Одноязычная (национальная), выбираемая пользователем при инсталляцииСКА.Двуязычная: • по умолчанию – интернациональная (англоязычная);• альтернативная – национальная (по выбору пользователя).

Обеспечение системы получения справок с вложенными уровнямиабстракции и/или конкретизации информации:

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

Page 20: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 20

Типовая архитектура

Требования к справочной системе (2):

Целевой показатель – информативность.Обеспечение полноты справочной системы:

описание всех, без исключений, функций СКАи эффективности поиска сведений об объекте СКА:

в основном справочнике – по имени, по тематическому разделу и поключевым словам;в кольцевом списке-журнале предыдущих запросов – последовательно и потэгам.

Наличие обучающих материалов для различных категорийпользователей:

рекламные видеоматериалы для демонстрации основных потребительскиххарактеристик СКА;интерактивный учебный курс решения математических задач в среде СКА;консультант-репетитор, выполняющий пошаговое решение примеров споясняющими комментариями.

Page 21: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 21

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 22: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 22

Библиотеки алгоритмови пакеты расширения : алгоритмы

Арифметика произвольной точностиУпрощение выражений различной сложностиМатематический анализ(вычисление пределов, производных, интегралов)Поиск решений (корней) в математических структурах(уравнения и неравенства; диофантовы и дифференциальные уравнения; рекуррентные отношения)Линейная алгебра(операции над матрицами)Теория графовТеория чиселБулева алгебраТензорная алгебра

Page 23: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 23

Библиотеки алгоритмови пакеты расширения : сервисы

Редактор математических формулАрифметика с плавающей точкой2D- и 3D- графика(статичная и анимационная)Интерактивная справочная системаДинамическая оптимизация вычислений(баланс интерпретации и компиляции)Генерация кодов на языках программированияГенерация документов для печатных изданийСопряжение с внешней средой(периферийные устройства,файловый ввод / вывод данных,диспетчеризация виртуальной памяти,прикладные программные оболочки)

Page 24: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 24

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 25: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 25

Пользовательские интерфейсы

Текстовые:• Поле ввода символьных строк• Поле вывода символьных строкГрафические:

• Ячейки ввода данных / вывода результатов• Окна отображения графиковКомандные:

• Меню и кнопки управления СКА• Панели библиотек функций• Индикаторы состояний СКА

Page 26: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 26

Пользовательские интерфейсы : Maple 10

Page 27: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 27

Пользовательские интерфейсы : Maple 10

Page 28: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 28

Пользовательские интерфейсы : Maple 10

Page 29: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 29

Пользовательские интерфейсы : Maple 10

Page 30: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 30

Пользовательские интерфейсы : Maple 10

Page 31: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 31

Пользовательские интерфейсы : Maple 10

Page 32: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 32

Пользовательские интерфейсы : Maple 10

Page 33: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 33

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 34: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 34

Многообразие реализаций : программные СКА№ Название С какого года Лицензия Применение

1. Axiom 1971 (2001) BSD Универсальная СКА

2. Cadabra 2001 GPL Тензорная алгебра, теория поля

3. CoCoa 1987 GPL Алгебра полиномов

4. Fermat 1986 Shareware Полиномы, матрицы

5. GINV 2005 GPL Базисы Грёбнера длясистем уравнений

6. Maple 1979 Коммерческая Универсальная СКА

7. Mathematica 1986 Коммерческая Универсальная СКА

8. Maxima 1967 (1982) GPL Универсальная СКА

9. PARI / GP 1985 GPL Теория чисел, точностьвычислений

10. Singular 1984 GPL Полиномы, кольца, идеалы

Page 35: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 35

Многообразие реализаций : универсальные СКА

I поколение• REDUCE (LISP), Anthony C. Hearn• MACSYMA (LISP), Joel Moses, MTI MAXIMA• SCRATCHPAD (LISP), Richard D. Jenks, IBM AXIOM• SAC-1 (FORTRAN), George E. Collins SACLIB• muMATH (LISP), David Stoutemyer DERIVE

II поколение• MATHEMATICA (LISP), Stephen Wolfram, Wolfram Research• MAPLE (C/C++), Keith Qeddes и Gaston Gonnet, Waterloo University

III поколение• AXIOM (ALDOR, A#), Numeric Algorithm Group (NAG), Great Britain• MAGMA, University of Sydney, Australia• MuPAD (C/C++), University of Paderborn, Germany

Page 36: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 36

Многообразие реализаций : специализированные СКААНАЛИТИК (Институт кибернетики АН Украины) –системы алгоритмических алгебр В.М. ГлушковаGAP (GAP group) –теория групп, теория характеров, дискретная математикаCoCoA (The CoCoa Team) –коммутативная алгебраMacaulay2 (Daniel Grayson, Michael Stillman) –алгебраическая геометрия, коммутативная алгебраCadabra (Kasper Peeters) –тензорная алгебраKANT / KASH (KANT Group) –теория алгебраических чиселTRIP (Jacques Laskar, Michael Gastineau) –небесная механикаSymbolic C++ [C++]; Meditor [Java]; MathPiper [Java]; DoCon [Haskel] –библиотеки аналитических вычислений для языков программирования

Page 37: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 37

Многообразие реализаций : канонические СКА

AXIOM – конструктор алгебраических объектов - 1

AXIOM

Tim Daly, 2001

FriCAS

Waldek Hebisch, 2007

OpenAXIOM

Gabriel Dos Reis, 2007

Строгая типизация всех объектов

Иерархия алгебраических структур: группы, кольца, поля, полиномы и т.п.

Математический язык (A# → Aldor → SPAD) и встроенный компилятор

Стиль грамотного (literate) программирования: программный код, псевдокод ипрограммная документация (Дональд Кнут, 1981)

Доказательные вычисления

Page 38: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 38

Многообразие реализаций : канонические СКА

AXIOM – конструктор алгебраических объектов - 2

ФорматHyperDoc:

списокдопустимыхопераций дляопределённогодомена(типа объекта)

Page 39: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 39

Многообразие реализаций : канонические СКАAXIOM – конструктор алгебраических объектов - 3

ФорматMozilla Firefox:

стартоваястраницасправочнойсистемы

Page 40: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 40

Многообразие реализаций : канонические СКА

AXIOM – конструктор алгебраических объектов - 4

Источники дополнительной информации:

Официальные сайты проектов:AXIOM - http://axiom-developer.org/FriCAS - http://fricas.sourceforge.net/OpenAXIOM - http://www.open-axiom.org/

Видео-навигатор по AXIOM-документации на YouTube:http://www.youtube.com/watch?v=CV8y3UrpadY

Page 41: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 41

Многообразие реализаций : веб-сервисы

Аналитик-С – среда аналитических вычислений

Официальный сайт проекта:http://www.sgau.ru/analitik_c/

Основные характеристики:Язык реализации – PHP Платформа реализации – сервер ApacheОткрытый исходный кодСинтаксис и функциональность языка Аналитик:

Поддержка символов латиницы, кириллицы и греческихДвуязычность ключевых слов: пусть (let), вычислить (calculate) и т.п.Базовые функции (комбинаторика, полиномы, матрицы, дифференциалы-интегралы, тригонометрия, графика) + специальные расширения(управление в технических системах)

Коллектив разработчиков: аспиранты и студенты СГТУ и СГАУФормы участия в проекте: производственная практика, ВКР

Page 42: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 42

Многообразие реализаций : веб-сервисы

Аналитик–С – среда аналитических вычислений

Page 43: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 43

Многообразие реализаций : Java-мидлеты

Jasymca (Java Symbolic Calculator)

Официальный сайт проекта:http://webuser.hs-furtwangen.de/~dersch/jasymca2/indexEN.html

Основные характеристики:Язык реализации – JavaОткрытый исходный кодMaxima-подобные синтаксис (ASCII-режим) и функциональностьМинимальные требования к ресурсам (объём кода менее 200 Kb)Аппаратные платформы: смартфоны, КПК, ПКПрограммные платформы: Windows / Linux / MacOS; J2SE / J2ME

Page 44: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 44

Многообразие реализаций : Java-мидлеты

Jasymca (Java Symbolic Calculator)

Page 45: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 45

Многообразие реализаций : микрокалькуляторыНаучные микрокалькуляторы HP-15C (HP-48S, HP-95)http://www.shopping.hp.com/product/calculator/Scientific/1/storefronts/NW250AA%2523ABAФункциональные возможности:

Сложные интегралы и производные функцийМатрицы с действительными и комплексными аргументамиСистемы линейных и нелинейных уравненийЧисленные методы

Page 46: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 46

Многообразие реализаций : микрокалькуляторыГрафические микрокалькуляторы TI-89, TI-92 (TI-92 Plus)http://www.exponenta.ru/soft/others/ti/ti.aspФункциональные возможности: система компьютерной алгебры DERIVE

Page 47: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 47

Многообразие реализаций : микрокалькуляторы

Графический микрокалькулятор HP-50G(семейство микрокалькуляторов - HP-49G)http://ru.wikipedia.org/wiki/HP_50g

Функциональные возможности:

Язык программирования RPL (Reverse Polish Lisp):LISP-совместимый языкдля создания СКА-ориентированных приложений

Язык программирования HP BASIC:для создания приложений структурногопрограммирования

Огромная библиотека встроенных функций (> 2300) для решения уравнений, выполнения алгебраических ичисленных вычислений

Page 48: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 48

Многообразие реализаций : обзорные материалы

Сравнительный анализ различных СКА:

Сводный перечень СКА (Википедия):http://en.wikipedia.org/wiki/Comparison_of_computer_algebra_systems

Обзорные статьи:Я. ван Хюльзен, Ж. Калме. Системы компьютерной алгебры // В кн.: Компьютерная алгебра: Символьные и алгебраические вычисления. – М.: Мир, 1986. Мысовских В.И. Системы компьютерной алгебры и символьные вычисления // Записки научных семинаров ПОМИ РАН, 2001, том 281.Кулябов Д.С., Кокотчикова М.Г. Аналитический обзор систем символьныхвычислений // Вестник РУДН, серия «Математика. Информатика. Физика», 2007, № 1-2.

Page 49: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 49

План лекции: тема подраздела

Классификация СКАТиповая архитектураБиблиотеки алгоритмови пакеты расширенияПользовательские интерфейсыМногообразие реализацийПерспективные направления развития

Page 50: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 50

Перспективные направления развития

(1) Расширение состававстроенных и программируемых типовматематических объектов;

(2) Интеграция СКАс другими компьютерными системами;

(3) Унификация и объектная ориентацияинтерфейса пользователя;

(4) Программирование символьных вычисленийпроизвольной сложности;

(5) Ускорение работы СКА.

Page 51: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 51

Перспективные направления развития

Направление (1) :

• Принадлежность математического объекта СКА к встроеннымдолжна определяться не случайной практическойнеобходимостью (СКА ранних поколений), а ролью виерархической системе математических абстракций (СКА Axiom).

• Способность к созданию расширений (объектных, структурных, функциональных и т.п.) СКА должна поддерживатьсяинтерфейсом (желательно с помощью объектно-ориентированного, специализированного языкапрограммирования) (СКА Maple, СКА Mathematica).

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

Page 52: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 52

Перспективные направления развития

Направление (2) :• Связь с программами числовой обработки

Связь типа «СКА(СВМ)» или типа СВМ(СКА): вставка «машинных» кодов программна процедурных языках в тело программ аналитических вычислений или наоборот(язык С и СКА Mathematica).Связь типа «СКА+СВМ»: обмен результатами вычислений с помощью файлов.Связь нецелесообразна: разработка специализированной системы смешанных(численно-аналитических) вычислений.

• Генерация текста программ вычисленийПоддержка не одного (СКА Reduce – язык Fortran), а нескольких (СКА Maple, СКАMathematica – языки Fortran и C) целевых языков программирования.Сложно-структурированные математические выражения наглядно создаются вСКА, а затем без ошибок (!) транслируются в строковую форму операторовприсваивания.

• Связь с текстовыми процессорамиПоддержка в СКА общепринятых форматов нетекстовых объектов – формул, графиков, рисунков – обеспечивает либо полную, либо частичную вёрстку научныхдокументов (TEX-формат).

Page 53: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 53

Перспективные направления развития

Направление (3) :

• Для унификации пользовательский интерфейс СКА должениметь те же функциональные возможности, что и интерфейсыдругих сред программирования и проектирования(настройка параметров, редактирование объектов, отладкапроектов и т.п.).

• Для объектной ориентации необходима реализация специальныхклассов объектов, представляющих алгебраические и другиеабстрактные математические категории(тождества, многообразия, исчисления и т.п.).

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

Page 54: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 54

Перспективные направления развития

Направление (4) :

• Увеличение количества встроенных в СКА библиотекшаблонов пользовательских приложений для различныхпредметных областей (СКА Maple).

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

Page 55: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 55

Перспективные направления развития

Направление (5) :

• Постоянное совершенствование способов символьногопредставления математических объектов и алгоритмоввыполнения аналитических преобразований.

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

Page 56: Computer.Algebra@yandex - spbstu.rukspt.icc.spbstu.ru/media/files/2012/course/comp-algebra/CAS_L05.pdf · Компьютернаяалгебра (курслекций) ИгорьАлексеевичМалышев

Курс КОМПЬЮТЕРНАЯ АЛГЕБРА -Лекция 5 56

Спасибо за внимание !

Вопросы ?