Иллюстрированный самоучитель по Mathematica 3/4

Математические пакеты расширения

  • Общие замечания по пакетам расширения

    Начиная с этого урока, мы переходим к изучению стандартных пакетов расширения (Standard Add-on Packages), которые встроены в системы Mathematica 3/4. Они не требуют отдельной инсталляции, но перед использованием их средств пакеты надо объявлять.
  • Пакет алгебраических функций Algebra. Решение неравенств.

    Пакет расширения Algebra содержит ряд новых функций для работы с неравенствами, ограниченными полями и полиномами. Для доступа сразу ко всем функциям пакета используется команда <<Algebra'. | Загрузка отдельных функций показана в примерах использования этого пакета, описанных ниже.
  • Функции для представления комплексных данных (Relm). Операции в конечных полях (FiniteFields).

    Подпакет Relm обеспечивает переназначение функций комплексной переменной для более корректной их работы: | <<Algebra`ReIm` | Re[l/x+l/y] | Re[x]/(Im[x]2+Re[x]2)+ Re[y]/(Iim[y]2+Re[y]2) | Re[(z + I)^3 + Exp[I z]] | E[mz] Cos[Re[z]] -2 (1+ Im[z])2Re[z] + | Re[z] (-(1+ Im[z])2+Re[z]2) | Im[x] ^= 0;
  • Оценка интервалов изоляции корней полиномов (Rootlsolation)

    Следующие функции подпакета Rootlsotation позволяют оценивать интервалы изоляции для действительных и комплексных корней полиномов: | CountRoots [poly, {x,m1,m2} ] – возвращает число корней полинома poly от переменной х в комплексном интервале {m1, m2 };
  • Операции с полиномами

    Если конечные поля – понятие достаточно экзотическое, то полиномы встреча – ются сплошь и рядом во многих математических и научно-технических расчетах. В пакете расширения Algebra определен ряд новых операций над полиномами. Начнем их рассмотрение с функции PolynomialExtendedGCD:
  • Преобразование полиномов в схему Горнера(Horner)

    Подпакет Horner в системе Mathematica 4 реализует хорошо известную схему вычисления полиномов – схему Горнера. При ней операции возведения в степень заменяются операциями умножения. Для этого служит функция Horner: | Horner [poly] – устанавливает полином poly в форму Горнера;
  • Пакет вычислительных функций Calculus. Решение дифференциальных уравнений (DSolvelntegrals).

    Пакет расширения Calculus содержит представительный набор функций для решения дифференциальных уравнений, задания функций единичного скачка и импульса, выполнения операций с векторами, преобразований Фурье и Лапласа, выполнения спектрального анализа и синтеза, расширенного вычисления пределов и проведения аппроксимаций аналитических функций. Для открытия пакета используется команда <<Calculus`.
  • Дельта-функция Дирака (DiracDelta)

    В подпакете DiracDelta системы Mathematica 3 задано определение двух полезных функций Дирака: | UnitStep [х] – возвращает функцию с единичным скачком при х = 0 (дает значение 0 при х < 0 и 1 при х > 1);
  • Улучшенное вычисление пределов (Limit). Рациональная аппроксимация аналитических функций (Fade).

    Подпакет Limit не создает новых функций.
  • Векторный анализ (VectorAnalysis). Системы координат и их преобразования.

    Подпакет VectorAnalysis содержит множество функций, используемых при выполнении векторного анализа. Здесь надо иметь в виду, что речь идет не о векторах как представителях одномерных массивов, которые рассматривались ранее.
  • Функции векторного анализа

    Помимо функций для задания и преобразования систем координат подпакет Vector Analysis содержит ряд функций собственно векторного анализа: | DotProduct [v1, v2] – возвращает скалярное произведение векторов v1 и v2, заданных в текущей системе координат;
  • Вариационные методы (VariationalMethods)

    Подпакет VariationaLMethods содержит функции для реализации вариационных методов. Напомним, что вариационные методы заменяют минимизацию функционала, заданного на некотором бесконечномерном линейном пространстве, задачами его минимизации на последовательности конечномерных подпространств.
  • Пакет дискретной математики DiscreteMath. Комбинаторика и ее функции (Combinatorica и CombinatorialFunctions).

    Пакет DiscreteMath задает набор функций дискретной математики. Это прежде всего функции комбинаторики и работы с графами (более 230 функций). Мы вынуждены рассмотреть их только выборочно. | Несколько функций комбинаторики (Factorial, Factorial2, Binomial, Multinomial, Pochhammer и Fibonacci) могут использоваться без загрузки пакетов расширения.
  • Графы и их функции

    Mathematica имеет самые обширные возможности решения задач, связанных с графами. Задание графов и манипуляции с ними также включены в пакет комбинаторики. Они представлены четырьмя группами функций. | Представление графов | AddEdge | AddVertex | Breadth'FirstTraversal | ChangeEdges
  • Функции вычислительной геометрии (ComputationalGeometry)

    В подпакете ComputationalGeometry заданы следующие функции, относящиеся к геометрическим поверхностям: | ConvexHull [ { {xl, yl…}, {х2, у2,…},…] – вычисляет выпуклость оболочки в точках плоскости; | DelaunayTriangulation[ xл,йл&хеллип;}, {х2, у2,&хеллип;},&хеллип;] &ндасх;
  • Дискретные функции единичного скачка и импульса (KroneckerDelta)

    В подпакете KroneckerDelta системы Mathematica 3 заданы дискретные функции единичного скачка и единичного импульса: | DiscreteStep [n] – возвращает единичный скачок при целом n=0; | DiscreteStep [n1, n2,…] – функция многомерного единичного скачка;
  • Дискретные перестановки (Permutations). Решение рекуррентных разностных уравнений (RSolve).

    В подпакете Permutations определен ряд функций дискретных перестановок: | RandomPermutation [n] – случайные перестановки из n элементов; | Ordering [list] – дает перестановки в установленном списком list порядке; | ToCycles [perm] – дает циклическую декомпозицию для списка list;
  • Деревья (Tree)

    Подпакет Tree содержит функции создания и применения древовидных структур, именуемых деревьями. Вот эти функции: | MakeTree [list] – создает дерево по информации, представленной в списке list; | TreeFind [tree, x] – возвращает позицию наименьшего элемента, превосходящего х в списке list, представляющем дерево.
  • Геометрические расчеты (пакет Geometry). Характеристики регулярных полигонов и полиэдров (Polytopes).

    В этом разделе описан пакет Geometry, содержащий ряд функций, полезных при выполнении геометрических расчетов. В основном это функции, относящиеся к построению регулярных полигонов на плоскости и полиэдров в пространстве.
  • Вращение фигур на плоскости и в пространстве (Rotations)

    Для задания поворота плоских фигур на заданный угол в подпакете Rotations заданы следующие функции: | RotationMatrix2D[theta] – дает матрицу для поворота на угол theta в двух измерениях; | Rotate2D [vec, theta] – поворачивает вектор vec по часовой стрелке на угол theta;
  • Линейная алгебра (пакет LinearAlgebra). Декомпозиция Холесского (Cholesky).

    Пакет расширения LinearAlgebra добавляет ряд новых функций, полезных при решении сложных задач линейной алгебры. | Подпакет Cholesky содержит единственную функцию HoleskyDecomposition [m], которая вычисляет декомпозицию (факторизацию, разложение) Холесского для симметричной положительно определенной матрицы т.
  • Операции с матрицами (MatrixManipulation)

    Подпакет MatrixManipulation добавляет к матричным функциям ядра системы Маthematica ряд новых функций. Начнем с функций объединения матриц: | AppendColumns [m1,m2,…] – объединяет по столбцам матрицы m1,m2,…; | AppendRows [m1,m2,…] – объединяет по строкам матрицы m1,m2,…;
  • Ортогонализация и нормализация (Ortogonalization). Решение линейных уравнений с трехдиагональной матрицей (Tridiagonal).

    В подпакете ортогонализации Ortogonalization имеются следующие функции: | GramSchmidt [ {v1, v2,…} ] – создает ортогональное множество на основе списка векторов v1, v2,…; | Normalize [vect] – возвращает нормированный вектор vect;
  • Расширение в теории чисел. Цепные дроби (ContinuedFractions). Улучшенное разложение на простые множители (FactorlntegerECM).

    Мы уже описывали уникальные возможности систем Mathematica 3/4 в области обработки чисел и численных вычислений. Эти возможности существенно расширяет пакет NumberTheory, содержащий функции, реализующие алгоритмы теории чисел. Данный раздел посвящен знакомству с этим пакетом.
  • Функции теории чисел (NumberTheory Functions)

    В подпакете NumberTheoryFunctions имеется ряд функций, относящихся к теории чисел: | SquareFreeQ[n] – дает True, если n не имеет квадратичного фактора, и False в ином случае; | NextPrime [n] – дает наименьшее простое число, превосходящее n;
  • Работа с простыми числами (PrimeQ). Вычисление примитивных элементов (Primitive Element).

    В подпакете PrimeQ в дополнение к функции ядра PrimeQ [n] имеется ряд функций для работы с простыми числами: | ProvablePrimeQ [n] – возвращает True, если п проверено на простоту, и False в ином случае; | PrimeQCertif icate [n] – возвращает сертификат о том, что n– простое или композитное число;
  • Создание рядов Рамануджанат-Дирихле (Ramanujan). Рационализация чисел (Rationalize).

    В подпакете Ramanujan определены следующие функции: | RamanujanTau [n] – n-й коэффициент ряда Рамануджана т-Дирйхле (т n ); | RamanujanTauGeneratingFunction [z] – производящая функция ряда Рамануджана т-Дирихле; | RamanujanTauDirichletSeries [s] – ряд Рамануджана т-Дирихле f(s);
  • Нахождение полинома, дающего заданный корень (Recognize). Тета-функция Зигеля.

    Подпакет Recognize содержит определение одноименной с ним функции в двух формах: | Recognize [x,n,t] – находит полином переменной t степени, большей п, такой, что х является его корнем;
  • Численные расчеты (пакет NumericalMath). Аппроксимация аналитических функций (Approximations).

    Пакет расширения NumericalMath содержит множество полезных функций для тех, кто имеет дело с численными расчетами. В их числе функции для выполнения высокоточных аппроксимаций рациональными функциями, численного интегрирования и дифференцирования, вычисления пределов функций, решения уравнений, разложения в ряд и т. д. Ниже описано подавляющее большинство функций этого расширения.
  • Нули функций Бесселя (BesselZeros). Поиск корней уравнений с интерполяцией (InterpolateRoot).

    В подпакете BesselZeros определены функции, дающие список аргументов функций Бесселя в их первых п нулевых точках: BesselJZeros [mu, n], Bessel-YZeros[mu,n], BesselJPrimeZeros[mu,n], BesselYPrimeZeros[mu,n] и др.
  • Реализация интервальных методов (IntervalRoots)

    Иногда важно не найти приближенное значение корня, а уточнить интервал, в котором он находится. В подпакете IntervalRoots для этого используется ряд известных методов, реализованных следующими функциями:
  • Табличное численное интегрирование (Listlntegrate)

    Встроенная в ядро функция NIntegrate вычисляет определенные интегралы при известной подынтегральной функции. Однако нередко, например при экспериментах, такая функция задается таблицей или списком значений.
  • Численное вычисление пределов (NLimit)

    В подпакете NLimit определена функция: | Nlimit[expr, x > x0] | Для численного вычисления пределов выражений ехрг (см. примеры ниже): | <<NumericalMath`NLimit` | NLimit[Zeta[s] -1/(s-1), s > 1] | 0.577216 | N[EulerGamma] | 0.577216 | С помощью команды Options [NLimit] можно просмотреть опции, которые используются функцией NLimit по умолчанию.
  • Численное вычисление остатка (NResidue). Численное разложение в ряд (NSeries).

    В подпакете NResidue имеется функция вычисления остатка NResidue [expr, {x, x0} ] в точке х=х0: | << NumericalMath`NResidue` | NResidue[1/z, {z, 0}] | 1. + 6.35614x 10-18 I | Residue[f, {z, 1.7}] | 0 | NResidue[f, {z, 1.7}] | 0.259067-1.9353x10-17I | l/((z+.2+.5 I)(z+.2-0.5 I)) / .z > 1.7 | 0.259067 + 0.
  • Вычисление коэффициентов формулы интегрирования Ньютона-Котесса (NewtonCotes)

    Функция NIntegrate, имеющаяся в ядре системы Mathematica, реализует метод интегрирования Гаусса-Кронрода. Еще одним известным методом интегрирования является метод Ньютона-Котесса, сводящий интегрирование к вычислению взвешенных ординат функции в равномерно расположенных точках оси абсцисс.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.