|
| -
Специальные математические функции являются решениями линейных дифференциальных
уравнений специального вида или представлениями особых интегралов, которые не
могут быть выражены через элементарные функции.
-
Ортогональные многочлены Одними из широко распространенных специальных функций
являются ортогональные многочлены (полиномы).
-
Интегральные показательные и родственные им функции Следует обратить внимание
на то, что большая часть этих функций может иметь комплексный аргумент. Для получения
численных значений функций нужно задавать аргумент в форме вещественного числа
или 1 комплексного числа с вещественными действительной и мнимой
частями.
- Гамма- и полигамма-функции
Поведение эйлеровой гамма-функции в комплексной плоскости довольно интересно
-
Функции Бесселя являющиеся решениями линейных дифференциальных уравнений вида
z 2 y" + zy'+ (z 2 - п 2 )у = 0, широко
используются в анализе и моделировании волновых процессовСледует отметить, что
число этих функций в ядре новых
версий даже несколько сокращено по сравнению с предшествующими версиями.
Эллиптические функции (интегралы) широко используются в оптических расчетах
и в астрофизике. На рис. 6.9 показаны графики некоторых эллиптических функций.
- Функции Эйри представляют
собой независимые решения линейного дифференциального уравнения w"- zw =
0.
- Специальные числа
и полиномы По числу встроенных специальных математических функций Mathemafica
заметно превосходит другие системы компьютерной математики.
- Вычислять
ортогональные многочлены.
-
Работа с периферийными устройствами Если пользователь использует систему Mathematica
для выполнения чисто математических расчетов, то он может ничего не знать о подавляющем
большинстве описанных в этом уроке функций.
-
Функции задания формата вывода Далее отметим функции, меняющие формат представления
выражений. Все они имеют в своем названии слово Form (форма).
-
Удаление введенных в ходе сессии определений Мы уже не раз отмечали возможность
уничтожения введенных в ходе сессии определений
- Потоки
и файлы Система Mathematica имеет развитые средства для работы с потоками
(streams) и файлами (files). Под потоком подразумевается непрерывная последовательность
данных, циркулирующих внутри компьютера.
-
Использование файлов других языков программирования Эта возможность особенно
существенна при использовании программ на языках программирования С (расширение
.me), Fortran (расширение .mf) и ТеХ (расширение .mtex), для форматов которых
Mathematica имеет средства конвертирования выражений (CForm, FortranForm и TexForm
соответственно).
- Другие
функции для работы с файлами В целом средства системы Mathematica обеспечивают
возможности работы с различными файлами, присущие MS-DOS, без выхода из среды
системы.
- Общесистемные
функции
Приведенные примеры показывают,
что благодаря системным функциям можно извлечь достаточно полную информацию о
текущих параметрах системы и использовать ее для создания специальных алгоритмов
вычислений (например, для генерации последовательности псевдослучайных чисел со
случайной базой, заданной системным временем) или организации развитого диалога
с системой. -
Графика и звук Графика, как важнейшее средство визуализации вычислений, всегда
была козырной картой системы Mathematica и во многом способствовала ее высокой
репутации как мирового лидера среди систем компьютерной математики.
- Двумерная
графика Концептуально графики в системе Mathematica являются графическими
объектами, которые создаются (возвращаются) соответствующими графическими функциями.
По мере усложнения задач, решаемых пользователем, его рано или поздно
перестанут устраивать графики, получаемые при автоматическом выборе их стиля
и иных параметров. Еще одним важным средством настройки графиков являются
графические директивы. Синтаксис их подобен синтаксису функций. Построение
графика по точкам — функция
List Plot При построении графиков
часто требуется изменение их вида и тех или иных параметров и опций. Этого можно
достичь повторением вычислений, но при этом скорость работы с системой заметно
снижается. Примитивами двумерной
графики называют дополнительные указания, вводимые в функцию Graphics [primitives,
options], которая позволяет выводить различные примитивные фигуры без задания
математических выражений, описывающих эти фигуры. Графики функций, заданных
в параметрической форме
- Трехмерная
графика, называемая также ЗD-графикой, представляет в аксонометрической проекции
объемное изображение поверхностей или фигур, которые описываются либо функциями
двух переменных, либо параметрически заданными координатами объектов. Функцией
двух переменных f(x, у) может
описываться плотность некоторой среды. Для построения графиков плотности используются
следующие графические функции Построение
графиков поверхностей — функция Plot 3D Для модификации трехмерных графиков
могут использоваться многочисленные
опции и директивы, список которых дан в приложении
Опция Viewpoint позволяет включить при построении отображение перспективы
и изменять углы, под которыми рассматривается фигура Таким образом, как и ранее,
применение опций позволяет легко управлять
характером и типом графиков, придавая им вид, удобный для заданного применения
Часто трехмерная поверхность задается массивом своих высот (аппликат). Для построения
графика в этом случае используется графическая
функция ListPlotSD
-
Специальные средства визуализации и звука Системы Mathematica содержат множество
средств, повышающих наглядность представления (визуализации) результатов вычислений
— как простых, так и сложных. К ним можно отнести особые виды трехмерной графики,
используемые при параметрическом задании поверхностей, в том числе пересекающихся
в пространстве, а также графики объемных фигур — полиэдров. Другой пример —
объемное кольцо с сечением, напоминающим знак бесконечности (бесконечность)
Построение фигур, пересекающихся
в пространстве Наряду с построением графиков поверхностей, заданных аналитическими
выражениями, имеется возможность создания графиков из различных элементарных геометрических
объектов, называемых примитивами.
Построение полиэдров Несмотря
на обширные возможности встроенных в ядро системы Mathematica графических функций,
примитивов и опций, они не способны охватить все многообразие
графических приложений в математике.
Вставка графических и иных объектов Mathematica, в отличие от других систем
компьютерной математики, имеет средства для
синтеза звука. Сопровождение звуком описания некоторых математических закономерностей
(например, биений, развития взрывных процессов и т. д.)
-
Компьютерная алгебра Математические выражения — основа описания алгоритмов
вычислений. Фактически, вся символьная математика основана на тех или иных видах
преобразований выражений.
-
Работа с выражениями Одним из важнейших понятий системы Mathematica является
математическое выражение, или просто выражение — ехрг (от английского слова expression).
Работа с математическими выражениями в символьном виде — основа основ символьной
математики. Основные формы
записи выражений Удаление
элементов выражения В процессе преобразования выражений с ними возможны и иные
манипуляции При создании
программного обеспечения на языке Mathematica, а иногда и в ходе диалоговой работы
с системой необходим контроль
за некоторыми свойствами выражений Из описания указанных функций вытекает, что
они наряду с полной формой могут задаваться
укороченной формой. Использование подстановок при определении функций позволяет
легко реализовывать рекуррентные
алгоритмы, то есть алгоритмы, при которых очередной шаг вычислений основан
на определенном преобразовании предшествующих шагов. Приведем еще ряд примеров
действия функций Apply, Map
и Nest. Инверсными функциями
называют функции, полученные в результате обращения заданных функций. Например,
для функции Sin [x] инверсной будет ArcSin [х] и т. д. Задание
математических отношений
-
Функции компьютерной алгебры Системы компьютерной алгебры имеют несколько
характерных для них функций, выполняющих достаточно сложные преобразования выражений.
Функция FullSimplify, область
применения которой в Mathematica 4 заметно расширена, обладает заметно большими
возможностями, чем функция Simplify. Расширение, или
раскрытие, выражений — еще одна типовая операция компьютерной алгебры. По
смыслу она противоположна упрощению выражений. Функция
приведения Collect Применение рассмотренных функций расширяет
круг задач, решаемых с применением символьных преобразований.
Полиномом называют выражение, состоящее из нескольких частей одного вида
Разложение чисел, математических выражений и особенно полиномов на простые
, множители является столь же распространенной операцией, что и функции Simplify,
Collect и Expand. Для работы
с полиномами имеется множество функций, по большей части достаточно очевидных
для знакомого с математикой пользователя Выше была описана сравнительно немногочисленная
группа функций для работы с выражениями — их упрощения, расширения, выделения
множителей и т. д. Эти функции способны решать
большинство повседневных задач, связанных с аналитическими преобразованиями
выражений.
- Записывать
выражения в разной форме
-
Основы программирования Ранее не раз говорилось, что Mathematica, в сущности,
является диалоговым языком программирования сверхвысокого уровня.
-
Методы программирования Такие мощные системы, как Mathematica, предназначены,
в основном, для решения математических задач без их программирования большинством
пользователей. Однако это вовсе не означает, что Mathematica не является языком
(или системой) программирования и не позволяет при необходимости программировать
решение простых или сложных задач, для которых имеющихся встроенных функций и
даже пакетов расширений оказывается недостаточно или которые требуют для реализации
своих алгоритмов применения типовых программных средств, присущих обычным языкам
программирования. Надо также отметить, что
язык системы позволяет разбивать программы на отдельные модули (блоки) и хранить
эти модули в тексте документа или на диске Возможно создание полностью самостоятельных
блоков — именованных процедур и функций с локальными переменными.
-
Образцы и их применение Образцы (patterns) в системе Mathematica служат для
задания выражений различных классов и придания переменным особых свойств, необходимых
для создания специальных программных конструкций, таких как функции пользователя
и процедуры.
- Функции
пользователя Понятие функции ассоциируется с обязательным возвратом некоторого
значения в ответ на обращение к функции по ее имени с указанием аргументов (параметров)
в квадратных скобках. Иногда может потребоваться
создание функции, не имеющей имени (например, если функция будет использоваться
только один раз, сразу же после ее создания).
-
Суперпозиция функций При функциональном программировании часто используется
суперпозиция функций. Функции
Fixed Point и Catch Реализация рекурсивных и
рекуррентных алгоритмов
-
Пример программирования графической задачиГрафические задачи составляют значительную
часть задач, решаемых с помощью Mathematica. С точки зрения программирования эти
задачи не имеют особой специфики
-
Использование процедур В основе процедурного программирования лежит понятие
процедуры и типовых средств управления — циклов, условных и безусловных выражений
и т. д. Процедурный подход — самый распространенный в программировании, и разработчики
Mathematica были вынуждены обеспечить его полную поддержкуМногие задачи в системе
Mathematica решаются с использованием
линейных алгоритмов и программ. Они могут быть представлены непрерывной цепочкой
выражений, выполняемых последовательно от начала до конца. Циклы
типа For Директивы-функции прерывания и
продолжения циклов Для подготовки полноценных программ помимо средств
организации циклов необходимы и средства для создания разветвляющихся программ
произвольной структуры. Обычно они реализуются с помощью условных выражений, позволяющих
в зависимости от выполнения или невыполнения некоторого условия (condition) выполнять
те или иные фрагменты программ. Для организации ветвления по многим направлениям
в современных языках программирования используются
операторы-переключатели. В целом, условные выражения в языке программирования
системы Mathematica позволяют реализовать любой вид ветвления в программах. Однако
иногда бывает полезно без лишних раздумий указать в программе явный переход к
какой-либо ее части. Для этого используется
оператор безусловного перехода Goto [tag]
-
Проблемы совместимости Мы уже не раз обращали внимание на то, что при создании
документов нередки конфликты между переменными, назначаемыми пользователем, и
переменными, входящими в программы ядра, между функциями пользователя и встроенными
функциями, между их заголовками и т. д. Для разрешения подобных противоречий в
системе Mathematica введен особый
механизм контекстов. Напомним, что под контекстом подразумевается некоторое
разъяснение характера связанных с контекстом объектов.
-
Подготовка пакетов расширений системы Mathematica Как уже отмечалось, система
Mathematica позволяет вводить константы, переменные и функции со своими именами
— идентификаторами. Между
функциями можно задавать различные отношения, в том числе и те, которые не соответствуют
правилам, заданным в ядре системы Примеры подготовки
пакетов расширений Пакет реализации метода
Рунге—Кутта Пакет символьных преобразований
тригонометрических функций Пакет вычисления функций
комплексного переменного Следующий пример иллюстрирует подготовку
графического пакета расширения, который строит графики ряда функций с автоматической
установкой стиля линий каждой кривой. Разумеется, эти примеры не исчерпывают
всего разнообразия пакетов расширений. В сущности, они не дают ничего нового,
поскольку приведенные листинги являются просто упрощением гораздо более полных
и мощных пакетов, уже входящих в систему
Средства создания пакетов расширений
Текстовые сообщения и комментарии
-
Создание средств визуального программирования Под визуально-ориентированным
программированием обычно понимается автоматическая генерация кодов программ на
некотором языке программирования при активизации различных графических объектов
— чаще всего кнопок с наглядным изображением программируемых действий или с надписями,
указывающими на-такие действия.
-
Отладка и трассировка программ Отладка программ, за исключением самых простейших,
дело далеко не простое. Начальный опыт программирования на любом языке приходит
спустя годы практической работы с ним. Эти сроки намного сокращаются, если пользователь
всерьез знаком хотя бы с одним, а лучше с несколькими языками программирования.
- Математические
пакеты расширения Пакеты расширения системы Mathematica (Add-ons) являются
наборами файлов с расширением .т, написанными на языке программирования системы
и объединенными под именами соответствующих пакетов.
-
Пакет алгебраических функций Algebra содержит ряд новых функций для работы
с неравенствами, ограниченными полями и полиномами. Функции для представления
комплексных данных — Relm
Оценка интервалов изоляции корней полиномов —
Rootlsolation Если конечные поля — понятие достаточно экзотическое, то полиномы
встречаются сплошь и рядом во многих математических и научно-технических расчетах.
В пакете расширения Algebra определен ряд новых
операций над полиномами. Преобразование полиномов в схему
Горнера — Horner
-
Пакет вычислительных функций Calculus Пакет расширения Calculus содержит представительный
набор функций для решения дифференциальных уравнений, задания функций единичного
скачка и импульса, выполнения операций с векторами, преобразований Фурье и Лапласа,
выполнения спектрального анализа и синтеза, расширенного вычисления пределов и
проведения аппроксимаций аналитических функций.
Дельта-функция Дирака — DiracDelta Улучшенное
вычисление пределов — Limit Подпакет VectorAnalysis содержит множество функций,
используемых при выполнении
векторного анализа. Здесь надо иметь в виду, что речь идет не о векторах как
представителях одномерных массивов, которые рассматривались ранее. Помимо функций
для задания и преобразования систем координат подпакет Vector An a lysis содержит
ряд функций собственно
векторного анализа Подпакет VariationaLMethods содержит функции для реализации
вариационных методов.
-
Пакет дискретной математики DiscreteMath Пакет DiscreteMath задает набор функций
дискретной математики. Это прежде всего функции комбинаторики и работы с графами
(более 230 функций). Mathematica имеет самые обширные возможности решения задач,
связанных с графами. Задание
графов и манипуляции с ними также включены в пакет комбинаторики. Они представлены
четырьмя группами функций. Функции
вычислительной геометрии — ComputationalGeometry
Дискретные функции единичного скачка и импульса — KroneckerDelta
Дискретные перестановки — Permutations Подпакет Tree содержит функции создания
и применения древовидных структур, именуемых
деревьями
- Геометрические
расчеты — пакет Geometry В этом разделе описан пакет Geometry, содержащий
ряд функций, полезных при выполнении геометрических расчетов.
-
Линейная алгебра — пакет LinearAlgebra добавляет ряд новых функций, полезных
при решении сложных задач линейной алгебры.
Операции с матрицами — MatrixManipulation Ортогонализация и нормализация —
Ortogonalization
-
Расширение в теории чисел — пакет NumberTheory Мы уже описывали уникальные
возможности систем Mathematica 3/4 в области обработки чисел и численных вычислений.
Эти возможности существенно расширяет пакет NumberTheory, содержащий функции,
реализующие алгоритмы теории чисел. Улучшенное разложение на
простые множители — FactorlntegerECM Работа с
простыми числами - PrimeQ
Создание рядов Рамануджанат-Дирихле — Ramanujan
Нахождение полинома, дающего заданный корень — Recognize
-
Численные расчеты — пакет NumericalMath Интересно оценить
погрешность аппроксимации. Для этого достаточно построить график разности
аппроксимирующей и аппроксимируемой функций. Из
приведенных примеров ясно, что рациональная аппроксимация способна дать существенное
уменьшение погрешности при некотором оптимальном расположении узлов аппроксимации
и выравнивании погрешностей по абсолютной величине в точках минимумов и максимумов
кривой погрешности. В приложении дан список функций общей рациональной интерполяции
(аппроксимации) для аналитических зависимостей,
заданных параметрически. Поиск
корней уравнений с интерполяцией — InterpolateRoot Табличное
численное интегрирование — Listlntegrate
Численное вычисление остатка — N Residue Вычисление коэффициентов
формулы интегрирования Ньютона—Котесса — NewtonCotes
- Статистические
расчеты В ядре системы Mathematica практически нет статистических функций.
Зато пакет расширения Statistics дает сотни функций, охватывающих практически
все разделы теоретической и прикладной статистики.
- Статистические
расчеты— пакет Statistics Статистические данные обычно бывают представлены
в виде списков — как одномерных, так и двумерных (таблиц и матриц) и даже многомерных.
Большая часть функций, обеспечивающих манипуляции с данными, сосредоточена в подпакете
DataManipulation. Построение
гистограмм Статистика
распределений — DescriptiveStatistics В подпакете
DataSmoothing определены функции для сглаживания данных, имеющих большой случайный
разброс. К таким данным обычно относятся результаты ряда физических экспериментов,
например по энергии элементарных частиц, или сигналы, поступающие из космоса.
Подпакет NormalDistribution
содержит хорошо известные функции нормального распределения вероятностей и
родственные им функции следующих распределений
-
Регрессия В подпакете LinearRegression имеются расширенные функции для проведения
линейной регрессии общего вида — в дополнение к включенной в ядро функции Fit.
Нелинейная регрессия —
NonlinearFit Полиномиальная
регрессия — PolynomialFit Многие выражения содержат периодические тригонометрические
функции, например sin(X) или cos(X). Помимо обычного спектрального представления
выражений, подпакет TrigFit пакета NumericalMath имеет функции для
тригонометрической регрессии
- Расширения
графики— пакет Graphics дает множество средств для построения графиков самого
изысканного вида. Он является прекрасным инструментом для визуализации задач,
допускающих представление результатов в графической форме.
Проигрыватель имеет мнемонику кнопок, подобную мнемонике бытовых проигрывателей
видеодисков.
- Установка
аргумента цвета — ArgColor При построении графиков в полярной системе координат
полезно использовать цвет, зависящий от фазы комплексного числа
- Построение
объемных контурных графиков — ContourPlot3D Имеется также ряд специальных
функций для построения кривых
с окраской образуемых ими областей Многие графики сильно выигрывают при их
построении с закраской. Например, чтобы проиллюстрировать значение определенного
интеграла от какой-то функции f(x), достаточно просто закрасить ее график в диапазоне
изменения х от нижнего предела интегрирования а до верхнего b В этой столбцовой
диаграмме вначале строятся столбцы, представляющие
данные для первого списка, над ними надстраиваются столбцы новых данных, так
что общая высота столбцов пропорциональна сумме численных значений i-x элементов
списков. Следующая функция позволяет стоить
круговые диаграммы Функция
DisplayTogether позволяет объединять графики разного типа.
Подпакет Graphics задает ряд функций для построения специальных графиков,
например с логарифмическими и полулогарифмическими масштабами, с нанесенными на
кривые точками, графиков в виде гистограмм и т. д.
-
Специальные типы трехмерных графиков — Graphics3D Еще один простой и эффектный
пример применения функции ShadowPlot3D показан на рис. 14.42. Здесь изображение
поверхности — пика — проецируется на верхнюю плоскость, что дает наглядное
представление о построенной фигуре. Построение графиков
неявных функций — ImplicitPlot
- Вывод
обозначений кривых — Legend Построение графиков с
множеством объектов — MultipleListPlot Более интересный случай построения
точек с двумерными зонами
погрешности в виде окружностей или эллипсов демонстрирует рис. 14.56.
- Построение
3D-параметрических графиков — ParametricPlot3D Представление
полей в пространстве — PlotField3D
- Построение
полиэдров — Polyhedra Для построения
усеченных полиэдров предназначены следующие функции Создание графических форм
— Shapes
-
Примитивы, использующие сплайны — Spline Создание
поверхностей вращения — SurfaceOfRevolution Рисунок 14.91 демонстрирует возможность
построения объемной фигуры
с вырезами. Все, что для этого надо, — удачно выбрать диапазон изменения угла
вращения. Помимо уже рассмотренных подпакетов пакет расширения Graphics содержит
подпакеты ThreeScript и Common.
Подпакет ThreeScript содержит функцию преобразования трехмерных графических объектов
в программный код формата 3-Script
|