Борис Манзон
Едва исчезли со страниц журналов восторженные отзывы на новую версию математического пакета Maple V 4. 0 компании Maple Waterloo, как компания Wolfram Researchпредставила не менее интересный продукт — Mathematica 3. 0. Немного истории для тех, кто недостаточно хорошо знаком с этой программой. Она разработана компанией Wolfram Research Inc , основанной известным математиком и физиком Стефаном Вольфрамом, одним из создателей теории сложных систем. Первая версия программы, появившаяся в 1988 г, стала новым словом в автоматизации математических расчетов. Mathematica отличается охватом широкого круга задач, так как ее разработчики задались целью объединить все известные математические методы, использующиеся для решения научных задач, в унифицированном и согласованном виде, включая аналитические и численные расчеты. За основу был взят специально разработанный язык символьного программирования, который способен оперировать очень широким спектром различных объектов с применением небольшого числа базисных конструкций. ^ ^Однако программа не приобрела большой популярности из-за того, что ее сложно было освоить и невозможно работать без использования объемной документации. Только в 1991 г. , после выхода в свет второй версии, в которой разработчики устранили многие ошибки предыдущей версии, а также применили более дружелюбный интерфейс и включили подсказки по встроенным функциям, программа начала быстро завоевывать популярность. А к моменту выхода Mathematica 3. 0 уже было зарегистрировано более миллиона постоянных пользователей программы. Mathematicа дает возможность специалистам решать большое количество достаточно сложных задач, невдаваясь в тонкости программирования. Благодаря этому программа получила широкое распространение в таких областях, как физика, биология, экономика. Программа также применяется как для выполнения, так и для оформления инженерных проектов. Mathematica является важным инструментом при разработке программного обеспечения. Она может быть модернизирована самим пользователем, так как on носится к открытым программным продуктам Была. разработана примерно сотня профессиональны” приложений, расширяющих возможности системы применительно к конкретным областям деятельности. Программа Mathematica наряду с программами Maple, MatLab и MathCad применяется в качестве базисной для построения курса математики во многих высших как технических, так и гуманитарных учебных заведениях Несколько периодических икании и более двухсот книг посвящено этой программе. Интерфейс
Программа состоит из двух частей —ядра, которое, собственно, и производит вычисления, выполняя заданные команды, и интерфейсного процессора, который определяет внешнее оформление и характер взаимодействия с пользователем и системой. Основнойрабочий документ программы — тетрадь, в которой пользователь записывает все выкладки. Вид рабочей тетради на экране монитора зависит от интерфейсного процессора, реализация которого для разных платформ несколько отличается. Пользовательский интерфейс программы Mathematica 3. 0 сначала кажется несколько примитивным: инструментальная панель — это просто строка меню, а отдельное окно документа выглядит как бы подвешенным . Кроме того, на инструментальной панели отсутствуют кнопки для выполнения часто повторяемых операций, которые были в предыдущей версии. Однако впечатление примитивности интерфейса сразу же исчезает, когда выясняется, что можно подключать настраиваемые кнопочные палитры, которых в программе имеется больше десятка . С их помощью можно выполнять различные функции, а часть кнопок соответствует специальным символам. Всего в программе более 700 математических, языковых и других символов. При нажатии на кнопки с символом последний переносится в рабочий документ на указанное курсором мести. Другие кнопки палитры соответствуют наименованиям ряда функций программы, которые при выборе вводятся в командную строку. При нажатии кнопки алгебраических преобразований предварительно выделенное алгебраическое выражение трансформируется в соответствии с названием выбранной команды, например упрощается командой simplify.
Программа позволяет применять различные стили для оформления документа на экране и вывода его на печать, причем в новой версии стилей может быть значительно больше, чем в предыдущей. Для их изменения предусмотрена специальная палитра. Программа дает возможность отображать математические символы с достаточно высоким полиграфическим качеством в тексте на экране, в командах, а также при выводе на печать . Увеличено количество опций. Возможно создание гипертекстовых связей.
Рабочую тетрадь можно сохранять в HTML-формате, а также в формате полиграфического языка LaTex и некоторых других.
Усовершенствована и расширена система подсказок, имеется интерактивный доступ к полному тексту электронной версии документации, которая состоит из инструкции пользователя, справочника по стандартным дополнениям, учебника для начинающих и демонстрационных файлов. Меню окна справки очень хорошо продумано, что позволяет получить информацию различными путями. Можно получить справку по интересующей теме или функции, а также просмотреть текст всех документов, содержащих введенное ключевое слово. Аналитические расчеты
Умение проводить аналитические расчеты —одно из главных достоинств этой программы, автоматизирующей математические расчеты. Mathematica умеет преобразовывать и упрощать алгебраические выражения, дифференцировать и вычислять определенные и неопределенные интегралы, вычислять конечные и бесконечные суммы и произведения, решать алгебраические и дифференциальные уравнения и системы, а также разлагать функции в ряды и находить пределы . Кроме того, Mathematica имеет стандартные дополнения для аналитических рассчетов, которые будут рассмотрены ниже. Следует заметить, что возможности каждой новой версии программы качественно возрастают. В версии 3. 0 программы команда упрощения алгебраических выражений Simplify дополнена значительно более мощной командой FullSimplify, которая позволяет обрабатывать математические выражения, включающие специальные функции
Расширен спектр математических выражений, для которых аналитически находятся неопределенные и определенные интегралы. Появилась также возможность задавать область изменения параметров в подынтегральных выражениях, что позволяет интегрировать многие выражения, которые в общем случае не имеют первообразной.
Значительно возросло число различных (конечных и бесконечных) сумм и произведений, вычисляемых аналитически, а также аналитически решаемых обыкновенных дифференциальных уравнений и уравнений в частных производных . Из числа других улучшений можно выделить повышение скорости решения задач линейной алгебры. Численные методы
Для тех задач, которые невозможно решить аналитически, Mathematica 3. 0 предлагает большое количество эффективных алгоритмов для проведения численных расчетов. Она позволяет находить конечные и бесконечные суммы и произведения, вычислять интегралы, решать алгебраические и дифференциальные уравнения и системы, задачи оптимизации (линейного программирования, нахождения экстремумов функций), а также задачи математической статистики. При численном решении математических задач наряду с правильностью алгоритмов расчета особую роль играет точность вычислений. В Mathematica 3. 0 реализован адаптивный контроль точности, основанный на выборе внутренних алгоритмов, позволяющих ее максимизировать. В этой версии программы повышена эффективность одно и многомерной интерполяции, оптимизированы алгоритмы численного решения дифференциальных уравнений Добавлены многократное численное интегрирование) а также численное дифференцирование Оптимизированы алгоритмы нахождения экстремумов Поддерживается арифметика интервалов (рис 6)
Осуществлен независимый от конкретной компьютернои платформы механизм ввода и вывода числовых данных без потери точности. Математические функции
Мathernatica 3. 0 позволяет включать в расчеты все известные элементарные функции, а также сотни специальных встроенных функций . Разумеется, пользователь программы может вводить и свои функции как для применения в течение одного сеанса работы так и для постоянного использования. В новой версии 3. 0 добавлены интегралы Френеля ин тегральные гиперболические синус и косинус, обратная функция ошибок, гаммa и бета функции, дополнительная функция Вейерштрасса, эллиптические и родственные с ними функции, функции Матье . Введены числа и полиномы Фибоначчи . Графика и звук
Mathernatica позволяет строить двух и трехмерные графики различных типов в виде точек и линии на плоскости, поверхностей, а также контурные, градиентные (dencity plot), параметрические. Имеется большое количество опций оформления и настройки, например изменение подсветки, цвета, размеров и точки наблюдения . Mathematica выполняет построение графика в три этапа. На первом создается множество графических примитивов, на втором они преобразуются в независимое от вычислительной платформы описание на языке PostScript, а на третьем это описание переводится в графический формат для той системы, на которой установлена Mathematiса. Если первые два этапа осуществляет ядро программы, то последний— интерфейсный процессор. Mathematica позволяет также строить серии картинок, которые могут быть воспроизведены как анимация. Программа содержит функции, позволяющие создавать и воспроизводить различные звуки, а также воспринимает и может анализировать некоторые типы стандартных звуковых файлов. После выполнения команды в рабочей тетради появляется картинка, представляющая собой график синусоид, входящих в аргумент команды, а звуковой файл (так же как и файл анимации) запоминается в документе. Это позволяет сразу после открытия документа воспроизвести их без повторного вычисления. В новой версии 3. 0 программы заметно улучшено текстовое оформление графиков. Теперь заголовки и текст меток на графиках могут быть представлены с достаточно высоким полиграфическим качеством (правильное изображение матсматических символов). Возможно также включение в сам график форматированных текстовых строк. Ячейки рабочего документа теперь автоматически конвертируются в EPS, TIFF, GIF и другие графические форматы. Программирование
Входной язык Mathematica содержит большое количество конструкций, позволяющих для каждой конкретной задачи выбрать оптимальный метод программирования. Помимо обычного процедурного программирования с применением условных переходов и операторов цикла, имеется еще несколько методов.
• основанный на операциях со списками , этот метод использует особенности универсального объекта программы—списка выражений, с которыми можно производить математические операции, как с алгебраическими выражениями, при этом заданные операции выполняются всеми элементами списка, • основанный на операциях над строками (string-based),
• функциональною программирования (functional programming), позволяющий создавать сложные функции и последовательности вложенных функций; • на базе правил преобразования выражений (rule-based); • объектно-ориентированный (object-oriented) .
В каждой конкретной программе пользователь может одновременно применять несколько методов или даже все перечисленные. Серьезным недостатком предыдущей версии программы было неэкономное использование памяти компьютера. В третьей версии программы типичные операции ядра осуществляются быстрее и с меньшим использованием памяти, чем во второй Для ускорения загрузки уменьшено количество первоначально загружаемых в память функций Введены новые мощные операторы символьного программирования и усовершенствованные операторы для манипулирования строками. Появилась возможность компилировать вычисляемые выражения и процедуры При этом скорость вычислений может быть сравнима со скоростью такой же процедуры, написанной на языке Си или Фортран, или даже выше. Стандартные дополнения
Mathematica 3. 0 содержит 11 стандартных дополнений, включающих подпрограммы (пакеты), значительно расширяющие функциональные возможности в таких областях, как алгебра, аналитические и численныс расче-гы, графика, дискретная математика, теория чисел и статистика. Стандартные дополнения могут загружаться по мере надобности. Для загрузки пакета используется соответствующее название, включающее имя дополнения и имя пакета из данного дополнения. Рассмотрим подробнее стандартные дополнения. Алгебра
В это дополнение входят пакеты, позволяющие задавать различные алгебраические поля и оперировать в них, а также несколько пакетов, расширяющих функциональность программы при оперировании с полиномами и нахождении их корней. В новой версии оно пополнилось пакетами для решения некоторых типов алгебраических неравенств и симметричных полиномов и, кроме того, добавлена Гамильтонова алгебра кватернионов и элементы полей Пигуа. Вычисления
Это дополнение содержит пакеты, позволяющие расширять возможности программы при вычислении интегралов, нахождении прсделов, решении дифференциальных уравнений и задач линейной алгебры в различных системах координат, а также включает команды преобразования Фурье и Лапласа, обобщенные функции, вариационные методы. В новой версии оно пополнилось пакетом для нахождения полных интегралов и дифференциальных инвариантов нелинейных уравнений в частных производных. Дискретная математика
Дополнение предлагает примерно 200 функций для проведения исследований в области комбинаторики и теории графов; вычислительную геометрию, которая содержит несколько геометрических функций для непараметрического анализа данных; пакеты для оперирования с функциями от целых чисел, в частности для решения рекуррентных уравнений, выполнения преобразований. Графика
Дополнение включает 21 пакет. Оно значительно расширяет возможности программы при построении графиков и анимаций. Введены новые типы: логарифмические графики, графики тел вращения, полярные, контурные, матричные графики, трехмерные параметрические, двух- и трехмерные графики векторных полей, графики неявнозаданных функций и др. Появилась возможность отображать ортогональные проекции трехмерных графических объектов на координатные плоскости . Добавлены также функции для графического представления комплексных функций. Геометрия
Геометрическое дополнение содержит пакеты, включающие функции для задания параметров правильных многоугольников и многогранников, а также функции, обеспечивающие вращение на плоскости и в пространстве. Линейная алгебра
В это дополнение входят функции для создания ортогональных векторных базисов, решения матричных уравнений, разложения матриц и выполнения других операций с матрицами. Оно включает пакеты Cholcsky, GaussianElimmatlon, MatrixManipulation, Orthogonalizaltion, Tridiagonal. Теория чисел
Функции, относящиеся к теории чисел, широко представлены в ядре программы Mathematica, например PrimePi, EulerPhi, MoebiusMu и DivisorSigma. Дополнение теории чисел расширяет этот список функций. В нее включены пакеты для доказательства простоты чисел, разложения целых чисел на множители. Имеются функции для аппроксимации действительных чисел рациональными и полиномов с действительными корнями полиномами с целыми коэффициентами. Пользуясь дополнениями, можно найти разложение действительного числа в бесконечную дробь или произвольное разложение действительного числа разбить на непериодическую и периодическую части. Поддерживаются также такие функции теории чисел, как Ramujan и Siegel. В новой версии появились возможности для нахождения базисных элементов для произвольных алгебраических расширений рациональных чисел. Приближенные вычисления
Это дополнение расширяет список встроенных функций программы Mathematica для приближенных численных расчетов. Оно содержит средства подгонки функциями (полиномом, сплайнами, тригонометрическими), численные версии некоторых аналитических функций ядра (ND, NLiunit, NResldue, NSencs), функции численного интегрирования (CauchyPrincipalValue, Listintegrate, IntegrateInterpolationFunction), аппроксимации отношением полиномов, поддержки численного решения дифференциальных уравнений (BesscIZeros, Butcher, Order-Star), а также альтернативный способ нахождения корней (FindRout) с использованием методов интервалов или интерполяции. В последнюю версию введены пакеты для численного нахождения вычетов и разложений комплексных функций. Статистика
Это дополнение включает методы статистической обработки данных. В нем содержатся функции известных непрерывных и дискретных статистических распределений. В новую версию добавлены пакеты подгонки и сглаживания данных, классической и робастной описательной статистики, линейной и нелинейной регрессии с диагностикой. Утилиты и разное
Дополнение “утилиты” содержит команды для контроля времени вычислений, оптимизации использования памяти и др. К “разному” относятся те функции, которые трудно классифицировать, в частности функции, расширяющие аудиовозможности системы, — модуляция звуковых волн и музыкальные гаммы. В “разное”входят также календарные данные, физические постоянные, единицы измерения физических величин, свойства химических элементов и, кроме того, различные географические данные и даже функции для построения географических карт. Пакеты и отдельные функции из них могут загружаться по мере необходимости. Если же какой-либо пакет часто используется, то его можно инициализировать при загрузке ядра программы.
В новой версии доступна полная документация по стандартным дополнениям в интерактивном режиме. Профессиональные приложения.
Для программы Mathematica помимо стандартных дополнений разработано большое количество профессиональных приложений - пакетов, . Расширяющих возможности программы в специальных областях. Библиотека приложений в настоящее время содержит 23 различных пакета, из которых 18 разработано корпорацией, а остальные - другими разработчиками. Причем эта библиотека очень быстро пополняется.
Перечислим только некоторые из профессиональных приложений, демонстрирующих их разнообразие: Structural Mechanics, Experimental Data Analyst, Time Series, Finance Essentials, Fuzzy logic и т. д.