Пакет VectorCalculus ориентирован в первую очередь на решение задач математической физики, использующих методы теории поля и приложения дифференциального исчисления. Он оперирует такими привычными для физиков (разумеется, и для математиков) понятиями, как поток векторного поля, градиент, тор-сион, векторный потенциал и др. Приведенный ниже материал поясняет применение большинства функций этого пакета. Полезно просмотреть и файл VectorCalculus.mws, содержащий примеры его применения. В Интернете можно найти целую серию уроков по векторному анализу и теории поля в виде пакета Calculus IV или V (разработчик проф. J. Wagner).
4.11.2. Объекты векторных вычислений
Вектор в геометрическом представлении в данном пакете по умолчанию задается в прямоугольной системе координат:
> v := Vector( [x,y,z]);
v := хе х+ ye y + ze z
Здесь е х , е у и е z — проекции единичного вектора ена оси координат х, у и z. Тип координатной системы (по умолчанию — прямоугольная) можно определить следующим образом:
> attributes(v);
coords = cartesian
Для создания векторного поля служит функция
VectorField(v, с)
где v — вектор и с — опционально заданный параметр в форме name[name, name,...], задающий тип координатной системы.
Можно изменить систему координат, например, задав (с помощью функции установки координат SetCoordinates) полярную систему координат:
> SetCoordinates(polar);
polar
> w := ;
w: = r e r+ θ e 0
> attributes(w);
coords = polar
Аналогично можно задать вектор в сферической системе координат:
> SetCoordinates(spherical[r,phi,theta]);
spherical r,φ,θ
> F := VectorField();
F.= rē r
> attributes(F);
vectorfield, coords = spherical r,φ,θ
Можно также сменить формат представления вектора и выполнить с ним некоторые простейшие векторные операции:
> BasisForrnat(false);
true
> v := ;
> BasisFormat(true);
false
> v;
ae r+ bе φ+ce θ
> SetCoordinates(polar);
polar
> MapToBasis(, 'cartesian');
r cos(θ)e x+ r sin(θ)e y
> SetCoordinates(spherical);
spherical
> MapToBasis(, 'cartesian');
r sin(φ)cos(θ)e x+ r sin(φ)sin(θ)e y+ r cos(φ)е z
> SetCoordinates(spherical[r,phi,theta]);
spherical r,φ,θ
> MapToBasis(VectorField(), 'cartesian'[x,y,z]);
хē х+ yē y+ zē z
Пакет VectorCalculus предусматривает возможность задания новой системы координат с помощью команды:
AddCoordinates(newsys, eqns, owrite)
где newsys — спецификация новой системы координат в виде symbol[name, name, …]; eqns — соотношения между координатами новой системы и прямоугольной системы координат, представленные в виде list(algebraic); owrite — заданное опционально равенство.
4.11.3. Основные операции с векторами
В данном пакете переопределены некоторые основные операции над векторами. Прежде всего, это операции сложения (+) и скалярного умножения (*), которые поясняются следующими примерами (файл vop) :
> SetCoordinates(cartesian);
cartesian
> + m*;
(x + m x1)e x+ (у + m y1)e y+ (z + m f1)e z
> ( - ) / h;
> limit(%,h=0);
D(r)(a)e x+ D(s)(a)e y+ D(t)(a)e z
Обратите внимание на вычисление предела в конце этих примеров. Далее можно отметить операцию точечного умножения, которая иллюстрируется следующими вполне очевидными примерами:
> . ;
ac+bd
> SetCoordinates(polar);
polar
> . ;
a cos(b) c cos(d) +a sin(b) c sin(d)
> combine(%,trig);
a c cos(b-d)
> SetCoordinates(cartesian[x,y,z]);
cartesian x, y, z
> Del . VectorField(<���х^2,у^2,z^2>);
2x +2y + 2z
> Del . Del;
VectorCalculus: - Laplasian
> (Del . Del) (f(x,y,z));
> L := VectorField( ) . Del;
L:= e→vectorCalculus:-`.`(Vector[column](3,[...],datatype = anything, storage = rectangular, order = Fortran_order, attributes = [vectorfield, coords = cartesian[x,y,z]], shape = [],)VectorCalculus:-Del(e))
> L(f(x,y,z));
Определена также операция кросс-умножения:
> &х ;
(bf - ce)e x+ (cd - af)e y+(ae - bd)e z
> SetCoordinates(cylindrical);
cylindrical
> &x ;
> SetCoordinates(cartesian[x,y,2]);
Читать дальше
Конец ознакомительного отрывка
Купить книгу