updates/R5/newpkg - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : updates/R5/newpkg

New Packages in Maple V Release 5

  

This file describes the new packages available in Release 5 of Maple.

 

Context package

Interface to Matlink

Codegen - Code generation package

algcurves - The algebraic curves package

diffalg - Package for manipulating systems of differential polynomial equations (ODE or PDE)

geom3d - Introduction to the geom3d package

Groebner - The Groebner package and Groebner bases.

Ore_algebra - The Ore_algebra package and Ore algebras.

PDEtools - Solving Partial Differential Equations

Context package

• 

Context

Interface to Matlink

• 

Matlab

Codegen - Code generation package

• 

GRAD - See GRADIENT

• 

GRADIENT - Compute the Gradient of a Maple procedure

with(codegen):

F := proc(x)
  local t;
  t := x;
  x+t*t;
end;

F:=procxlocalt;t:=x;x+t*tend proc

(1)

F(x,y);

x2+x

(2)

G := GRADIENT(F);

G:=procxlocaldf,t;t:=x;df:=array1..1;df[1]:=2*t;returndf[1]+1end proc

(3)
• 

HESSIAN - Compute the HESSIAN matrix of a Maple procedure

F := proc(x,y)
  local t;
  t := x*y;
  x+t-y*t;
end;

F:=procx,ylocalt;t:=y*x;x+ty*tend proc

(4)

F(x,y);

y2x+yx+x

(5)

H := HESSIAN(F); # reverse mode

H:=procx,ylocaldf,df1,dfr0,grd,grd1,grd2,t1;df1:=−y+1;t1:=df1;grd1:=t1*y+1;grd2:=t1*xy*x;df:=array1..4;dfr0:=array1..4;df[3]:=1;df[2]:=df[3]*y;df[1]:=df[2];dfr0[4]:=1;dfr0[2]:=dfr0[4]*x;dfr0[1]:=dfr0[2];grd:=array1..2,1..2;grd[1,1]:=0;grd[1,2]:=t1*df[3]df[1];grd[2,1]:=dfr0[4]*t1y;grd[2,2]:=−dfr0[4]*xdfr0[1];returngrdend proc

(6)
• 

JACOBIAN - Compute the JACOBIAN matrix of a Maple procedure

f := proc(x,y) x*y^2; end;

f:=procx,yx*y^2end proc

(7)

g := proc(x,y) x^2*y; end;

g:=procx,yx^2*yend proc

(8)

J := JACOBIAN([f,g]);

J:=procx,ylocaldf,dfr0,grd,t1,t2;t1:=y^2;t2:=x^2;df:=array1..2;dfr0:=array1..2;df[1]:=x;dfr0[2]:=y;grd:=array1..2,1..2;grd[1,1]:=t1;grd[1,2]:=2*y*df[1];grd[2,1]:=2*dfr0[2]*x;grd[2,2]:=t2;returngrdend proc

(9)

print(J(x,y));

y22yx2yxx2

(10)
• 

declare - Declare the type of a parameter

g := proc(y)
  local A;
  A := array(1 .. 2);
  A[1] := y^2;
  A[2] := y^2;
end:

declare(y::numeric,g);

procy::numericlocalA;A:=array1..2;A[1]:=y^2;A[2]:=y^2end proc

(11)
• 

dontreturn - Do not return a value from a Maple procedure

f := proc(a,b)
    a := 3;
    b := array(1..2,1..2,[[1,2],[3,4]]);
    RETURN(a,b);
end;

f:=proca,ba:=3;b:=array1..2,1..2,1,2,3,4;RETURNa,bend proc

(12)

dontreturn(a,f);

proca,ba:=3;b:=array1..2,1..2,1,2,3,4;returnbend proc

(13)
• 

codegen,fortran - Generate fortran code

f := 12*x+4-y+6*x;

f18x+4y

(14)

fortran(f);

      t0 = 18*x+4-y

• 

horner - Convert formulae in a procedure to horner form

h := proc(x,y,z)
  1-2*x*y-x*y^2*z*(1-x);
end;

h:=procx,y,z12*y*xx*y^2*z*1xend proc

(15)

horner(h,x);

procx,y,z1+x*y^2*zy^2*z2*y*xend proc

(16)

horner(h,[x,y]);

procx,y,z1+−y*z2*y+x*y^2*z*xend proc

(17)
• 

intrep2maple - Converts an abstract syntax tree to a Maple procedure

f := proc(x)
  local t;
  t := sin(x);
  x*t;
end:

tree := maple2intrep(f);

treeProcNamef..float,Parametersx..float,Options,Description,Localst..float,Globals,StatSeqAssignt,sinx,xt

(18)

intrep2maple(tree);

procxlocalt;t:=sinx;x*tend proc

(19)
• 

joinprocs - Join the body of two or more Maple procedures together

f := proc(x,y) local e,t; e := exp(-x); t := x^2; t*e; end:

g := proc(x,y) local e,t; e := exp(-x); t := y^2; t*e; end:

J := joinprocs([f,g]);

J:=procx,ylocale,resultf,resultg,t;e:=exp−x;t:=x^2;resultf:=e*t;e:=exp−x;t:=y^2;resultg:=e*t;returnresultf,resultgend proc

(20)
• 

makeglobal - Make a variable to be a global variable

f := proc(x)
  local b;
    b := hfarray([[x*2,3],[4.5,32]]);
end:

makeglobal(b,f);

procxglobalb;b:=hfarray2*x,3,4.5,32end proc

(21)
• 

makeparam - Change the variable to be a parameter

f := proc()
  local x;
    x := 3*x;
end:

g := makeparam(x,f);

g:=procxx:=3*xend proc

(22)
• 

makeproc - Make a Maple procedure from a formula(e)

f := x-y*x*exp(-3);

fxyxⅇ−3

(23)

makeproc(f,[x,y]);

procx,yxy*x*exp−3end proc

(24)
• 

makevoid - Do not return any values from a Maple procedure

f := proc(x,A::array(2..2))
  A[1,1] := x^2;
  RETURN(x,A);
end:

makevoid(f);

procx,A::array2..2A[1,1]:=x^2;returnend proc

(25)
• 

maple2intrep - Converts a Maple procedure to an abstract syntax tree

f := proc(x)
  local t;
    t := sin(x);
    x*t;
end:

tree := maple2intrep(f);

treeProcNamef..float,Parametersx..float,Options,Description,Localst..float,Globals,StatSeqAssignt,sinx,xt

(26)
• 

optimize - Common subexpression optimization

f := 2^x-x^3;

f2xx3

(27)

optimize(f);

t1=2x,t2=x2,t4=t2x+t1

(28)
• 

packlocals - Pack locals of a Maple procedure into an array

f := proc(x,y,z)
  local w,t;
    w := y^2;
    t := x*w*z;
    z-t^2;
end:

packlocals(f,[w,t],A);

procx,y,zlocalA;A:=array1..2;A[1]:=y^2;A[2]:=x*A[1]*z;−A[2]^2+zend proc

(29)
• 

packparams or packargs - Pack parameters (or arguments) of a Maple procedure into an array

f := proc(x,y,z)
  local s,t;
    s := y^2;
    t := x*s*z;
    t^2;
end;

f:=procx,y,zlocals,t;s:=y^2;t:=x*s*z;t^2end proc

(30)

packparams(f,[x,y,z],A);

procA::array1..3locals,t;s:=A[2]^2;t:=A[1]*s*A[3];t^2end proc

(31)
• 

prep2trans - Prepare a Maple procedure for translation

f := proc(x)
  piecewise(x<0,0,x<1,x,x>1,2-x,0);
end;

f:=procxpiecewisex<0&comma;0&comma;x<1&comma;x&comma;1<x&comma;2x&comma;0end proc

(32)

prep2trans(f);

procxifx<0then0elifx<1thenxelif1<xthen2xelse0end ifend proc

(33)
• 

split - Prepare a Maple procedure for automatic differentiation

h := proc(a,b)
  324*exp(a)/56*b*3*a;
end;

h:=proca&comma;b243&sol;14&ast;expa&ast;b&ast;aend proc

(34)

split(h);

proca&comma;blocals0&semi;s0:=b&ast;a&semi;return243&sol;14&ast;s0&ast;expaend proc

(35)
• 

swapargs - Interchange two arguments in a Maple procedure

f := proc(x,y,z)
  local s,t;
    s := y^2;
    t := x/60-z;
    t^2;
end:

swapargs(f,1=2);

procy&comma;x&comma;zlocals&comma;t&semi;s:=y&Hat;2&semi;t:=1&sol;60&ast;xz&semi;t&Hat;2end proc

(36)

algcurves - The algebraic curves package

• 

Weierstrassform - Find an isomorphism for function fields with genus 1

with(algcurves):

f:=x^4+y^4-2*x^3+x^2*y-2*y^3+x^2-x*y+y^2:

v:=Weierstrassform(f,x,y,x0,y0);

vx03+23x0+1108+y02&comma;3y+2x3x&comma;x32xy2+2y3x2+2yx2y22x2x1&comma;162x03+324x02162x0y0135x0+108y0+156162x04432x03+432x02192x0+194&comma;162x04432x03+162x02y0+351x02216x0y0246x0+72y0+104162x04432x03+432x02192x0+194

(37)
• 

genus - Find the genus of an algebraic curve

f:=x^4-y^3-y;

fx4y3y

(38)

factor(f);

x4y3y

(39)

genus(f,x,y);

3

(40)
• 

homogeneous - Make a polynomial in two variables homogeneous in three variables

f:=a^2-b^3;

fb3+a2

(41)

homogeneous(f,b,a,c);

a2cb3

(42)
• 

integral_basis - Find integral bases of algebraic function fields

alpha:=RootOf(x^3+7,x);

αRootOf_Z3+7

(43)

f:=y^8+3*x*y^5*alpha+5*x^4+x^6*alpha;

fy8+RootOf_Z3+7x6+3RootOf_Z3+7xy5+5x4

(44)

integral_basis(f,x,y);

1&comma;y&comma;y2&comma;y3x&comma;y4x&comma;y2y3+3xRootOf_Z3+7x2&comma;y3y3+3xRootOf_Z3+7x2&comma;y4y3+3xRootOf_Z3+7x3

(45)
• 

j_invariant - Find the j invariant of an elliptic curve

f:=y^5+4/3-23/3*y^2+11*y^3-17/3*y^4-16/3*x^2+16/3*x^3-4/3*x^4:

  

check to see if genus is 1 first

genus(f,x,y);

1

(46)

j_invariant(f,x,y);

1404928171

(47)
• 

parametrization - Calculate parametrization for a curve with genus 0

f:=y^5+2*x*y^2+2*x*y^3+x^2*y-4*x^3*y+2*x^5:

v:=parametrization(f,x,y,t);

v24192t56048t4+2520t3238t2+7t181604t5103680t4+17280t31440t2+60t1&comma;16464t5+6860t4686t3181604t5103680t4+17280t31440t2+60t1

(48)
• 

plot_knot - Make a tubeplot for a singularity knot

plot_knot(x^2+y^2,x,y,axes=normal);

• 

puiseux - Determine the Puiseux expansion of an algebraic function

Root:=RootOf(x^2-5);

RootRootOf_Z25

(49)

f := 4+Root-y^4+x*5;

fy4+RootOf_Z25+5x+4

(50)

puiseux(f,x=0,y,3);

75RootOf_Z4RootOf_Z254RootOf_Z254841575RootOf_Z4RootOf_Z2543872x2+5RootOf_Z4RootOf_Z254RootOf_Z2544+5RootOf_Z4RootOf_Z25411x+RootOf_Z4RootOf_Z254

(51)
• 

singularities - Determine the singularities of an algebraic curve

f := x^3*y+63*y-4*y^2+6*x*y-8*x;

fyx3+6yx4y28x+63y

(52)

singularities(f,x,y);

0&comma;1&comma;0&comma;2&comma;1&comma;1

(53)

diffalg - Package for manipulating systems of differential polynomial equations (ODE or PDE)

  

For examples of differential polynomials, please see the Differential example worksheet.

• 

Rosenfeld_Groebner - Find the representation of radical ideal

• 

belongs_to - Test if a differential polynomial belongs to a radical differential ideal

• 

delta_leader - Return the difference of the derivation operators of the leaders of two differential polynomials

• 

delta_polynomial - Return the delta-polynomial generated by two differential polynomials

• 

denote - Convert a differential polynomial from an external form to another one

• 

derivatives - Return the derivatives occurring in a differential polynomial

• 

differential_ring - Define a differential polynomial ring endowed with a ranking and notations

• 

differential_sprem - Return the sparse pseudo remainder of a differential polynomial

• 

differentiate - Differentiate a differential polynomial

• 

equations - Return the equations of a regular differential ideal

• 

field_extension - Define a field extension of the field of the rational numbers

• 

formal_power_series - Compute a formal power series from a regular differential ideal

• 

greater - Compare the rank of two differential polynomials

• 

inequations - Return the inequations of a regular differential ideal

• 

initial - Return the initial of a differential polynomial

• 

initial_conditions - Return the list of the initial conditions of a regular differential ideal

• 

is_orthonomic - Test if a regular differential ideal is presented by an orthonomic system of equations

• 

leader - Return the leader of a differential polynomial

• 

power_series_solution a solution of a regular differential ideal whose components are formal power series

• 

print_ranking - Print a message describing the ranking of a differential polynomial ring

• 

rank - Return the rank of a differential polynomial

• 

reduced - Test if a differential polynomial is reduced w.r.t. differential polynomials

• 

reduced_form - Find a reduced form of a differential polynomial modulo a radical differential ideal

• 

rewrite_rules - Display the equations of a regular differential ideal using a special syntax

• 

separant - Display the separant of a differential polynomial

geom3d - Introduction to the geom3d package

• 

AreCollinear - Test if three points are collinear

restart;

with(geom3d):

point(A,0,0,0):

point(B,1,2,1):

point(C,2,4,2):

geom3d[AreCollinear](A,B,C);

true

(54)
• 

AreConcurrent - Test if three lines are concurrent

point(A,1,1,1);

A

(55)

point(B,-1,-1,-1);

B

(56)

point(C,10,-10,10);

C

(57)

point(D,-10,10,-10);

Warning, a geometry object has been assigned to the protected name D.  Use of protected names for geometry objects is not recommended and may break Maple functionality.

D

(58)

point(E,-66,5,0);

E

(59)

point(F,66,-5,0);

F

(60)

line(line1,[A,B]);

line1

(61)

line(line2,[C,D]);

line2

(62)

line(line3,[E,F]);

line3

(63)

geom3d[AreConcurrent](line1,line2,line3);

true

(64)
• 

AreConjugate - Test if a pair of points is conjugate with respect to a sphere

point(A,0,0,0):

point(B,3,-4,2):

point(C,5,3,4):

sphere(sph,[A,5],[x,y,z]):

geom3d[AreConjugate](B,C,sph);

false

(65)
• 

AreCoplanar - Test if the given objects are on the same plane

point(A,0,0,0): point(B,34,2,0): point(C,2,-15,0):

plane(pl1,[A,B,C]):

randpoint(D,pl1):

geom3d[AreCoplanar](A,B,C,D);

true

(66)
• 

AreDistinct - Test if given objects are distinct

sphere(sph1,[point(A,0,0,0),3]):

line(line1,[A,point(B,0,0,21)]):

rotation(sph2,sph1,Pi/4,line1):

geom3d[AreDistinct](sph1,sph2);

false

(67)
• 

AreParallel - Test if two objects are parallel to each other

point(A,1,3,2): point(B,5,2,3):

line(line1,[A,B]);

line1

(68)

plane(pl,[point(C,6,2,43),point(D,6,23,3),point(E,56,2,31)]):

geom3d[AreParallel](line1,pl);

false

(69)
• 

ArePerpendicular - Test if two objects are perpendicular to each other

point(A,[6,3,2]):

point(B,[5,2,3]):

point(C,[6,2,1]):

plane(pl,[A,B,C]):

line(line1,[point(D,24,26,-2),point(E,26,-61,4)]):

geom3d[ArePerpendicular](line1,pl);

false

(70)
• 

AreSkewLines - Test if two lines are skew

line(line01,[point(A,34,2,-13),point(B,62,-21,5)]):

line(line02,[point(C,1,1,6),point(D,-26,12,-72)]):

AreSkewLines(line01,line02);

true

(71)
• 

DefinedAs - Return the name of endpoints or vertices of segment, directed segment, triangle

point(A,6,3,2):

point(B,6,21,-2):

point(C,-25,2,6):

triangle(tr1,[A,B,C]);

tr1

(72)

DefinedAs(tr1);

A&comma;B&comma;C

(73)
• 

DirectionRatios - Return the direction-ratios of a line

line(ln1,[point(A,6,2,65),point(B,-62,2,-46)]):

DirectionRatios(ln1);

681694516945&comma;0&comma;1111694516945

(74)
• 

Equation - Find the equation of a geometric object

sphere(sph1,[point(A,0,0,5),4]):

Equation(sph1,[x,y,z]);

x2+y2+z210z+9=0

(75)
• 

FindAngle - Find the angle between two given objects

plane(pl1,[point(A,3,5,2),point(B,-3,2,0),point(C,5,2,-5)]):

line(ln1,[point(D,5,3,-1),point(E,1,2,5)]):

FindAngle(ln1,pl1);

arcsin130154601154601

(76)
• 

FixedPoint - Return a fixed point on a line

plane(pl1,[point(A,5,2,1),[5,2,5]]):

plane(pl2,[point(B,2,1,-5),[2,5,-6]]):

line(ln1,[pl1,pl2]):

FixedPoint(ln1);

pl1_pl2

(77)

detail(pl1_pl2);

name of the objectpl1_pl2form of the objectpoint3dcoordinates of the point9221&comma;12721&comma;0

(78)
• 

HarmonicConjugate - Find the harmonic conjugate of a point with respect to two other points

point(A,3,4,2):

point(B,2,6,1):

point(C,6,2,2):

HarmonicConjugate(HC,B,C,A);

HC

(79)

coordinates(HC);

0&comma;8&comma;12

(80)
• 

IsEquilateral - Test if a given triangle is equilateral

triangle(tri,[point(A,56,1,2),point(B,2,0,56),point(C,6,1,2)]):

IsEquilateral(tri);

false

(81)
• 

IsFacetted - Check if the given polyhedron is of faceted form

facet(i1,cuboctahedron(c,point(o,0,0,0),2),1);

i1

(82)

IsFacetted(i1);

true

(83)
• 

IsOnObject - Test if a point, a list or a set of points is on a given object

line(ln1,[point(B,0,0,0),point(C,10,4,12)]):

IsOnObject(point(A,5,2,6),ln1);

true

(84)
• 

IsRightTriangle - Test if a given triangle is a right triangle

triangle(tri,[point(A,6,21,6),point(B,2,-7,5),point(C,-6,6,2)],[x,y,z]):

IsRightTriangle(tri);

false

(85)
• 

IsStellated - Check if the given polyhedron is of stellated form

stellate(ste,icosahedron(i,point(o,1,1,1),2),22);

ste

(86)

IsStellated(ste);

true

(87)
• 

IsTangent - Test if a plane is tangent to a sphere

sphere(sph,[point(A,0,0,0),3]):

plane(pl,[point(B,7,2,5),point(C,5,1,-2),point(D,-7,2,-3)]):

IsTangent(pl,sph);

false

(88)
• 

NormalVector - Define the planes

plane(pl,[point(A,6,2,3),point(B,2,1,-5),point(C,-1,6,2)]):

Normvec := NormalVector(pl);

Normvec33&comma;52&comma;−23

(89)
• 

OnSegment - Find the point which divides the segment joining two given points by some ratio

OnSegment(pt,point(A,5,2,-6),point(B,-1,5,2),3);

pt

(90)

detail(pt);

name of the objectptform of the objectpoint3dcoordinates of the point12&comma;174&comma;0

(91)
• 

ParallelVector - Return a direction-ratios of a line

line(ln1,[point(A,6,-6,2),point(B,-5,1,-61)]):

PVec := ParallelVector(ln1);

PVec−11&comma;7&comma;−63

(92)
• 

QuasiRegularPolyhedron - Define a quasi-regular polyhedron

QuasiRegularPolyhedron(QRpoly, [[3],[4]],point(A,6,6,2),3);

QRpoly

(93)
• 

RadicalCenter - Find the radical center of four given spheres

sphere(sph1,[point(A,2,5,1),4]):

sphere(sph2,[point(B,6,-2,3),3]):

sphere(sph3,[point(C,-8,3,7),4]):

sphere(sph4,[point(D,-6,2,-1),6]):

RadicalCenter(pt,sph1,sph2,sph3,sph4);

pt

(94)

coordinates(pt);

141136&comma;4334&comma;0

(95)
• 

RadicalLine - Find the radical line of three given spheres

sphere(sph1,[point(A,2,5,1),4]):

sphere(sph2,[point(B,6,-2,3),3]):

sphere(sph3,[point(C,-8,3,7),4]):

RadicalLine(ln1,sph1,sph2,sph3);

ln1

(96)

detail(ln1);

Warning, assume that the parameter in the parametric equations is _t

Warning, assuming that the names of the axes are _x, _y, and _z

name of the objectln1form of the objectline3dequation of the line_x=14839152_t&comma;_y=15739176_t&comma;_z=312_t

(97)
• 

RadicalPlane - Find the radical plane of two given spheres

sphere(sph1,[point(A,2,5,1),4]):

sphere(sph2,[point(B,6,-2,3),3]):

RadicalPlane(pl,sph1,sph2);

pl

(98)

detail(pl);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectplform of the objectplane3dequation of the plane26+8_x14_y+4_z=0

(99)
• 

StereographicProjection

• 

TangentPlane - Find the tangent plane of a point on a sphere

sphere(sph,[point(A,0,0,0),1]):

point(B,0,0,1):

TangentPlane(pl,B,sph);

pl

(100)

detail(pl);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectplform of the objectplane3dequation of the plane1_z=0

(101)
• 

area - Calculate the area of a triangle, surface area of sphere, regular polyhedron

sphere(sph1,[point(A,2,5,1),4]):

area(sph1);

64π

(102)
• 

altitude - Find the altitude of a given triangle

triangle(tri,[point(A,3,5,1),point(B,-6,1,-4),point(C,7,3,0)]):

altitude(al,tri,B);

al

(103)

form(al);

segment3d

(104)

detail(al);

name of the objectalform of the objectsegment3dthe 2 ends of the segment2921&comma;15121&comma;4421&comma;2921&comma;15121&comma;4421

(105)
• 

center - Find the center of a given geometric object

tetrahedron(t,point(pt,1,2,3),3):

center(ctr,t);

ctr

(106)

form(ctr);

point3d

(107)

coordinates(ctr);

1&comma;2&comma;3

(108)
• 

centroid - Find the centroid of a given general tetrahedron or a given triangle or a list of points in space

point(A,0,0,0),point(B,1,0,0),point(C,0,0,1),point(F,0,1,0):

gtetrahedron(t,[A,B,C,F]):

triangle(tri,[point(A,4,1,2),point(B,2,5,1),point(C,-5,1,-6)]);

tri

(109)

centroid(ctd,tri);

ctd

(110)

centroid(ctd1,t);

ctd1

(111)

form(ctd);

point3d

(112)

coordinates(ctd);

13&comma;73&comma;−1

(113)
• 

circle - Create a circle

sphere(sph,[point(A,5,2,6),5]):

plane(pl,[point(B,-6,1,3),point(C,6,7,1),point(D,-2,2,5)]):

geom3d:-circle(cir,[sph,pl]);

cir

(114)

detail(cir);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectcirform of the objectcircle3dname of the centercenter_cir_1coordinates of the center1404341&comma;1370341&comma;2304341radius of the center2569129341the circle lies on the planepl,name of the objectplform of the objectplane3dequation of the plane152+14_x32_y12_z=0

(115)
• 

coordinates - Display the coordinates of a given point

point(A,5,2,5);

A

(116)

coordinates(A);

5&comma;2&comma;5

(117)
• 

detail - Give a detailed description of an object, or a list or set of objects

sphere(sph,[point(A,5,2,6),4]);

sph

(118)

detail(sph);

Warning, assume that the name of the axes are _x, _y and _z

name of the objectsphform of the objectsphere3dname of the centerAcoordinates of the center5&comma;2&comma;6radius of the sphere4surface area of the sphere64πvolume of the sphere256π3equation of the sphere_x2+_y2+_z210_x4_y12_z+49=0

(119)
• 

distance - Find the distance between two given objects

line(ln1,[point(A,6,2,1),point(B,-2,21,1)]):

line(ln2,[point(C,2,1,2),point(D,3,-5,3)]):

distance(ln1,ln2);

5512661266

(120)
• 

draw - Create a three-dimensional plot

sphere(sph,[point(A,5,2,6),4]);

sph

(121)

draw(sph);

• 

dsegment - Define a directed segment

dsegment(dseg,[point(A,5,2,-3),point(B,-5,2,1)]);

dseg

(122)

detail(dseg);

name of the objectdsegform of the objectdsegment3dthe initial and end points of the directed segment5&comma;2&comma;−3&comma;−5&comma;2&comma;1

(123)
• 

faces - Return the faces of a polyhedron

hexahedron(hexa,point(A,6,2,-3),3);

hexa

(124)

faces(hexa);

3+6&comma;2+3&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;23&comma;33&comma;3+6&comma;2+3&comma;33&comma;3+6&comma;2+3&comma;33

(125)
• 

facet - Define a faceting of a given polyhedron

facet(icofac,icosidodecahedron(ico,point(A,5,2,-4),2));

icofac

(126)

vertices(icofac);

5&comma;2&comma;−4&comma;5&comma;251412+5252+52+2&comma;−4&comma;51412+5252+52+5&comma;2512+5253420+12+52514452+52+2&comma;2512+5253420+12+52514452+524&comma;2512+5253420+12+52514452+52+5&comma;51412+5252+52+2&comma;2512+5253420+12+52514452+524&comma;2512+525342012+52514452+52+5&comma;51412+5252+52+2&comma;2512+5253420+12+52514452+524&comma;51412+5252+52+5&comma;2512+5253420+12+52514452+52+2&comma;2512+5253420+12+52514452+524&comma;51412+5252+52+5&comma;2512+5253420+12+52514452+52+2&comma;2512+525342012+52514452+524&comma;2512+525342012+52514452+52+5&comma;51412+5252+52+2&comma;2512+525342012+52514452+524&comma;2512+5253420+12+52514452+52+5&comma;51412+5252+52+2&comma;2512+525342012+52514452+524&comma;51412+5252+52+5&comma;2512+5253420+12+52514452+52+2&comma;2512+525342012+52514452+524&comma;5&comma;251412+5252+52+2&comma;−4&comma;51412+5252+52+5&comma;2512+525342012+52514452+52+2&comma;2512+5253420+12+52514452+524&comma;2512+525342012+52514452+52+5&comma;51412+5252+52+2&comma;2512+5253420+12+52514452+524&comma;2512+5253420+12+52514452+52+5&comma;51412+5252+52+2&comma;2512+5253420+12+52514452+524&comma;51412+5252+52+5&comma;2512+525342012+52514452+52+2&comma;2512+5253420+12+52514452+524&comma;51412+5252+52+5&comma;2512+525342012+52514452+52+2&comma;2512+525342012+52514452+524&comma;51412+5252+52+5&comma;2512+525342012+52514452+52+2&comma;2512+525342012+52514452+524&comma;2512+525342012+52514452+52+5&comma;51412+5252+52+2&comma;2512+525342012+52514452+524&comma;2512+5253420+12+52514452+52+5&comma;51412+5252+52+2&comma;2512+525342012+52514452+524&comma;5&comma;2&comma;251412+5252+524&comma;2512+5253420+12+52514452+52+5&comma;2512+5253420+12+52514452+52+2&comma;51412+5252+524&comma;2512+5253420+12+52514452+52+5&comma;2512+525342012+52514452+52+2&comma;51412+5252+524&comma;2512+5253420+12+52514452+52+5&comma;2512+5253420+12+52514452+52+2&comma;51412+5252+524&comma;5&comma;2&comma;251412+5252+524&comma;2512+5253420+12+52514452+52+5&comma;2512+525342012+52514452+52+2&comma;51412+5252+524&comma;2512+525342012+52514452+52+5&comma;2512+525342012+52514452+52+2&comma;51412+5252+524&comma;2512+525342012+52514452+52+5&comma;2512+5253420+12+52514452+52+2&comma;51412+5252+524&comma;2512+525342012+52514452+52+5&comma;2512+5253420+12+52514452+52+2&comma;51412+5252+524&comma;2512+525342012+52514452+52+5&comma;2512+525342012+52514452+52+2&comma;51412+5252+524&comma;251412+5252+52+5&comma;2&comma;−4&comma;251412+5252+52+5&comma;2&comma;−4

(127)
• 

form - Return the form of the geometric object

tetrahedron(t,point(A,5,2,1),3);

t

(128)

form(t);

tetrahedron3d

(129)
• 

gtetrahedron - Define a general tetrahedron

point(A,0,0,0),point(B,1,0,0),point(C,0,0,1),point(F,0,1,0):

gtetrahedron(gt, [A, B, C, F]);

gt

(130)

form(gt);

gtetrahedron3d

(131)
• 

incident - Return the vertices incident to a given vertex of a polyhedron

tetrahedron(t,point(A,0,0,0),4):

incident(t,2);

433&comma;433&comma;433&comma;433&comma;433&comma;433&comma;433&comma;433&comma;433

(132)
• 

intersection - Find the intersections between two or three given objects

plane(pl1,[point(A,5,2,6),point(B,-6,1,2),point(C,5,-6,1)]):

plane(pl2,[point(D,26,-7,2),point(E,1,2,9),point(F,2,1,6)]):

intersection(ln1,pl1,pl2);

ln1

(133)

Equation(ln1,x);

62223+5104x&comma;187231328x&comma;736x

(134)
• 

line - Define the lines

line(ln1,[point(A,56,2,6),point(B,2,-6,2)]);

ln1

(135)

detail(ln1);

Warning, assume that the parameter in the parametric equations is _t

Warning, assuming that the names of the axes are _x, _y, and _z

name of the objectln1form of the objectline3dequation of the line_x=5654_t&comma;_y=28_t&comma;_z=64_t

(136)
• 

midpoint - Find the midpoint of segment joining two points

segment(seg,[point(A,5,2,3),point(B,-3,2,1)]):

midpoint(C,seg);

C

(137)

detail(C);

name of the objectCform of the objectpoint3dcoordinates of the point1&comma;2&comma;2

(138)
• 

parallel - Find a plane or line going through a given point or line, and parallel to a given line or plane

point(A,5,2,1):

plane(pl,[point(C,-2,3,1),point(D,7,34,6),point(E,6,-5,21)]):

parallel(parpl,A,pl);

parpl

(139)

Equation(parpl,[x,y,z]);

2700+660x140y320z=0

(140)
• 

plane - Define the planes

plane(pl,[point(A,6,2,1),[7,4,-3]]);

pl

(141)

detail(pl);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectplform of the objectplane3dequation of the plane47+7_x+4_y3_z=0

(142)
• 

point - Define the points

point(A,[6,-43,2]);

A

(143)

detail(A);

name of the objectAform of the objectpoint3dcoordinates of the point6&comma;−43&comma;2

(144)
• 

polar - Find the polar of a given point with respect to a given sphere

sphere(sph,[point(A,-2,1,5),3]):

point(B,5,2,3):

polar(pol,B,sph);

pol

(145)

detail(pol);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectpolform of the objectplane3dequation of the plane14+7_x+_y2_z=0

(146)
• 

pole - Find the pole of a given plane with respect to a given sphere

sphere(sph,[point(A,-2,1,5),3]):

plane(pl,[point(B,3,5,1),point(C,6,-4,2),point(D,-2,3,5)]):

pole(pt,pl,sph);

pt

(147)

detail(pt);

name of the objectptform of the objectpoint3dcoordinates of the point57&comma;2314&comma;9714

(148)
• 

powerps - Calculate the power of a given point with respect to a given sphere

point(A,3,5,2):

sphere(sph,[point(B,6,2,1),3]):

powerps(A,sph);

10

(149)
• 

radius - Find the radius of a given object

hexahedron(hexa,point(A,6,2,-6),3):

radius(hexa);

3

(150)
• 

randpoint - Generate a random point in a given range, on a line, a plane, or a sphere

line(ln1,[point(A,6,2,2),point(B,-6,2,1)]):

randpoint(C,ln1);

C

(151)
• 

schlafli - Return the schlafli symbol of a given polyhedron

tetrahedron(t,point(A,-8,9,3),3);

t

(152)

schlafli(t);

3&comma;3

(153)
• 

segment - Define a segment

segment(seg,point(A,5,2,6),point(B,-6,2,-9));

seg

(154)

detail(seg);

name of the objectsegform of the objectsegment3dthe 2 ends of the segment5&comma;2&comma;6&comma;−6&comma;2&comma;−9

(155)
• 

sides - The sides of a given triangle, a regular polyhedron, an Archimedean solid

triangle(tri,[point(A,5,2,6),point(B,-6,2,1),point(C,3,-9,0)]):

sides(tri);

146&comma;203&comma;161

(156)
• 

sphere - Define the sphere

sphere(sph,[point(A,6,6,7),3]);

sph

(157)

detail(sph);

Warning, assume that the name of the axes are _x, _y and _z

name of the objectsphform of the objectsphere3dname of the centerAcoordinates of the center6&comma;6&comma;7radius of the sphere3surface area of the sphere36πvolume of the sphere36πequation of the sphere_x2+_y2+_z212_x12_y14_z+112=0

(158)
• 

stellate - Define a stellation of a given polyhedron

stellate(stelicos,icosahedron(icos,point(A,6,2,2),3),25);

stelicos

(159)
• 

tname - Find the name of the parameter used in the parametric equations of the given line

_EnvTName := 't';

_EnvTNamet

(160)

line(ln1,[point(A,5,2,1),point(B,-2,1,9)]):

detail(ln1);

Warning, assuming that the names of the axes are _x, _y, and _z

name of the objectln1form of the objectline3dequation of the line_x=57t&comma;_y=2t&comma;_z=1+8t

(161)

tname(ln1);

t

(162)
• 

triangle - Define the triangles

triangle(tri,[point(A,65,2,1),point(B,-2,1,5),point(C,-6,-2,-1)]);

tri

(163)

detail(tri);

name of the objecttriform of the objecttriangle3dthe 3 vertices65&comma;2&comma;1&comma;−2&comma;1&comma;5&comma;−6&comma;−2&comma;−1

(164)
• 

vertices - Return the vertices of a polyhedron, parallelepiped

triangle(tri,[point(A,5,2,6),point(B,8,-3,2),point(C,-6,2,-4)]):

vertices(tri);

5&comma;2&comma;6&comma;8&comma;−3&comma;2&comma;−6&comma;2&comma;−4

(165)
• 

volume - Calculate the volume of a sphere, regular polyhedron

sphere(sph,[point(A,6,2,3),3]);

sph

(166)

volume(sph);

36π

(167)
• 

xcoord - Find the ``x''-coordinate of a given point

point(A,5,2,1);

A

(168)

xcoord(A);

5

(169)
• 

xname - Find the name of the x-axis used to define an object

sphere(sph,[point(A,6,2,-5),4]):

Equation(sph,[x,y,z]);

x2+y2+z212x4y+10z+49=0

(170)

xname(sph);

x

(171)
• 

ycoord - Find the ``y''-coordinate of a given point

point(A,5,2,1);

A

(172)

ycoord(A);

2

(173)
• 

yname - Find the name of the y-axis used to define an object

sphere(sph,[point(A,6,2,-5),4]):

Equation(sph,[x,y,z]);

x2+y2+z212x4y+10z+49=0

(174)

yname(sph);

y

(175)
• 

zcoord - Find the ``z''-coordinate of a given point

point(A,5,2,1);

A

(176)

zcoord(A);

1

(177)
• 

zname - Find the name of the z-axis used to define an object

sphere(sph,[point(A,6,2,-5),4]):

Equation(sph,[x,y,z]);

x2+y2+z212x4y+10z+49=0

(178)

zname(sph);

z

(179)

Archimedean solids

• 

Archimedean - Define an Archimedean solid

Archimedean(argon,_t([5,3]),point(A,5,2,6),3);

argon

(180)

form(argon);

TruncatedDodecahedron3d

(181)
• 

GreatRhombicuboctahedron - Define an Archimedean solid

GreatRhombiicosidodecahedron(gon,point(A,-5,2,1),3);

gon

(182)

form(gon);

RhombitruncatedIcosidodecahedron3d

(183)
• 

GreatRhombiicosidodecahedron - Define an Archimedean solid

GreatRhombiicosidodecahedron(gon,point(A,-5,2,1),3);

gon

(184)

form(gon);

RhombitruncatedIcosidodecahedron3d

(185)
• 

IsArchimedean - Check if the given polyhedron is an Archimedean solid

Archimedean(argon,_t([5,3]),point(A,5,2,6),3);

argon

(186)

IsArchimedean(argon);

true

(187)
• 

SmallRhombicuboctahedron - Define an Archimedean solid

SmallRhombicuboctahedron(gon,point(A,5,21,-9),2);

gon

(188)

form(gon);

SmallRhombicuboctahedron3d

(189)
• 

SmallRhombiicosidodecahedron - Define an Archimedean solid

SmallRhombiicosidodecahedron(gon,point(A,-6,1,-8),3);

gon

(190)

form(gon);

SmallRhombiicosidodecahedron3d

(191)
• 

SnubCube - Define an Archimedean solid

SnubCube(gon,point(A,-6,1,-8),3);

gon

(192)

form(gon);

SnubCube3d

(193)
• 

SnubDodecahedron - Define an Archimedean solid

SnubDodecahedron(gon,point(A,-6,1,-8),3);

gon

(194)

form(gon);

SnubDodecahedron3d

(195)
• 

TruncatedCuboctahedron - Define an Archimedean solid

TruncatedCuboctahedron(gon,point(A,-6,1,-8),3);

gon

(196)

form(gon);

RhombitruncatedCuboctahedron3d

(197)
• 

TruncatedDodecahedron - Define an Archimedean solid

TruncatedDodecahedron(gon,point(A,-6,1,-8),3);

gon

(198)

form(gon);

TruncatedDodecahedron3d

(199)
• 

TruncatedHexahedron - Define an Archimedean solid

TruncatedHexahedron(gon,point(A,-6,1,-8),3);

gon

(200)

form(gon);

TruncatedHexahedron3d

(201)
• 

TruncatedIcosahedron - Define an Archimedean solid

TruncatedIcosahedron(gon,point(A,-6,1,-8),3);

gon

(202)

form(gon);

TruncatedIcosahedron3d

(203)
• 

TruncatedIcosidodecahedron - Define an Archimedean solid

TruncatedIcosidodecahedron(gon,point(A,-6,1,-8),3);

gon

(204)

form(gon);

RhombitruncatedIcosidodecahedron3d

(205)
• 

TruncatedTetrahedron - Define an Archimedean solid

TruncatedTetrahedron(gon,point(A,-6,1,-8),3);

gon

(206)

form(gon);

TruncatedTetrahedron3d

(207)
• 

cuboctahedron - Define an Archimedean solid

TruncatedTetrahedron(gon,point(A,-6,1,-8),3);

gon

(208)

form(gon);

TruncatedTetrahedron3d

(209)
• 

icosidodecahedron - Define an Archimedean solid

icosidodecahedron(gon,point(A,-6,1,-8),3);

gon

(210)

form(gon);

icosidodecahedron3d

(211)

Quasi-regular Polyhedra

• 

IsQuasi - Check if the given polyhedron is quasi-regular

QuasiRegularPolyhedron(QRpoly,[[3],[4]],point(A,5,2,1),3):

IsQuasi(QRpoly);

true

(212)

Regular Polyhedra (geom3d cont'd...)

• 

GreatDodecahedron - Define a regular polyhedron

GreatDodecahedron(gon,point(A,-6,1,-8),3);

gon

(213)

form(gon);

GreatDodecahedron3d

(214)
• 

GreatIcosahedron - Define a regular polyhedron

GreatIcosahedron(gon,point(A,-6,1,-8),3);

gon

(215)

form(gon);

GreatIcosahedron3d

(216)
• 

GreatStellatedDodecahedron - Define a regular polyhedron

GreatStellatedDodecahedron(gon,point(A,-6,1,-8),3);

gon

(217)

form(gon);

GreatStellatedDodecahedron3d

(218)
• 

InRadius - Return the in-radius of a regular polyhedron

GreatStellatedDodecahedron(gon,point(A,-6,1,-8),3);

gon

(219)

InRadius(gon);

5343512+5232

(220)
• 

IsRegular - Check if the given polyhedron is regular

GreatStellatedDodecahedron(gon,point(A,-6,1,-8),3);

gon

(221)

IsRegular(gon);

true

(222)
• 

MidRadius - Return the mid-radius of a regular polyhedron

GreatIcosahedron(gon,point(A,-6,1,-8),3);

gon

(223)

MidRadius(gon);

3534512+52

(224)
• 

RegularPolyhedron - Define a regular polyhedron

RegularPolyhedron(gon,[5/2,5],point(A,-6,1,-8),3);

gon

(225)

IsRegular(gon);

true

(226)
• 

SmallStellatedDodecahedron - Define a regular polyhedron

SmallStellatedDodecahedron(gon,point(A,-6,1,-8),3);

gon

(227)

form(gon);

SmallStellatedDodecahedron3d

(228)
• 

cube - Define a regular polyhedron

cube(gon,point(A,-6,1,-8),3);

gon

(229)

form(gon);

hexahedron3d

(230)
• 

dodecahedron - Define a regular polyhedron

dodecahedron(gon,point(A,-6,1,-8),3);

gon

(231)

form(gon);

dodecahedron3d

(232)
• 

hexahedron - Define a regular polyhedron

hexahedron(gon,point(A,-6,1,-8),3);

gon

(233)

form(gon);

hexahedron3d

(234)
• 

icosahedron - Define a regular polyhedron

icosahedron(gon,point(A,-6,1,-8),3);

gon

(235)

form(gon);

icosahedron3d

(236)
• 

octahedron - Define a regular polyhedron

octahedron(gon,point(A,-6,1,-8),3);

gon

(237)

form(gon);

octahedron3d

(238)
• 

tetrahedron - Define a regular tetrahedron

tetrahedron(gon,point(A,-6,1,-8),3);

gon

(239)

form(gon);

tetrahedron3d

(240)

Duality

• 

HexakisIcosahedron Define the reciprocal polyhedra of the icosahedron

HexakisIcosahedron(gon,point(A,-6,1,-8),3);

gon

(241)

form(gon);

HexakisIcosahedron3d

(242)
• 

HexakisOctahedron - Define the reciprocal polyhedra of the octahedron

HexakisOctahedron(gon,point(A,-6,1,-8),3);

gon

(243)

form(gon);

HexakisOctahedron3d

(244)
• 

PentagonalHexacontahedron - Define the reciprocal polyhedra of the hexacontahedron

PentagonalHexacontahedron(gon,point(A,-6,1,-8),3);

gon

(245)

form(gon);

PentagonalHexacontahedron3d

(246)
• 

PentagonalIcositetrahedron - Define the reciprocal polyhedra of the icositetrahedron

PentagonalIcositetrahedron(gon,point(A,-6,1,-8),3);

gon

(247)

form(gon);

PentagonalIcositetrahedron3d

(248)
• 

PentakisDodecahedron - Define the reciprocal polyhedra of the dodecahedron

PentakisDodecahedron(gon,point(A,-6,1,-8),3);

gon

(249)

form(gon);

PentakisDodecahedron3d

(250)
• 

RhombicDodecahedron - Define the reciprocal polyhedra of the dodecahedron

RhombicDodecahedron(gon,point(A,-6,1,-8),3);

gon

(251)

form(gon);

RhombicDodecahedron3d

(252)
• 

RhombicTriacontahedron - Define the reciprocal polyhedra of the triacontahedron

RhombicTriacontahedron(gon,point(A,-6,1,-8),3);

gon

(253)

form(gon);

RhombicTriacontahedron3d

(254)
• 

TetrakisHexahedron - Define the reciprocal polyhedra of the hexahedron

TetrakisHexahedron(gon,point(A,-6,1,-8),3);

gon

(255)

form(gon);

TetrakisHexahedron3d

(256)
• 

TrapezoidalHexecontahedron - Define the reciprocal polyhedra of the hexacontahedron

TrapezoidalHexecontahedron(gon,point(A,-6,1,-8),3);

gon

(257)

form(gon);

TrapezoidalHexecontahedron3d

(258)
• 

TrapezoidalIcositetrahedron - Define the reciprocal polyhedra of the icositetrahedron

TrapezoidalIcositetrahedron(gon,point(A,-6,1,-8),3);

gon

(259)

form(gon);

TrapezoidalIcositetrahedron3d

(260)
• 

TriakisIcosahedron - Define the reciprocal polyhedra of the icosahedron

TriakisIcosahedron(gon,point(A,-6,1,-8),3);

gon

(261)

form(gon);

TriakisIcosahedron3d

(262)
• 

TriakisOctahedron - Define the reciprocal polyhedra of the octahedron

TriakisOctahedron(gon,point(A,-6,1,-8),3);

gon

(263)

form(gon);

TriakisOctahedron3d

(264)
• 

TriakisTetrahedron - Define the reciprocal polyhedra of the tetrahedron

TriakisTetrahedron(gon,point(A,-6,1,-8),3);

gon

(265)

form(gon);

TriakisTetrahedron3d

(266)
• 

duality - Define the dual of a given polyhedron

RegularPolyhedron(gon,[5/2,5],point(A,-6,1,-8),3);

gon

(267)

duality(dgon,gon,sphere(sph,[A,MidRadius(gon)]));

dgon

(268)

Transformation

• 

GlideReflect transformation that can be applied directly to a specific geometric object

• 

GlideReflection

• 

RotatoryReflect - A transformation without specifying the object to be applied

• 

RotaryReflection

• 

ScrewDisplace - A transformation without specifying the object to be applied

• 

ScrewDisplacement

• 

StretchRotate - A transformation without specifying the object to be applied

• 

dilate - A transformation without specifying the object to be applied

  

Define t1 which is a homothety with ratio 3, center of homothety (0,0,0)

t1 := dilate(3,point(o,0,0,0));

t1dilate3&comma;o

(269)
• 

homology - Find the space homology of a geometric object

plane(pl,[point(A,4,6,2),point(B,1,2,-3),point(C,-5,2,-9)]):

point(D,3,0,0):

line(ln1,[point(E,0,0,0),point(F,6,0,0)]):

homology(newform,pl,3,D,30,ln1);

newform

(270)

detail(newform);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectnewformform of the objectplane3dequation of the plane8_x+_y4cos30+8sin30+_z8cos30+4sin308463631539125000000081536368461cos302125000000081536368461sin3021250000000=0

(271)
• 

homothety - Find the homothety of a geometric object

point(A,-5,2,0), point(B,2,-6,1):

line(ln1,[A,B]):

homothety(newform,ln1,3,point(C,7,8,4));

newform

(272)

detail(newform);

Warning, assuming that the names of the axes are _x, _y, and _z

name of the objectnewformform of the objectline3dequation of the line_x=29+5129391309t400000000&comma;_y=10732770187t50000000&comma;_z=8+732770187t400000000

(273)
• 

inverse - Find the inverse of a given product of transformations

t1 := dilate(3,point(o,0,0,0));

t1dilate3&comma;o

(274)

point(A,1,0,0), point(B,0,0,1):

line(l1,[o,A]), line(l2,[o,B]):

plane(p,[l1,l2]):

dsegment(AB,[A,B]):

t2 := GlideReflect(p,AB);

t2GlideReflectp&comma;AB

(275)

t3 := ScrewDisplace(Pi/2,line(l3,[A,B]),AB);

t3ScrewDisplaceπ2&comma;l3&comma;AB

(276)

q1 := transprod(t2^t1,t3);

q1transproddilate13&comma;o&comma;reflectp&comma;translateAB&comma;dilate3&comma;o&comma;rotateπ2&comma;l3&comma;translateAB

(277)

q2 := inverse(q1);

q2transprodtranslate_AB&comma;rotate3π2&comma;l3&comma;dilate13&comma;o&comma;translate_AB&comma;reflectp&comma;dilate3&comma;o

(278)
• 

inversion - Find the inversion of a point, plane, or sphere with respect to a given sphere

plane(pl,[point(A,4,-6,2),[5,2,1]]):

sphere(sph,[point(B,6,2,1),5]):

geom3d[inversion](sph1,pl,sph);

sph1

(279)

detail(sph1);

Warning, assume that the name of the axes are _x, _y and _z

name of the objectsph1form of the objectsphere3dname of the centercenter_sph1_1coordinates of the center72&comma;1&comma;12radius of the sphere302surface area of the sphere30πvolume of the sphere5π30equation of the sphere_x2+_y2+_z27_x2_y_z+6=0

(280)
• 

projection - Find the projection of an object on the other object

point(A,3,6,1), point(B,-7,6,-9):

plane(pl,[B,[5,2,1]]):

projection(projectpt,A,pl);

projectpt

(281)

detail(projectpt);

name of the objectprojectptform of the objectpoint3dcoordinates of the point−7&comma;2&comma;−1

(282)
• 

reflect - A transformation without specifying the object to be applied

tetrahedron(t,point(A,3,6,2),3):

ref := reflect(line(ln1,[point(B,3,2,1),point(C,7,-9,2)]));

refreflectln1

(283)
• 

reflection - Transformations that can be applied directly to a specific geometric object

point(A,5,2,1), point(B,-7,9,2), point(C,-3,-7,-9):

sphere(sph,[C,3]):

line(ln1,[A,B]):

reflection(sph1,sph,ln1);

sph1

(284)
• 

rotate - A transformation without specifying the object to be applied

point(A,-9,7,3):

point(B,6,3,7):

line(ln1,[A,B]):

rot := rotate(Pi,ln1);

rotrotateπ&comma;ln1

(285)
• 

rotation - Transformations that can be applied directly to a specific geometric object

plane(pl,[point(A,-9,7,3),[3,-9,2]]):

point(B,6,3,7):

line(ln1,[A,B]):

rotation(pl1,pl,Pi,ln1);

pl1

(286)

detail(pl1);

Warning, assuming that the names of the axes are _x, _y and _z

name of the objectpl1form of the objectplane3dequation of the plane5290257+1899_x257+1601_y257+198_z257=0

(287)
• 

transform - Apply the ``result'' transformation to a specific geometric object

tetrahedron(t,point(A,3,6,2),3):

ref := reflect(line(ln1,[point(B,3,2,1),point(C,7,-9,2)]));

refreflectln1

(288)

transform(t4,t,ref);

t4

(289)

form(t4);

tetrahedron3d

(290)
• 

translate - A transformation without specifying the object to be applied

point(A,5,2,-8), point(B,3,5,-1):

dsegment(dseg,A,B):

trans := translate(dseg);

transtranslatedseg

(291)
• 

translation - Transformations that can be applied directly to a specific geometric object

point(A,5,2,-8), point(B,3,5,-1):

dsegment(dseg,A,B):

triangle(tri,[point(C,5,2,-9),point(D,3,2,1),point(E,-9,3,5)]);

tri

(292)

translation(tri1,tri,dseg);

tri1

(293)

detail(tri1);

name of the objecttri1form of the objecttriangle3dthe 3 vertices3&comma;5&comma;−2&comma;1&comma;5&comma;8&comma;−11&comma;6&comma;12

(294)
• 

transprod - Converts a given transformation or product of transformations into a product of three ``primitive'' transformations (translate, rotate and dilate)

point(A,5,2,-8), point(B,3,5,-1):

dsegment(dseg,A,B):

trans := translate(dseg):

line(ln1,[A,B]):

rot := rotate(Pi,ln1);

rotrotateπ&comma;ln1

(295)

prod := transprod(trans,rot);

prodtransprodtranslatedseg&comma;rotateπ&comma;ln1

(296)

tetrahedron(t,point(C,6,2,6),2);

t

(297)

transform(t5,t,prod);

t5

(298)

form(t5);

tetrahedron3d

(299)

Groebner - The Groebner package and Groebner bases.

• 

fglm - Generalized FGLM algorithm

• 

gbasis - Reduced Groebner basis

• 

gsolve - Preprocess an algebraic system for solving

• 

hilbertdim - The Hilbert dimension of an ideal

• 

hilbertpoly - The Hilbert polynomial of an ideal

• 

hilbertseries - The Hilbert series of an ideal

• 

inter_reduce - Fully inter-reduce a list of polynomials

• 

is_finite - Decide if a given algebraic system has (at most) finitely many solutions

• 

is_solvable - Decide if a given algebraic system is algebraically consistent

• 

leadcoeff - The leading coefficient of a polynomial

• 

leadmon - The leading monomial of a polynomial

• 

leadterm - The leading term of a polynomial

• 

normalf - Normal form of a polynomial modulo an ideal

• 

pretend_gbasis - Add a Groebner basis to the list of known ones

• 

reduce - Full reduction of a polynomial

• 

spoly - The S-polynomial of two skew polynomials

• 

termorder - Create a term order

• 

testorder - Test whether two terms are in increasing order with respect to a given term order

• 

univpoly - The univariate polynomial of lowest degree in an ideal

Ore_algebra - The Ore_algebra package and Ore algebras.

  

For examples, please see the Ore Algebra example worksheet.

• 

Ore_to_DESol - Convert a differential operator to a DESol structure

• 

Ore_to_RESol - Convert a shift operator to a DESol structure

• 

Ore_to_diff - Convert a differential operator to a differential equation

• 

Ore_to_shift - Convert a shift operator to a recurrence equation

• 

annihilators - Skew lcm of a pair of operators

• 

applyopr - Apply an operator to a function

• 

diff_algebra - Create an algebra of linear differential operators

• 

poly_algebra - Create an algebra of commutative polynomials

• 

qshift_algebra - Create an algebra of linear q-difference operators

• 

rand_skew_poly - Random skew polynomial generator

• 

shift_algebra - Create an algebra of linear difference operators

• 

skew_algebra - Declare an Ore algebra

• 

skew_elim - Skew elimination of an indeterminate

• 

skew_gcdex - Extend skew gcd computation

• 

skew_pdiv - Skew pseudo-division

• 

skew_power - Power of an Ore algebra

• 

skew_prem - Skew pseudo-remainder

• 

skew_product - Inner product of an Ore algebra

PDEtools - Solving Partial Differential Equations

• 

charstrip - Find the characteristic strip corresponding to a given, first order PDE

restart;

PDE := x*diff(psi(x,y,z),z)-psi(x,y,z)+y^2*diff(psi(x,y,z),y) = 0;

PDExzψx&comma;y&comma;zψx&comma;y&comma;z+y2yψx&comma;y&comma;z=0

(300)

PDEtools[charstrip](PDE,psi(x,y,z));

&DifferentialD;&DifferentialD;_sψ_s=ψ_s&comma;&DifferentialD;&DifferentialD;_sx_s=0&comma;&DifferentialD;&DifferentialD;_sy_s=y_s2&comma;&DifferentialD;&DifferentialD;_sz_s=x_s

(301)
• 

dchange - Change variables in mathematical expressions

PDE := 1+psi(x,y)^2+y*diff(psi(x,y),x)-x*diff(psi(x,y),y);

PDE1+ψx&comma;y2+yxψx&comma;yxyψx&comma;y

(302)

TR := {x=r*cos(phi), y=r*sin(phi)};

TRx=rcosφ&comma;y=rsinφ

(303)

PDEtools[dchange](TR, PDE, simplify);

ψφ&comma;r2+1φψφ&comma;r

(304)

II := int(psi(r),r):

eq := useintat(II) = II;

eq` `rψ_a&DifferentialD;_a=ψr&DifferentialD;r

(305)

TR2 := {r=sqrt(y(x)^2+x^2),phi(r)=arctan(y(x)/x)};

TR2r=yx2+x2&comma;φr=arctanyxx

(306)

PDEtools[dchange](TR2,eq,known=psi);

` `yx2+x2ψ_a&DifferentialD;_a=ψyx2+x22yx&DifferentialD;&DifferentialD;xyx+2x2yx2+x2&DifferentialD;x

(307)
• 

mapde - Map a PDE to another PDE for easier solving

PDE1 := x^2*diff(psi(x,y),x,x)+2*y*x*diff(psi(x,y),x,y)+y^2*diff(psi(x,y),y,y);

PDE1x22x2ψx&comma;y+2yx2xyψx&comma;y+y22y2ψx&comma;y

(308)

PDEtools[mapde](PDE1, psi, canop);

_&xi;122_&xi;12ψ_&xi;1&comma;_&xi;2where_&xi;1=x&comma;_&xi;2=yx

(309)
• 

difforder - Evaluate the differential order of an expression

eq := diff(psi(x,y),x$2,y$3);

eq5x2y3ψx&comma;y

(310)

PDEtools[difforder](eq), PDEtools[difforder](eq,x), PDEtools[difforder](eq,y);

5,2,3

(311)
• 

pdsolve - Find analytical solutions for PDEs

PDE := Diff(r^2*diff(Phi(r,theta,phi),r),r)
+ 1/sin(theta)*Diff(sin(theta)*diff(Phi(r,theta,phi),theta),theta)
+ 1/sin(theta)^2*diff(diff(Phi(r,theta,phi),phi),phi) = 0;

PDErr2rΦr&comma;θ&comma;φ+θsinθθΦr&comma;θ&comma;φsinθ+2φ2Φr&comma;θ&comma;φsinθ2=0

(312)

pdsolve(PDE);

Φr&comma;θ&comma;φ=f__1rf__2θf__3φwhere&DifferentialD;2&DifferentialD;r2f__1r=f__1r_c1r22&DifferentialD;&DifferentialD;rf__1rr&comma;&DifferentialD;2&DifferentialD;θ2f__2θ=f__2θ_c1+f__2θ_c2sinθ2cosθ&DifferentialD;&DifferentialD;θf__2θsinθ&comma;&DifferentialD;2&DifferentialD;φ2f__3φ=f__3φ_c2

(313)
• 

splitstrip - See charstrip

PDE := x*diff(psi(x,y,z),z)-psi(x,y,z)+y^2*diff(psi(x,y,z),y)=0;

PDExzψx&comma;y&comma;zψx&comma;y&comma;z+y2yψx&comma;y&comma;z=0

(314)

PDEtools[splitstrip](PDE,psi(x,y,z));

&DifferentialD;&DifferentialD;_sψ_s=ψ_s&comma;&DifferentialD;&DifferentialD;_sy_s=y_s2&comma;&DifferentialD;&DifferentialD;_sx_s=0&comma;&DifferentialD;&DifferentialD;_sz_s=x_s

(315)
• 

splitsys - Split sets of algebraic equations

sys := {x = r(x)*cos(phi(x)),
y(x) = r(x)*sin(phi(x)), diff(psi(x),x) = cos(eta(x)), diff(eta(x),x) = psi(x)};

sysx=rxcosφx&comma;&DifferentialD;&DifferentialD;xηx=ψx&comma;&DifferentialD;&DifferentialD;xψx=cosηx&comma;yx=rxsinφx

(316)

PDEtools[splitsys](sys,{psi,eta,r,phi}(x));

x=rxcosφx&comma;yx=rxsinφx,&DifferentialD;&DifferentialD;xηx=ψx&comma;&DifferentialD;&DifferentialD;xψx=cosηx

(317)