Overview of the LAVF Object - Maple Programming Help

Home : Support : Online Help : Mathematics : Differential Equations : Lie Symmetry Method : Commands for PDEs (and ODEs) : LieAlgebrasOfVectorFields : LAVF : LieAlgebrasOfVectorFields/LAVF

Overview of the LAVF Object

Description

 • The LAVF object is designed and created to represent a Lie algebras of vector field (LAVF). An LAVF is usually of the form before solving the symmetry determining system to get solution vector fields.
 • There are more than 60 methods that are available for a LAVF object, types of methods including (i) basic and solution properties of a LAVF, (ii) Lie algebraic and geometrical properties of a LAVF, (iii) Lie algebraic and geometrical relationships among LAVFs, (iv) utility methods for manipulating a LAVF (or LAVFs). Some Maple existing builtins are extended for allowing LAVF object.
 • A valid LAVF object is automatically in a rif-reduced form with respect to a ranking that is in total degree ranking. See methods IsRifReduced, IsTotalDegreeRanking and GetRanking of a LHPDE object.
 • The LAVF object is allowed to be either of finite or infinite type. And the form of its determining system can be un-solved, or solved, or any forms in between (i.e. partially solved).
 • All methods of the LAVF object become available only once a valid LAVF object is constructed successfully. To construct a LAVF object, see LieAlgebrasOfVectorFields[LAVF].
 • The LAVF object is the main Maple object exported by the LieAlgebrasOfVectorFields package. See Overview of the LieAlgebrasOfVectorFields package for more detail.
 • A LAVF object is mathematically represented by the formal vector field as a VectorField object and the determining system as a LHPDE object. Here the components of the formal vector field must be (part of) the dependent variables of the determining system.These two data attributes can be accessed via the GetVectorField and GetDeterminingSystem methods.
 • After a LAVF object L is successfully constructed, each method in L can be accessed by either the short form method(L, arguments) or the long form L:-method(L, arguments).

LAVF Object Methods

 • After a LAVF object is constructed, the following methods are available:

 • The following Maple builtins functions are extended so that they work for a LAVF object: type, has, hastype, indets. See LAVF Object Overloaded Builtins for more detail.

Examples

 > with(LieAlgebrasOfVectorFields):
 > Typesetting:-Settings(userep=true):
 > Typesetting:-Suppress([xi(x,y),eta(x,y)]):

Example1: we first require to construct a vector field and a LHPDE object for representing the determining system for E(2).

 > V := VectorField([[xi(x,y),x], [eta(x,y),y]], space = [x,y]);
 ${V}{≔}{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (1)
 > E2Sys := LHPDE([diff(xi(x,y),y,y)=0, diff(eta(x,y),x)+diff(xi(x,y),y)=0, diff(eta(x,y),y)=0, diff(xi(x,y),x)=0], dep = [xi,eta]);
 ${\mathrm{E2Sys}}{≔}\left[{{\mathrm{\xi }}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{+}{{\mathrm{\xi }}}_{{y}}{=}{0}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}{,}{{\mathrm{\xi }}}_{{x}}{=}{0}\right]{,}{\mathrm{indep}}{=}\left[{x}{,}{y}\right]{,}{\mathrm{dep}}{=}\left[{\mathrm{\xi }}{,}{\mathrm{\eta }}\right]$ (2)
 > E2 := LAVF(V, E2Sys);
 ${\mathrm{E2}}{≔}\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{{\mathrm{\xi }}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{\xi }}}_{{x}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{=}{-}{{\mathrm{\xi }}}_{{y}}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}\right]\right\}$ (3)

E2 is a valid LAVF object and a collection of methods are available for E(2).

 > type(E2, 'LAVF');
 ${\mathrm{true}}$ (4)
 > exports(E2, 'static');
 ${\mathrm{indets}}{,}{\mathrm{has}}{,}{\mathrm{hastype}}{,}{\mathrm{type}}{,}{\mathrm{GetVectorField}}{,}{\mathrm{GetDeterminingSystem}}{,}{\mathrm{ImplicitForm}}{,}{\mathrm{SolutionDimension}}{,}{\mathrm{IsFiniteType}}{,}{\mathrm{IsTrivial}}{,}{\mathrm{ParametricDerivatives}}{,}{\mathrm{GetRanking}}{,}{\mathrm{SetIDBasis}}{,}{\mathrm{GetIDBasis}}{,}{\mathrm{GetSpace}}{,}{\mathrm{IsFlat}}{,}{\mathrm{OrbitDistribution}}{,}{\mathrm{OrbitDimension}}{,}{\mathrm{InvariantCount}}{,}{\mathrm{IsTransitive}}{,}{\mathrm{Invariants}}{,}{\mathrm{IsLieAlgebra}}{,}{\mathrm{IsPerfect}}{,}{\mathrm{DerivedAlgebra}}{,}{\mathrm{IsSolvable}}{,}{\mathrm{IsSoluble}}{,}{\mathrm{DerivedSeries}}{,}{\mathrm{SolvableRadical}}{,}{\mathrm{SolubleRadical}}{,}{\mathrm{Radical}}{,}{\mathrm{IsNilpotent}}{,}{\mathrm{Hypercentre}}{,}{\mathrm{Hypercenter}}{,}{\mathrm{NilRadical}}{,}{\mathrm{Nilradical}}{,}{\mathrm{LowerCentralSeries}}{,}{\mathrm{UpperCentralSeries}}{,}{\mathrm{IsAbelian}}{,}{\mathrm{IsCommutative}}{,}{\mathrm{Centre}}{,}{\mathrm{Center}}{,}{\mathrm{IsSemiSimple}}{,}{\mathrm{IsReductive}}{,}{\mathrm{NilpotentRadical}}{,}{\mathrm{StructureConstants}}{,}{\mathrm{StructureCoefficients}}{,}{\mathrm{KillingRadical}}{,}{\mathrm{KillingPolynomial}}{,}{\mathrm{KillingForm}}{,}{\mathrm{KillingOrthogonal}}{,}{\mathrm{AdjointMatrix}}{,}{\mathrm{AreCommuting}}{,}{\mathrm{AreSame}}{,}{\mathrm{AreSameSpace}}{,}{\mathrm{Centraliser}}{,}{\mathrm{Centralizer}}{,}{\mathrm{Normaliser}}{,}{\mathrm{CleanDependencies}}{,}{\mathrm{Copy}}{,}{\mathrm{DChange}}{,}{\mathrm{dchange}}{,}{\mathrm{Intersection}}{,}{\mathrm{IsIdeal}}{,}{\mathrm{IsInvariant}}{,}{\mathrm{IsotropyRepresentation}}{,}{\mathrm{IsSubspace}}{,}{\mathrm{LAVFSolve}}{,}{\mathrm{VectorSpaceSum}}{,}{\mathrm{LieProduct}}{,}{\mathrm{ProjectToSpace}}{,}{\mathrm{Transporter}}{,}{\mathrm{ModuleCopy}}{,}{\mathrm{ModulePrint}}{,}{\mathrm{ModuleApply}}$ (5)

Basic properties of E2 can be obtained by:

 > X := GetVectorField(E2);
 ${X}{≔}{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (6)
 > S := GetDeterminingSystem(E2);
 ${S}{≔}\left[{{\mathrm{\xi }}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{\xi }}}_{{x}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{=}{-}{{\mathrm{\xi }}}_{{y}}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}\right]{,}{\mathrm{indep}}{=}\left[{x}{,}{y}\right]{,}{\mathrm{dep}}{=}\left[{\mathrm{\xi }}{,}{\mathrm{\eta }}\right]$ (7)

Both X and S are Maple objects too, and have access to various methods too. For example,

 > type(S, 'LHPDE');
 ${\mathrm{true}}$ (8)
 > IsRifReduced(S);
 ${\mathrm{true}}$ (9)
 > IsTotalDegreeRanking(S);
 ${\mathrm{true}}$ (10)
 > GetRanking(S);
 $\left[{\mathrm{\xi }}{,}{\mathrm{\eta }}\right]$ (11)

We can check algebraic properties of E2.

 > IsLieAlgebra(E2);
 ${\mathrm{true}}$ (12)
 > IsAbelian(E2);
 ${\mathrm{false}}$ (13)
 > IsSolvable(E2);
 ${\mathrm{true}}$ (14)

Fetch structure constants of E2 & display it.

 > C := StructureConstants(E2);
  (15)
 > DisplayStructure(C, 'Z');
 $\left[\begin{array}{ccc}{0}& {0}& {{Z}}_{{2}}\\ {0}& {0}& {-}{{Z}}_{{1}}\\ {-}{{Z}}_{{2}}& {{Z}}_{{1}}& {0}\end{array}\right]$ (16)

Some properties of E2 are also represented as LAVF objects (or lists of LAVF objects).

 > Centre(E2);
 $\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{\mathrm{\xi }}{=}{0}{,}{\mathrm{\eta }}{=}{0}\right]\right\}$ (17)
 $\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{{\mathrm{\xi }}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{\xi }}}_{{x}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{=}{-}{{\mathrm{\xi }}}_{{y}}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}\right]\right\}$ (18)
 > DerivedSeries(E2);
 $\left[\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{{\mathrm{\xi }}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{\xi }}}_{{x}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{=}{-}{{\mathrm{\xi }}}_{{y}}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}\right]\right\}{,}\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{{\mathrm{\xi }}}_{{x}}{=}{0}{,}{{\mathrm{\eta }}}_{{x}}{=}{0}{,}{{\mathrm{\xi }}}_{{y}}{=}{0}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}\right]\right\}{,}\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{\mathrm{\xi }}{=}{0}{,}{\mathrm{\eta }}{=}{0}\right]\right\}\right]$ (19)

A LAVF object can be converted into a PDO for vector fields.

 > VFPDO(E2);
 ${X}{→}\left[\frac{{\partial }}{{\partial }{y}}{}\left(\frac{{\partial }}{{\partial }{y}}{}{X}{}\left({x}\right)\right){,}\frac{{ⅆ}}{{ⅆ}{x}}{}{X}{}\left({x}\right){,}\frac{{\partial }}{{\partial }{x}}{}{X}{}\left({y}\right){+}\frac{{\partial }}{{\partial }{y}}{}{X}{}\left({x}\right){,}\frac{{ⅆ}}{{ⅆ}{y}}{}{X}{}\left({y}\right)\right]$ (20)

Solving E2 vector fields system to find vector fields.

 > LAVFSolve(E2);
 $\left({-}{\mathrm{_C1}}{}{y}{+}{\mathrm{_C3}}\right){}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}\left({\mathrm{_C1}}{}{x}{+}{\mathrm{_C2}}\right){}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (21)

Example2: now we consider three 3-d rotation vector fields that generating standard SO(3) action on R3(x,y,z). First we construct these vector fields.

 > Typesetting:-Suppress({xi,eta,zeta}(x,y,z)):
 > R1 := VectorField(x*D[y] - y*D[x], space = [x,y,z]);
 ${\mathrm{R1}}{≔}{-}{y}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{x}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (22)
 > R2 := VectorField(x*D[z] - z*D[x], space = [x,y,z]);
 ${\mathrm{R2}}{≔}{-}{z}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{x}{}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (23)
 > R3 := VectorField(y*D[z] - z*D[y], space = [x,y,z]);
 ${\mathrm{R3}}{≔}{-}{z}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{y}{}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (24)
 > X := VectorField(xi(x,y,z)*D[x] + eta(x,y,z)*D[y] + zeta(x,y,z)*D[z], space = [x,y,z]);
 ${X}{≔}{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{ζ}}{}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (25)

Then a LAVF object as the vector fields system for SO(3) can be constructed by

 > SO3 := EliminationLAVF(X, [R1, R2, R3]);
 ${\mathrm{SO3}}{≔}\left[{\mathrm{\xi }}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{ζ}}{}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right]\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{&where}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}\left\{\left[{\mathrm{\xi }}{=}\frac{{-}{\mathrm{\eta }}{}{y}{-}{\mathrm{ζ}}{}{z}}{{x}}{,}{{\mathrm{\eta }}}_{{x}}{=}\frac{\left({{\mathrm{ζ}}}_{{y}}\right){}{z}{+}{\mathrm{\eta }}}{{x}}{,}{{\mathrm{\eta }}}_{{y}}{=}{0}{,}{{\mathrm{\eta }}}_{{z}}{=}{-}{{\mathrm{ζ}}}_{{y}}{,}{{\mathrm{ζ}}}_{{y}{,}{y}}{=}{0}{,}{{\mathrm{ζ}}}_{{x}}{=}\frac{{-}\left({{\mathrm{ζ}}}_{{y}}\right){}{y}{+}{\mathrm{ζ}}}{{x}}{,}{{\mathrm{ζ}}}_{{z}}{=}{0}\right]\right\}$ (26)

Some geometric properties of SO(3).

 > OrbitDimension(SO3);
 ${2}$ (27)
 > IsTransitive(SO3);
 ${\mathrm{false}}$ (28)
 > InvariantCount(SO3);
 ${1}$ (29)

Invariants may be found via integration.

 > Invariants(SO3);
 $\left[{{x}}^{{2}}{+}{{y}}^{{2}}{+}{{z}}^{{2}}\right]$ (30)

We can explore the geometric properties of SO3 in further detail by extracting its orbit distribution.

 > OD := OrbitDistribution(SO3);
 ${\mathrm{OD}}{≔}\left\{{-}\frac{{y}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}}{{x}}{+}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{,}{-}\frac{{z}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}}{{x}}{+}\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}\right\}$ (31)

OD is also a Maple object named Distribution, and it has access to various methods.

 > type(OD, 'Distribution');
 ${\mathrm{true}}$ (32)
 > exports(OD, 'static');
 ${\mathrm{GetSpace}}{,}{\mathrm{GetVectorFields}}{,}{\mathrm{GetAnnihilator}}{,}{\mathrm{AreSameSpace}}{,}{\mathrm{IsTrivial}}{,}{\mathrm{Dimension}}{,}{\mathrm{Codimension}}{,}{\mathrm{IsInvolutive}}{,}{\mathrm{IsIntegrable}}{,}{\mathrm{Integrals}}{,}{\mathrm{IsSubspace}}{,}{\mathrm{Intersection}}{,}{\mathrm{VectorSpaceSum}}{,}{\mathrm{IsInvariant}}{,}{\mathrm{DerivedDistribution}}{,}{\mathrm{CauchyDistribution}}{,}{\mathrm{dchange}}{,}{\mathrm{DChange}}{,}{\mathrm{indets}}{,}{\mathrm{has}}{,}{\mathrm{hastype}}{,}{\mathrm{type}}{,}{\mathrm{convert}}$ (33)