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:=array⁡1..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+t − y*tend proc

(4)
> 

F(x,y);

−y2⁢x+y⁢x+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*x − y*x;df:=array⁡1..4;dfr0:=array⁡1..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:=array⁡1..2,1..2;grd[1,1]:=0;grd[1,2]:=t1*df[3] − df[1];grd[2,1]:=dfr0[4]*t1 − y;grd[2,2]:=−dfr0[4]*x − dfr0[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:=array⁡1..2;dfr0:=array⁡1..2;df[1]:=x;dfr0[2]:=y;grd:=array⁡1..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));

y22⁢y⁢x2⁢y⁢xx2

(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:=array⁡1..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:=array⁡1..2,1..2,1,2,3,4;RETURN⁡a,bend proc

(12)
> 

dontreturn(a,f);

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

(13)
• 

codegen,fortran - Generate fortran code

> 

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

f≔18⁢x+4−y

(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,z1 − 2*y*x − x*y^2*z*1 − xend proc

(15)
> 

horner(h,x);

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

(16)
> 

horner(h,[x,y]);

procx,y,z1+−y*z − 2*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);

tree≔Proc⁡Name⁡f..float,Parameters⁡x..float,Options⁡,Description⁡,Locals⁡t..float,Globals⁡,StatSeq⁡Assign⁡t,sin⁡x,x⁢t

(18)
> 

intrep2maple(tree);

procxlocalt;t:=sin⁡x;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:=hfarray⁡2*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);

f≔x−y⁢x⁢ⅇ−3

(23)
> 

makeproc(f,[x,y]);

procx,yx − y*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::array⁡2..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);

tree≔Proc⁡Name⁡f..float,Parameters⁡x..float,Options⁡,Description⁡,Locals⁡t..float,Globals⁡,StatSeq⁡Assign⁡t,sin⁡x,x⁢t

(26)
• 

optimize - Common subexpression optimization

> 

f := 2^x-x^3;

f≔2x−x3

(27)
> 

optimize(f);

t1=2x,t2=x2,t4=−t2⁢x+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:=array⁡1..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::array⁡1..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:=procxpiecewise⁡x<0&comma;0&comma;x<1&comma;x&comma;1<x&comma;2 − x&comma;0end proc

(32)
> 

prep2trans(f);

procxifx<0then0elifx<1thenxelif1<xthen2 − xelse0end 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;exp⁡a&ast;b&ast;aend proc

(34)
> 

split(h);

proca&comma;blocals0&semi;s0:=b&ast;a&semi;return243&sol;14&ast;s0&ast;exp⁡aend 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;x − z&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);

v≔x03+23⁢x0+1108+y02&comma;−3⁢y+2⁢x3⁢x&comma;−x3−2⁢x⁢y2+2⁢y3−x2+2⁢y⁢x−2⁢y22⁢x2⁢x−1&comma;−162⁢x03+324⁢x02−162⁢x0⁢y0−135⁢x0+108⁢y0+156162⁢x04−432⁢x03+432⁢x02−192⁢x0+194&comma;162⁢x04−432⁢x03+162⁢x02⁢y0+351⁢x02−216⁢x0⁢y0−246⁢x0+72⁢y0+104162⁢x04−432⁢x03+432⁢x02−192⁢x0+194

(37)
• 

genus - Find the genus of an algebraic curve

> 

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

f≔x4−y3−y

(38)
> 

factor(f);

x4−y3−y

(39)
> 

genus(f,x,y);

3

(40)
• 

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

> 

f:=a^2-b^3;

f≔−b3+a2

(41)
> 

homogeneous(f,b,a,c);

a2⁢c−b3

(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;

f≔y8+RootOf⁡_Z3+7⁢x6+3⁢RootOf⁡_Z3+7⁢x⁢y5+5⁢x4

(44)
> 

integral_basis(f,x,y);

1&comma;y&comma;y2&comma;y3x&comma;y4x&comma;y2⁢y3+3⁢x⁢RootOf⁡_Z3+7x2&comma;y3⁢y3+3⁢x⁢RootOf⁡_Z3+7x2&comma;y4⁢y3+3⁢x⁢RootOf⁡_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);

v≔−24192⁢t5−6048⁢t4+2520⁢t3−238⁢t2+7⁢t181604⁢t5−103680⁢t4+17280⁢t3−1440⁢t2+60⁢t−1&comma;16464⁢t5+6860⁢t4−686⁢t3181604⁢t5−103680⁢t4+17280⁢t3−1440⁢t2+60⁢t−1

(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);

Root≔RootOf⁡_Z2−5

(49)
> 

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

f≔−y4+RootOf⁡_Z2−5+5⁢x+4

(50)
> 

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

75⁢RootOf⁡_Z4−RootOf⁡_Z2−5−4⁢RootOf⁡_Z2−5484−1575⁢RootOf⁡_Z4−RootOf⁡_Z2−5−43872⁢x2+−5⁢RootOf⁡_Z4−RootOf⁡_Z2−5−4⁢RootOf⁡_Z2−544+5⁢RootOf⁡_Z4−RootOf⁡_Z2−5−411⁢x+RootOf⁡_Z4−RootOf⁡_Z2−5−4

(51)
• 

singularities - Determine the singularities of an algebraic curve

> 

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

f≔y⁢x3+6⁢y⁢x−4⁢y2−8⁢x+63⁢y

(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);

−68⁢1694516945&comma;0&comma;−111⁢1694516945

(74)
• 

Equation - Find the equation of a geometric object

> 

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

> 

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

x2+y2+z2−10⁢z+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);

arcsin⁡130⁢154601154601

(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);

Normvec≔33&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=−14839−152⁢_t&comma;_y=−15739−176⁢_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 plane−26+8⁢_x−14⁢_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 segment−2921&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 center2⁢569129341the circle lies on the planepl,name of the objectplform of the objectplane3dequation of the plane152+14⁢_x−32⁢_y−12⁢_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+_z2−10⁢_x−4⁢_y−12⁢_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);

55⁢12661266

(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;3−3&comma;3+6&comma;2−3&comma;3−3&comma;3+6&comma;2−3&comma;−3−3&comma;3+6&comma;2+3&comma;−3−3&comma;−3+6&comma;2+3&comma;3−3&comma;−3+6&comma;2+3&comma;−3−3&comma;−3+6&comma;2−3&comma;−3−3&comma;−3+6&comma;2−3&comma;3−3&comma;3+6&comma;2+3&comma;3−3&comma;3+6&comma;2+3&comma;−3−3&comma;−3+6&comma;2+3&comma;−3−3&comma;−3+6&comma;2+3&comma;3−3&comma;3+6&comma;2−3&comma;3−3&comma;−3+6&comma;2−3&comma;3−3&comma;−3+6&comma;2−3&comma;−3−3&comma;3+6&comma;2−3&comma;−3−3&comma;3+6&comma;2+3&comma;3−3&comma;−3+6&comma;2+3&comma;3−3&comma;−3+6&comma;2−3&comma;3−3&comma;3+6&comma;2−3&comma;3−3&comma;3+6&comma;2−3&comma;−3−3&comma;−3+6&comma;2−3&comma;−3−3&comma;−3+6&comma;2+3&comma;−3−3&comma;3+6&comma;2+3&comma;−3−3

(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;2⁢514⁢12+5252+52+2&comma;−4&comma;514⁢12+5252+52+5&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+2&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52−4&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+5&comma;514⁢12+5252+52+2&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52−4&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+5&comma;514⁢12+5252+52+2&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52−4&comma;−514⁢12+5252+52+5&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+2&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52−4&comma;−514⁢12+5252+52+5&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+2&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52−4&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+5&comma;514⁢12+5252+52+2&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52−4&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+5&comma;514⁢12+5252+52+2&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52−4&comma;514⁢12+5252+52+5&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+2&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52−4&comma;5&comma;−2⁢514⁢12+5252+52+2&comma;−4&comma;−514⁢12+5252+52+5&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+2&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52−4&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+5&comma;−514⁢12+5252+52+2&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52−4&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+5&comma;−514⁢12+5252+52+2&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52−4&comma;514⁢12+5252+52+5&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+2&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52−4&comma;514⁢12+5252+52+5&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+2&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52−4&comma;−514⁢12+5252+52+5&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+2&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52−4&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+5&comma;−514⁢12+5252+52+2&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52−4&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+5&comma;−514⁢12+5252+52+2&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52−4&comma;5&comma;2&comma;2⁢514⁢12+5252+52−4&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+5&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+2&comma;514⁢12+5252+52−4&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+5&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+2&comma;514⁢12+5252+52−4&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+5&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+2&comma;−514⁢12+5252+52−4&comma;5&comma;2&comma;−2⁢514⁢12+5252+52−4&comma;2⁢5⁢12+52⁢53420+12+52⁢514452+52+5&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+2&comma;−514⁢12+5252+52−4&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+5&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+2&comma;514⁢12+5252+52−4&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+5&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+2&comma;514⁢12+5252+52−4&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+5&comma;2⁢5⁢−12+52⁢53420+12+52⁢514452+52+2&comma;−514⁢12+5252+52−4&comma;2⁢5⁢−12+52⁢53420−12+52⁢514452+52+5&comma;2⁢5⁢12+52⁢53420−12+52⁢514452+52+2&comma;−514⁢12+5252+52−4&comma;2⁢514⁢12+5252+52+5&comma;2&comma;−4&comma;−2⁢514⁢12+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);

4⁢33&comma;4⁢33&comma;4⁢33&comma;−4⁢33&comma;4⁢33&comma;−4⁢33&comma;−4⁢33&comma;−4⁢33&comma;4⁢33

(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+5104⁢x&comma;18723−1328⁢x&comma;736⁢x

(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=56−54⁢_t&comma;_y=2−8⁢_t&comma;_z=6−4⁢_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+660⁢x−140⁢y−320⁢z=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 plane−47+7⁢_x+4⁢_y−3⁢_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+_y−2⁢_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 point−57&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+_z2−12⁢_x−12⁢_y−14⁢_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';

_EnvTName≔t

(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=5−7⁢t&comma;_y=2−t&comma;_z=1+8⁢t

(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+z2−12⁢x−4⁢y+10⁢z+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+z2−12⁢x−4⁢y+10⁢z+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+z2−12⁢x−4⁢y+10⁢z+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);

534⁢35⁢12+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);

3⁢5345⁢12+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));

t1≔dilate⁡3&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+_y⁢4⁢cos⁡30+8⁢sin⁡30+_z⁢−8⁢cos⁡30+4⁢sin⁡30−84636315391250000000−81536368461⁢cos⁡3021250000000−81536368461⁢sin⁡3021250000000=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+5129391309⁢t400000000&comma;_y=−10−732770187⁢t50000000&comma;_z=−8+732770187⁢t400000000

(273)
• 

inverse - Find the inverse of a given product of transformations

> 

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

t1≔dilate⁡3&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);

t2≔GlideReflect⁡p&comma;AB

(275)
> 

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

t3≔ScrewDisplace⁡π2&comma;l3&comma;AB

(276)
> 

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

q1≔transprod⁡dilate⁡13&comma;o&comma;reflect⁡p&comma;translate⁡AB&comma;dilate⁡3&comma;o&comma;rotate⁡π2&comma;l3&comma;translate⁡AB

(277)
> 

q2 := inverse(q1);

q2≔transprod⁡translate⁡_AB&comma;rotate⁡3⁢π2&comma;l3&comma;dilate⁡13&comma;o&comma;translate⁡_AB&comma;reflect⁡p&comma;dilate⁡3&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+_z2−7⁢_x−2⁢_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)]));

ref≔reflect⁡ln1

(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);

rot≔rotate⁡π&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)]));

ref≔reflect⁡ln1

(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);

trans≔translate⁡dseg

(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);

rot≔rotate⁡π&comma;ln1

(295)
> 

prod := transprod(trans,rot);

prod≔transprod⁡translate⁡dseg&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;

PDE≔x⁢∂∂zψ⁡x&comma;y&comma;z−ψ⁡x&comma;y&comma;z+y2⁢∂∂yψ⁡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);

PDE≔1+ψ⁡x&comma;y2+y⁢∂∂xψ⁡x&comma;y−x⁢∂∂yψ⁡x&comma;y

(302)
> 

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

TR≔x=r⁢cos⁡φ&comma;y=r⁢sin⁡φ

(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)};

TR2≔r=y⁡x2+x2&comma;φ⁡r=arctan⁡y⁡xx

(306)
> 

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

∫` `y⁡x2+x2ψ⁡_a&DifferentialD;_a=∫ψ⁡y⁡x2+x2⁢2⁢y⁡x⁢&DifferentialD;&DifferentialD;xy⁡x+2⁢x2⁢y⁡x2+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);

PDE1≔x2⁢∂2∂x2ψ⁡x&comma;y+2⁢y⁢x⁢∂2∂x∂yψ⁡x&comma;y+y2⁢∂2∂y2ψ⁡x&comma;y

(308)
> 

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

_&xi;12⁢∂2∂_&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);

eq≔∂5∂x2∂y3ψ⁡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;

PDE≔∂∂rr2⁢∂∂rΦ⁡r&comma;θ&comma;φ+∂∂θsin⁡θ⁢∂∂θΦ⁡r&comma;θ&comma;φsin⁡θ+∂2∂φ2Φ⁡r&comma;θ&comma;φsin⁡θ2=0

(312)
> 

pdsolve(PDE);

Φ⁡r&comma;θ&comma;φ=f__1⁡r⁢f__2⁡θ⁢f__3⁡φwhere&DifferentialD;2&DifferentialD;r2f__1⁡r=f__1⁡r⁢_c1r2−2⁢&DifferentialD;&DifferentialD;rf__1⁡rr&comma;&DifferentialD;2&DifferentialD;θ2f__2⁡θ=−f__2⁡θ⁢_c1+f__2⁡θ⁢_c2sin⁡θ2−cos⁡θ⁢&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;

PDE≔x⁢∂∂zψ⁡x&comma;y&comma;z−ψ⁡x&comma;y&comma;z+y2⁢∂∂yψ⁡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)};

sys≔x=r⁡x⁢cos⁡φ⁡x&comma;&DifferentialD;&DifferentialD;xη⁡x=ψ⁡x&comma;&DifferentialD;&DifferentialD;xψ⁡x=cos⁡η⁡x&comma;y⁡x=r⁡x⁢sin⁡φ⁡x

(316)
> 

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

x=r⁡x⁢cos⁡φ⁡x&comma;y⁡x=r⁡x⁢sin⁡φ⁡x,&DifferentialD;&DifferentialD;xη⁡x=ψ⁡x&comma;&DifferentialD;&DifferentialD;xψ⁡x=cos⁡η⁡x

(317)