Когда
дело касается математики, в пакетах специализированного программного
обеспечения нет недостатка. Математика весьма популярна среди
программистов и аналитиков, что приводит к возникновению широкого
выбора разнообразных инструментов.
Математика является королевой наук.
Область коммерческого использования математических рабочих станций
велика: математика правит миром, от простых инженерных задач до
разработки лекарств и от генной терапии до астронавигации. Существует
множество компьютерных программ, которые помогают в решении
математических проблем в различных областях человеческой деятельности.
В оставшейся части статьи описываются некоторые коммерческие системы и
системы с открытым исходным кодом, которые могут показаться вам
полезными. Для всех описанных систем имеются посвященные им
Web-страницы, ссылки на которые приведены в разделе Ресурсы данной статьи.
Числовые калькуляторы
Наиболее
типичные математические инструменты рабочих станций UNIX имеют форму
калькуляторов или более совершенных электронных таблиц, таких как GNU
Calc. Правила арифметики просты, и все эти инструменты неукоснительно
им следуют. Почти каждый полнофункциональный пакет с графическим
интерфейсом содержит по меньшей мере один калькулятор, а иногда и
несколько версий калькуляторов.
Проект GNU также
предоставляет счетные инструменты для загрузки. Среди них можно
отметить GNU Calc, GNU Plot, ATLAS, Choose и более 4000 других
математически-ориентированных программ. Ознакомьтесь с разделом Ресурсы для получения более полного перечня.
Символьная математика
Как
вы учили в средней школе, математика включает в себя намного больше,
чем простые операции с числами. Символьная запись переменных,
замещающих числа, – таких переменных, как x, y и z, декартовой системы
координат, принципов разложения на множители и мира интегрального и
дифференциального исчисления, – является частью богатой и многообразной
области, которая требует в такой же степени богатого и разнообразного
содержания компьютерных ресурсов. Наиболее часто употребляемое название
для группы программ, разрабатываемых для данных задач, – системы
компьютерной алгебры (CAS). На рынке представлены как коммерческие, так
и имеющие открытый исходный код программы CAS, наиболее популярные из
которых описаны ниже.
Но в большинстве случаев
возможности манипулировать символами недостаточно. Диаграммы могут
рассказать нам намного больше, чем это мог бы сделать простой список
точечных значений заданных координат. Большинство имеющихся систем для
компьютерной алгебры также включают механизм диаграмм, позволяющий
визуализировать данные, которые наносятся на диаграмму.
Образовательные ресурсы
Многие
компьютерные программы пригодны для помощи в решении числовых и
символьных математических задач, но существуют также и программы,
которые могут помочь вам узнать больше о математике. Серия программ
группы MetaMath является превосходной отправной точкой (см. раздел Ресурсы).
Для новичка или для тех, кто считает, что не имеет склонности к данной
области, математика и программы, описанные в данной статье, также могут
оказаться занимательными. Даже простая загрузка и тестирование
некоторых из этих программ может вдохновить вас на то, чтобы стать
экспертом в некоторой области, которая обогатит вашу жизнь больше, чем
какая бы то ни было компьютерная игра.
Коммерческие пакеты программ
Ниже
следует краткий обзор некоторых из наиболее часто используемых
коммерческих систем CAS. Если какая-то из них заинтересует вас, то
более подробную информацию можно найти на Web-сайтах, перечисленных в
секции Ресурсы.
Derive.
Software Warehouse является одним из пионеров в создании символьного
математического программного обеспечения, разработанного для
использования на первых рабочих станциях. Созданная в 1979 году, когда
компьютерная революция только началась, а компьютерные алгебраические
системы были доступны только на больших, главных компьютерах
вычислительных центров, использовавших терминалы с разделением времени,
компания разработала программу, которая называлась muMATH, чтобы
пользователи ПК могли использовать простые калькуляторы и решать
математические задачи на небольших компьютерах с ограниченными
возможностями. Впоследствии система muMATH была заменена намного более
совершенной системой Derive. Derive написана на Lisp, распространненом
языке программирования, особенно подходящем для обработки данных,
основанной на правилах и обязательной для перевода одного абстрактного
математического выражения в другое.
Fermat.
Эта патентованная система компьютерной алгебры, являющаяся shareware,
названа в честь одного из самых известных из когда-либо живших
математиков – Пьера де Ферма. Она используется в ряде компьютерных
систем и особенно подходит для арифметики, связанной с целыми числами
произвольной длины и дробями, графиками, а также матричной и
полиномиальной алгеброй. Fermat является быстродействующей программой.
В рекламе компании говорится, что, если вам нужно найти
характеристический многочлен матрицы размером 400 x 400 над множеством
Q, вам нужна Fermat.
Magma.
Распространяемая по лицензии с возмещением издержек разработки, Magma
является высокоэффективной системой, разработанной для решения
алгебраических задач. Она включает набор функциональных возможностей в
области теории групп наравне с базами данных групп, асимптотически
быстрых алгоритмов для целочисленной и полиномиальной арифметики, а
также несколько современных библиотек для более сложной математики.
Maple.
Разработанный и продаваемый компанией Waterloo Maple Inc. (Maplesoft)
пакет математического программного обеспечения Maple был впервые создан
в 1981 году Symbolic Computation Group в университете Ватерлоо в
Ватерлоо, Онтарио, Канада. Maple – пакет программ, который выглядит
впечатляюще и ориентирован на работу с трехмерными графиками и
математическими формулами. Он объединяет интерфейс и язык
программирования в динамический инструмент для решения как числовых,
так и символьных задач. Во многих университетах Maple является
стандартом для обучения математическим понятиям; компания предлагает
студенческие и профессиональные версии этого программного обеспечения.
MathCAD.
PTC – компания, предоставляющая услуги в области инжиниринга, –
приобрела права на MathCAD в 2006 году. MathCAD, аналогичный Maple по
своей простоте, имеет более продвинутый интерфейс, который позволяет
инженерам вводить данные и отображать на экране множество формул
наравне с графиками и текстом. MathCAD объединяет обширную библиотеку
функциональных возможностей, включая исчисления, преобразования
Лапласа, функции Бесселя, статистику и финансовые функции.
Mathematica.
Компания Стивена Вольфрама, Wolfram Research, разработала Mathematica в
конце 1980-х годов, уделив особое внимание аспектам программирования
данного инструмента. Он предлагает гибкую комбинацию процедурного и
функционального программирования и представляет недетерминированный
метод для автоматического переписывания формулы. Это мощный пакет
программного обеспечения с обширной и разнообразной библиотекой
выполняемых функций, предлагающий уникальный способ решения проблем и
имеющий множество образцов.
Reduce.
Reduce является еще одной универсальной системой компьютерной алгебры,
которая была создана путем сотрудничества многих ученых. Эта система
была создана в 1960 году Энтони Хиэрном. Сейчас Reduce является одной
из любимых систем многих членов научного сообщества. Она
распространяется по цене, возмещающей издержки разработки, и обычно
включает исходный код дистрибутива.
Пакеты программ с открытым исходным кодом и бесплатное программное обеспечение
В
этом разделе рассматриваются программы с открытым исходным кодом. Ниже
следует краткий обзор некоторых наиболее часто используемых CAS-систем,
исходные коды которых лицензируются одной из распространенных лицензий
на открытый код. Если какая-либо система заинтересует вас, более
подробную информацию можно найти на Web-сайтах, перечисленых в разделе Ресурсы.
Axiom.
Пригодная для изучения различных математических алгоритмов система
компьютерной алгебры с открытым исходным кодом, известная как Axiom,
выпускается под измененной лицензией Berkeley Software Distribution
(BSD). Она включает высокотипизированную иерархию математических
объектов и часто используемых в программировании структур данных для
группирования объектов и контроля над ними. Написанная на специальном
языке программирования A#, Axiom является подходящим инструментом для
тех, кто намерен изучить алгоритмические модели.
CoCoA.
Computations in Commutative Algebra (CoCoA) является еще одной
бесплатной системой компьютерной алгебры для работы с большими целыми
числами, рациональными числами и многочленами. Она предоставляет
полезную библиотеку математических функциональных возможностей для
специальных C++ программ.
Dcas.
Область компьютерной алгебры предлагает большое и разнообразное число
методик почти для каждого аспекта изучения математики. Существует много
способов представления математических объектов в программах, и система
Dcas Мартина Йохансена показывает, насколько различными могут быть эти
методики. Dcas включает метод использования тождеств как правил для
управления алгебраическими выражениями. Dcas стоит того, чтобы
ознакомиться с ней; вполне возможно, что вам она покажется идеальным
способом для решения задач в области вашей деятельности.
DoCon.
Функциональный язык программирования, известный как Haskell, включает в
себя такую программу для символьной математики, как DoCon. По
документации, представленной на Web-сайте компании (см. раздел Ресурсы),
DoCon включает в себя линейную алгебру, многочленные наибольшее общие
делители, разложение на множители, Grobner bases и поддерживает построение по доменам
– разложение на множители, многочлены, кольцо вычетов и т.д. Она имеет
открытый исходный код и может стать подходящим инструментом для
приложений, которые вы собираетесь разработать.
Eigenmath.
Написанная Джорджем Уэйтом на языке C, программа Eigenmath является
простой, легкой в использовании системой компьютерной алгебры. Так как
в ней есть открытый исходный код, она является полезным инструментом
для студентов, которые только начинают изучать системы компьютерной
алгебры.
GiNaC. GiNaC, в
отличие от большинства других систем компьютерной алгебры, не
предоставляет графического интерфейса пользователя (GUI) для ввода
выражений, поддерживая ввод выражений на родном C++ (язык разработки).
Она обрабатывает алгебраический синтаксис, используя родную C++
объектно-ориентированную технику перегрузки оператора. Она также
является одним из самых странных имен в области, где преобладают
странные имена!
Jscience.
Будучи мощной, основанной на Java™ библиотекой физических и
математических функций, пакет программ Jscience нацелен на помощь в
успешной совместной деятельности через научные домены, так как он
предоставляет единую архитектуру для всей разработки. Это высокая цель,
если не сказать больше, и я бы не стал держать пари против компании,
которая к этой цели идет.
Macaulay.
Компьютерная алгебраическая система Macaulay пригодна для многочленных
вычислений с акцентом на подсчетах, основанных на исчислениях Grobner
basis. Она была разработана для решения проблем простого синтаксиса и
описывается как алгебраический машинный язык.
Mathomatic.
Данная программа не имеет встроенных возможностей программирования и
предназначена для использования в качестве простого калькулятора
символьной математики. Она компилируется в любой системе, имеющей
C-компилятор, стандартные библиотеки C и утилиту make системы UNIX.
Maxima.
Как и большинство систем компьютерной алгебры, Maxima написана на языке
Lisp. Основанная на коммерческом пакете программ Macsyma, Maxima
включает в себя язык программирования группы ALGOL и больше всего
подходит для обучения концепциям программирования в компьютерной
алгебре. Она предоставляет произвольную арифметику, так что целые и
рациональные числа ограничены в размере только доступной памятью
системы.
PARI/GP. PARI
является быстродействующей C-библиотекой символьных функций для
разложения на множители, алгебраической теории чисел, эллиптических
кривых, матриц и трансцендентных функций. GP является интерактивной
оболочкой, которая предоставляет доступ к функциям PARI. При
использовании компилятора gp2c быстродействующие программы могут быть
созданы для проблемных доменов.
SAGE.
Software for Algebra and Geometry Experimentation (SAGE) написана на
Python и использует интерактивную Python-оболочку в качестве интерфейса
пользователя. SAGE уникальна тем, что она может функционировать как
интегрирующее устройство для других разнообразных компьютерных
алгебраческих систем, что позволяет пользователю усиливать
индивидуальные мощности различных пакетов программ.
SINGULAR.
Для перестановочной алгебры, алгебраической геометрии и теории
сингулярности система компьютерной алгебры SINGULAR предоставляет как
большое количество алгоритмов в ядре пакета программ, так и общие
библиотеки. Она также включает в себя исчерпывающую документацию.
SINGULAR стоит того, чтобы опробовать ее, особенно если вы
заинтересованы в теории сингулярности.
Yacas.
Yet Another Computer Algebra System (Yacas) имеет превосходный
интерфейс пользователя и другие преимущества программного обеспечения с
открытым исходным кодом. Ввод в систему может осуществляться на ASCII
либо OpenMath; у программы также имеется пакетный режим.
Заключение
Математика
– королева наук, и нет недостатка в инструментах, которые помогают вам
в решении математических задач, с которыми вы сталкиваетесь в
какой-либо области деятельности. Работаете ли вы статистиком страхового
общества или астронавигатором, который выбирает оптимальный путь для
космического корабля, летящего на Плутон, существуют программы, которые
помогут вам в поисках решения задачи.
Оригинал статьи - http://www.ibm.com/developerworks/ru/library/au-unixmath/index.html
|