> <x,y,z> + m*<x1,y1,f1>;
> (<r(a+h),s(a+h),t(a+h)> - <r(a),s(a),t (a)>) / h;
> limit(%,h=0);
Обратите внимание на вычисление предела в конце этих примеров. Далее можно отметить операцию точечного умножения, которая иллюстрируется следующими вполне очевидными примерами:
> <a,b> . <c,d>;
> SetCoordinates(polar);
> <a,b> . <c,d>;
> combine(%,trig);
> SetCoordinates(cartesian[x,y,z]);
> Del . VectorField(<х^2,у^2,z^2>);
> Del . Del;
> (Del . Del) (f(x,y,z));
> L := VectorField( <x,y,z> ) . Del;
> L(f(x,y,z));
Определена также операция кросс-умножения:
> <a,b,c> &х <d,e,f>;
> SetCoordinates(cylindrical);
> <a,b,c> &x <d,e,f>;
> SetCoordinates(cartesian[x,y,2]);
> Del
> L := VectorField(<x,y,z>) &x Del;
> L(f(x,y,2));
> L := Del &x Del;
> L(f(x,y,z));
4.11.4. Операции с кривыми
В пакете векторных операций определен ряд типовых операций с кривыми. Ниже представлено задание эллиптической кривой и вычисление в аналитической форме нормали и радиуса кривизны (файл vopcurves):
> SetCoordinates(cartesian);
> assume(t::real);
> ell := <2*cos(t),sin(t)>;
> 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');
> Curvature(<exp(-t^2), t>):
> simplify(%) assuming t::real;
4.11.5. Интегрирование в пакете VectorCalculus
В аспекте практических приложений векторного анализа и теории поля особый интерес представляют приложения интегрирования пакете VectorCalculus. Так, видоизмененная функция int(f, dom)
