> <x,y,z> + m*<x1,y1,f1>;

(x + m x1)ex + (у + m y1)ey + (z + m f1)ez

> (<r(a+h),s(a+h),t(a+h)> - <r(a),s(a),t (a)>) / h;

> limit(%,h=0);

D(r)(a)ex + D(s)(a)ey + D(t)(a)ez

Обратите внимание на вычисление предела в конце этих примеров. Далее можно отметить операцию точечного умножения, которая иллюстрируется следующими вполне очевидными примерами:

> <a,b> . <c,d>;

ac+bd

> SetCoordinates(polar);

polar

> <a,b> . <c,d>;

a cos(b) c cos(d) +a sin(b) c sin(d)

> combine(%,trig);

a c cos(b-d)

> SetCoordinates(cartesian[x,y,z]);

cartesianx, y, z

> Del . VectorField(<х^2,у^2,z^2>);

2x +2y + 2z

> Del . Del;

VectorCalculus: - Laplasian

> (Del . Del) (f(x,y,z));

> L := VectorField( <x,y,z> ) . 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));

Определена также операция кросс-умножения:

> <a,b,c> &х <d,e,f>;

(bf - ce)ex + (cd - af)ey +(ae - bd)ez

> SetCoordinates(cylindrical);

cylindrical

> <a,b,c> &x <d,e,f>;

> SetCoordinates(cartesian[x,y,2]);

cartesianx, y, z

> Del &x VectorField( <y,-x,z> );

(-2)ēz

> L := VectorField(<x,y,z>) &x Del;

L: = e→vectorCalculus:-`&x`(Vector[column](3,[...],datatype = anything, storage = rectangular, order = Fortran_order, attributes = [vectorfield, coords = cartesian[x, y,z]], shape = []), VectorCalculus:-Gradient(e))

> L(f(x,y,2));

> L := Del &x Del;

L := (VectorCalculus:-Curl) @ (VectorCalculus:-Gradient)

> L(f(x,y,z));

x

4.11.4. Операции с кривыми

В пакете векторных операций определен ряд типовых операций с кривыми. Ниже представлено задание эллиптической кривой и вычисление в аналитической форме нормали и радиуса кривизны (файл vopcurves):

> SetCoordinates(cartesian);

cartesian

> assume(t::real);

> ell := <2*cos(t),sin(t)>;

ell := 2 cos(t)ex + sin(t)ey

> nv := simplify(PrincipalNormal(ell,t));

> len := simplify(LinearAlgebra:-Norm(nv, 2));

> r := simplify(RadiusOfCurvature(ell));

Теперь можно представить саму кривую (эллипс) и ее эволюту (рис. 4.39):

> ev := simplify(ell + r * nv / len);

> plot([[ell[1], ell[2], t=0..2*Pi], [ev[1], ev[2], t=0..2*Pi]]);

Рис. 4.39. Графики кривой — эллипса и ее эволюты

Нетрудно заметить, что для эллипса эволюта представляет собой удлиненную астроиду.

Для вычисления кривизны кривой С используется функция Curvature(C, t) в которой параметр t может и отсутствовать:

> Curvature(<cos(t),t,sin(t)>, t);

> с := Curvature(t -> <t,t^2,t^4>):

> simplify(c(t)) assuming t::real;

> SetCoordinates('polar');

polar

> Curvature(<exp(-t^2), t>):

> simplify(%) assuming t::real;

4.11.5. Интегрирование в пакете VectorCalculus

В аспекте практических приложений векторного анализа и теории поля особый интерес представляют приложения интегрирования пакете VectorCalculus. Так, видоизмененная функция int(f, dom)

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату