Научная Петербургская Академия

: программа Mathematics

: программа Mathematics

Борис Манзон

Едва исчезли со страниц журналов восторженные

от­зывы на новую версию математического пакета

Maple V 4.0 компании Maple Waterloo, как компания Wolfram Research

представила не менее ин

тересный продукт — Mathematica 3.0.

Немного истории для тех, кто недостаточно хорошо знаком с этой программой.

Она разработана компанией Wolfr

am Research Inc , ос­но

ванной известным мат

ематиком и физиком Стефаном Вольфрамом, одним из

создателей теории сложных систем. Первая версия программы, появившаяся в 19

88 г, стала но­вым словом в автоматизации

математических расче

тов.

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

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

расчетов. Она позволяет находить конечные и бесконеч­ные суммы и произведения,

вычислять интегралы, решать алгебраические и дифференциальные уравнения и

системы, задачи оптимизации (линейного программиро­вания, нахождения

экстремумов функций), а также зада­чи математической статистики. При

численном решении математических задач на­ряду с правильностью алгоритмов

расчета особую роль играет точность вычислений. В Mathemat

ica 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 и т.д.



(C) 2009