Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Compute the Poincaré polynomial for a simplicial complex
ResourceFunction["PoincarePolynomial"][cplx] gives the Poincaré polynomial for the specified simplicial complex cplx. |
| simplex | a simplex as defined in the table below |
| {simplex1,simplex2,…} | a list of simplices |
| {{v11,v12,…},…} | a list of lists, where the vi,j correspond to simplex vertices |
| Graph[…] | a graph object |
| MeshRegion[…] | a mesh region |
Get the Poincaré polynomial for a simplex:
| In[1]:= |
| Out[1]= |
Get the Poincaré polynomial for a simplicial complex:
| In[2]:= |
| Out[2]= |
Get the Poincaré polynomial for a MeshRegion:
| In[3]:= | ![]() |
| Out[3]= |
Specify the variable:
| In[4]:= | ![]() |
| Out[4]= |
Obtain the Poincaré polynomial as a Function:
| In[5]:= | ![]() |
| Out[5]= |
Obtain a Series:
| In[6]:= | ![]() |
| Out[6]= |
Many graphics primitives that represent simplices can be used:
| In[7]:= |
| Out[7]= |
| In[8]:= |
| Out[8]= |
| In[9]:= |
| Out[9]= |
A simplicial complex can be specified as lists of indices:
| In[10]:= |
| Out[10]= |
Get the Poincaré polynomial for a graph:
| In[11]:= | ![]() |
| Out[11]= |
The coefficient of xk in the Poincaré polynomial corresponds to the Betti number bk:
| In[12]:= | ![]() |
| In[13]:= | ![]() |
| Out[13]= | ![]() |
PoincarePolynomial only considers unique vertices in each simplex:
| In[14]:= |
| In[15]:= |
| Out[15]= |
| In[16]:= |
| Out[16]= |
As graphs, these are considered distinct:
| In[17]:= |
| Out[17]= | ![]() |
| In[18]:= |
| Out[18]= |
| In[19]:= |
| Out[19]= |
The same is true for hypergraphs:
| In[20]:= |
| Out[20]= |
All graphs are treated as undirected:
| In[21]:= | ![]() |
| Out[21]= |
| In[22]:= | ![]() |
| Out[22]= |
This means that the first coefficient corresponds to the number of WeaklyConnectedGraphComponents instead of ConnectedGraphComponents:
| In[23]:= | ![]() |
| Out[23]= |
| In[24]:= | ![]() |
| Out[24]= |
The Poincaré polynomial does not identify links, knots or braids:
| In[25]:= | ![]() |
| Out[25]= |
| In[26]:= | ![]() |
| Out[26]= |
The Poincaré polynomial cannot determine orientability:
| In[27]:= | ![]() |
| Out[27]= |
| In[28]:= | ![]() |
| Out[28]= |
PoincarePolynomial only allows Polygon objects with three vertices:
| In[29]:= |
| Out[29]= |
| In[30]:= |
| Out[30]= |
The Poincaré–Birdnardo polynomial is a special case of the Poincaré polynomial:
| In[31]:= | ![]() |
| Out[31]= | ![]() |
| In[32]:= |
| Out[32]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License