Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

> SetCoordinates(polar);

polar

> MapToBasis(<r,theta>, 'cartesian');

r cos(θ)ex + r sin(θ)ey

> SetCoordinates(spherical);

spherical

> MapToBasis(<r,phi,theta>, 'cartesian');

r sin(φ)cos(θ)ex + r sin(φ)sin(θ)ey + r cos(φ)еz

> SetCoordinates(spherical[r,phi,theta]);

sphericalr,φ,θ

> MapToBasis(VectorField(<r,0,0>), '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

> <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>):

Поделиться с друзьями: