задает вычисление интеграла от функции f по области dom, например (файл vecint):
> restart:with(VectorCalculus):
> int(х^2+у^2, [x,y] = Circle(<0,1>, r));
![](/pic/1/4/1/7/4/6//i_464.png)
> int(sin(х)*cos(у)*tan(z), [x,y,z] = Parallelepiped(0..Pi, 0..Pi/3, 0..Pi/4));
Функция PathInt(f, dom) вычисляет интеграл пути для функции f с Rn до R:
> PathInt(х^2, [х,y] = Line(<0,0>, <1,2>));
![](/pic/1/4/1/7/4/6//i_465.png)
> PathInt(х^2+y^2, [х,y] = Circle(<0,0>, 3/2));
![](/pic/1/4/1/7/4/6//i_466.png)
> PathInt(1, [х,y] = Ellipse(х^2+y^2/2-1));
![](/pic/1/4/1/7/4/6//i_467.png)
Другая функция LineInt(F, dom), где F — вектор или процедура задания векторного поля, dom — параметр, характеризующий направление интегрирования, задает вычисление линейного интеграла в пространстве Rn:
> SetCoordinates(cartesian[х,y]);
> LineInt(VectorField(<х,y>), Line(<0,1>, <2,-5>));
> LineInt(VectorField(<y,-х>), Circlet<0,0>, r));
> LineInt(VectorField(<y,-х>), Ellipse(х^2/4+y^2/9-1));
> LineInt(VectorField(<y,-х>), Arc(Ellipse(х^2/4+у^2/9-1), 0, Pi/2));
Функция ArcLength(C,dom) задает вычисление длины дуги С по известному интегральному выражению для нее:
> ArcLength(<r*cos(t),r*sin(t)>, t=0..Pi) assuming r>0;
> ArcLength(t -> <t,t^2>, 0..2);
> evalf(%);
Рекомендуется просмотреть различные варианты задания области интегрирования dom в справке по этому пакету.
4.11.6. Задание матриц специального типа
Пакет VectorCalculus позволяет для заданной функции f задавать несколько матриц специального вида, которые часто используются при решении задач теории поля:
Hessian(f, t) — создание матрицы гессиана;
Jacobian(f, v, det) — создание матрицы якобиана;
Wronskian(f, t) — создание матрицы вронскиана.
Примеры задания таких матриц приведены ниже (файл vecmatrix):
> Hessian(ехр(х*y), [х,y]);
![](/pic/1/4/1/7/4/6//i_468.png)
> Hessian(а/(х^2+y^2+z^2), [х, y, z]);
![](/pic/1/4/1/7/4/6//i_469.png)
> Н := unapply(%, [a,x,y,z]):
> Н(1/2, 0.3, 0.7, 0.1);
![](/pic/1/4/1/7/4/6//i_470.png)
> Jacobian([r*cos(t), r*sin(t)], [r,t]);
![](/pic/1/4/1/7/4/6//i_471.png)
> Jacobian([r*cos(t), r*sin(t)], [r,t], 'determinant');
![](/pic/1/4/1/7/4/6//i_472.png)
> Wronskian([exp(t),ln(t),sin(t)], t);
![](/pic/1/4/1/7/4/6//i_473.png)
> Wronskian([t, t^2, t^3], t)
![](/pic/1/4/1/7/4/6//i_474.png)
4.11.7. Функции теории поля
К основным функциям теории поля относятся:
Curl(F) — вычисляет вихрь векторного поля в R³;
Divergence(F) — вычисляет дивергенцию векторного поля;
Flux(f, dom) — вычисляет поток векторного поля в R³;
Gradient(f, с) — вычисляет градиент функции f в пространстве от Rn до R;
Del(f, с) и Nabla(f, с) — векторные дифференциальные операторы;
Laplacian(f, с) или Laplacian(F) — вычисляет лапласиан функции f или векторного определения (процедуры) F;
ScalarPotential(v) — вычисляет скалярный потенциал векторного поля;
Torsion(C, t) — вычисляет торсион в R³;
VectorPotential(v) — вычисляет векторный потенциал в R³;
Довольно громоздкие определения этих функций, основанные на использовании криволинейных и поверхностных интегралов, имеются в учебной литературе. Не приводя их, ограничимся приведенными ниже примерами применение указанных выше функций (файл vecft):
> restart:with(VectorCalculus): SetCoordinates('cartesian'[x,y,z]);
> F := VectorField( <-y,x,0> );
> Curl(F);
> Del &x F;
> Nabla &x F;
> CrossProduct(Del, F);
> F := VectorField(<х^2,y^2,z^2>);
> Divergence(F);
> Flux(VectorField(<x,y,z>, cartesian[x,y,z]), Sphere(<0,0,0>, r));