Подпакет VectorAnalysis содержит множество функций, используемых при выполнении векторного анализа. Здесь надо иметь в виду, что речь идет не о векторах как представителях одномерных массивов, которые рассматривались ранее. В данном случае вектор — это направленный отрезок прямой в пространстве, заданном той или иной системой координат.
Системы координат и их преобразования
Заметная часть функций подпакета VectorAnalysis относится к заданию и преобразованию координат:
Coordinates [ ] — возвращает имена переменных текущей системы координат;
Coordinates [coordsys] — возвращает имена переменных системы координат coordsys;
SetCoordinates [coordsys] — устанавливает систему координат coordsys с текущими переменными;
Coordinates [coordsys, {vars}] — устанавливает систему координат coordsys с переменными, заданными списком {vars }.
Ниже даны названия систем координат и соответствующие им представления.
Наименование
Представление
Прямоугольные
Cartesian [х, у, z]
Цилиндрические
Cylindrical [r, theta, z]
Сферические
Spherical [r, theta, phi]
Параболические цилиндрические
ParabolicCylindrical [u, v, z]
Параболические
Paraboloidal [u, v, phi]
Эллиптические цилиндрические
EllipticCylindrical [u, v, z, a]
Вытянутые сфероидальные
ProlateSpheroidal [xi, eta, phi, a]
Сплющенные сфероидальные
OblateSpheroidal [xi, eta, phi, a]
Биполярные
Bipolar[u, v, z, a]
Бисферические
Bispherical [u, v, phi, a]
Тороидальные
Toroidal [u, v, phi, a]
Конические
Conical [lambda, mu, nu, a, b]
Конфокальные эллипсоидальные
ConfocalEllipsoidal [lambda, rnu, nu, a, b, c]
Конфокальные параболические
ConfocalParaboloidal [lambda, mu, nu, a, bj
Например, параболическую систему координат можно задать следующим образом:
SetCoordinates[Paraboloidal[x, у, z] ]
Paraboloidal [x, у, z]
{CoordinateSystem, Coordinates[]}
{Paraboloidal, {x, y, z}}
Ряд функций служит для контроля и установки параметров систем координат:
CoordinateRanges [ ] — возвращает пределы изменения переменных текущей координатной системы;
ParametersRanges [ ] — возвращает пределы изменения параметров текущей координатной системы;
CoordinateRanges [coordsys] — возвращает пределы изменения переменных координатной системы coordsys;
Parameters [coordsys] — возвращает параметры координатной системы coordsys;
ParametersRanges [coordsys] — возвращает пределы изменения параметров координатной системы coordsys;
SetCoordinates [coordsys, {vars,param} ] — устанавливает параметры текущей координатной системы как параметры coordsys с переменными vars и параметрами param.
Ниже представлены примеры применения этих функций:
CoordinateRanges[]
{0<Х<бесконечности,0<Y<бесконечность,-л<Z<=л}
Parameters[]
{}
ParameterRanges[ ]
Coordinates[Conical], CoordinateRanges[Conical]
{{Llanibda, Мmu, Nnu}, {-бесконечность< Llambda< бесконечность, l< Mmu2 < 4, Nnu2< 1}}
Parameters[Bipolar],ParameterRanges[Bipolar]
{{1}, 0< #1<бесконечность}
Для преобразования координат служат следующие функции:
CoordinatesToCartesian [pt] — преобразование текущих координат в декартовы;
CoordinatesToCartesian [pt, coordsys] — преобразование координат coordsys в декартовы;
CoordinatesFromCartesian [pt] — преобразование из декартовых координат в текущие;
CoordinatesFromCartesian [pt, coordsys] — преобразование из декартовых координат в координаты coordsys.
Помимо функций для задания и преобразования систем координат подпакет Vector An a lysis содержит ряд функций собственно векторного анализа:
DotProduct [vl, v2] — возвращает скалярное произведение векторов vl и v2, заданных в текущей системе координат;
CrossProduct [vl,v2] — возвращает векторное произведение векторов vl и v2, заданных в текущей системе координат;
ScalarTripleProduct [vl, v2, v3 ] — возвращает тройное скалярное произведение для векторов vl, v2 и v3, заданных в текущей системе координат;
DotProduct [vl, vl, coordsys ] — возвращает скалярное произведение векторов vl и v2, заданных в системе координат coordsys;
CrossProduct [vl, v2, coordsys] — возвращает векторное произведение векторов vl и v2, заданных в системе координат coordsys.
Примеры выполнения этих операций представлены ниже:
SetCoordinates[ParabolicCylindrical[ ]]
ParabolicCylindrical[Uu, W, Zz]
DotProduct[{1.2, 1.1, 0}, {5.4, -2, 1.2}]
-12.8093
CrossProduct[{1.2, 1.1, 0}, {5.4, -2, 1.2}]
{-1.78157, 0.0774597, -17.8476}
ScalarTripleProduct[{1, 0, 1}, {1, 1, 0}, {0, 1, 1}, Cartesian]
2
Для вычисления производной дуги служат функции:
ArcLengthFactor [ { fx, f у, f z}, t] — дает дифференциал длины дуги, заданной параметрически с параметром t в текущей системе координат;
ArcLengthFactor [ {fx, f у, fz}, t, coordsys] — дает дифференциал длины дуги, заданной параметрически с параметром t в системе координат coordsys
Примеры вычисления дифференциалов и длин дуг с помощью этих функций:
param = {Cos[t], Sin[t], t}
{Cos[t], Sin[t], t}
ArcLengthFactor[ param, t, Cartesian] //Simplify
корень из 2
f[x_, y_, z_] := x^2 y^2 z
Integrate[ f[param] ArcLengthFactor[
param, t, Cartesian], {t, 0, 2 Pi}] // Simplify
Ряд функций служит для создания матрицы Якоби (матрицы частных производных) и вычисления относящихся к ней понятий: