Программа Mathematics

Борис Манзон

Едва исчезли со страниц журналов восторженные от­зывы на новую версию математического пакета 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 применяется в качестве базис­ной для построения курса математики во многих высших как технических, так и гуманитарных учебных заведени­ях Несколько периодических икании и более двухсот книг посвящено этой программе.

Интерфейс

Программа состоит из двух частей — ядра, которое, собственно, и производит вычисления, выполняя заданные команды, и интерфейсного процессора, который определяет внешнее оформление и характер взаимодействия с пользователем и системой. Основной рабочий документ программы — тетрадь, в которой поль­зователь записывает все выкладки. Вид рабочей тетради на экране монитора зависит от интерфейсного процес­сора, реализация которого для разных платформ не­сколько отличается.

Пользовательский интерфейс программы Mathemati­ca 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 и т.д.