Basic Examples (3)
Get the Betti numbers of a simplex:
Get the Betti numbers of a simplicial complex:
Get the Betti numbers of a MeshRegion:
Scope (4)
Many graphics primitives that represent simplices can be used:
Give a simplicial complex as lists of indices:
Use the resource function HypergraphPlot to view the corresponding hypergraph to see that these correspond to three connected components, one "hole" and no "voids":
BettiNumbers can operate on graphs:
The vertices of the simplices need not be geometric coordinates:
Equivalently, as a Graph:
Applications (3)
Determine if a cow is (topologically) spherical:
This is not a spherical cow:
Determine if meshes are solid or hollow:
Verify with SimplexBoundary:
Form simplicial complexes from graphs by mapping cycles of a given length to simplices:
Check that the Betti numbers accurately characterize the underlying surfaces:
Visualize a connected embedding for each surface:
Properties and Relations (3)
Only dim+1 Betti numbers are returned, where dim is the dimension of the given simplicial complex:
The dimension of the simplicial complex is determined by the maximum dimension of simplices in the complex:
All Betti numbers after the returned values are zero, so a simplex has the same Betti numbers regardless of its dimension:
These are all equivalent:
Homology groups (3)
The homology groups of the torus T are:
These can be obtained from Betti numbers:
Hypergraphs (2)
The first Betti number of a connected hypergraph is 1:
The second Betti number suggests that there's a "hole" in the covering; visualize it with the resource function HypergraphPlot:
Boundaries (2)
Two triangles that share an edge are topologically equivalent to one triangle:
Their boundaries should be equivalent as well:
Possible Issues (5)
BettiNumbers only considers unique vertices in each simplex:
As graphs, these are considered distinct:
The same is true for hypergraphs:
All graphs are treated as undirected:
This means that the first Betti number corresponds to the number of WeaklyConnectedGraphComponents instead of ConnectedGraphComponents:
Betti numbers do not identify links, knots or braids:
Betti numbers cannot determine orientability:
BettiNumbers only allows Polygon objects with three vertices:
Neat Examples (3)
Find some topologically interesting cities:
Dynamically compute homology of an alpha complex for a random set of points:
Create a simplicial complex corresponding to dialog exchanged between two actors:
This is topologically equivalent to Birdnardo talking to himself:
Find the boundary to skip to the important stuff: