Каталог :: Программирование и комп-ры

: программа 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 и т.д.