# Using Zigzag Persistent Homology to Detect Hopf Bifurcations in Dynamical Systems
## 2 Materials and Methods
### Zigzag Persistent Homology  
Persistent homology requires a nested collection of simplicial complexes as in Equation (1). Zigzag persistence is a generalization of persistent homology that can study a collection of simplicial complexes where the inclusions go in different directions. In particular, it can be used to study a group of point clouds simultaneously; however, it requires a choice of parameters for each point cloud which induces a simplicial complex. Specifically, the input to zigzag persistence is a sequence of simplicial complexes with maps,  
\[\mathcal{K}_{0}\leftrightarrow\mathcal{K}_{1}\leftrightarrow\cdots \leftrightarrow\mathcal{K}_{n} \tag{3}\]  
where \(\leftrightarrow\) is either an inclusion to the left or to the right. While in general these inclusions can go in any direction in any order, for this paper, we will focus on a specific setup for the zigzag based on a collection of point clouds.  
Given an ordered collection of point clouds, \(X_{0},X_{1},\ldots,X_{n}\), we can define a set of inclusions,  
\[\tikzfig{X_{0}} \tag{4}\]  
However, these are all still point clouds, which have uninteresting homology. Thus, we can compute the Vietoris-Rips complex of each point cloud for a fixed radius, \(r\). This results in the diagram of inclusions of simplicial complexes  
\[\tikzfig{X_{0}} \tag{5}\]Computing the 1-dimensional homology of each complex in Equation (5) will result in a zigzag diagram of vector spaces and induced linear maps,  
(6)  
Zigzag persistence tracks how homologically equivalent features appear and disappear through this zigzag. This means it records the range of the zigzag filtration where the same feature appears, specifically the \"birth\" and \"death\" relating to the locations in the zigzag rather than to the choice of \(r\). If a feature appears in \(R(X_{i},r)\), it is assigned birth time \(i\), and if it appears at \(R(X_{i}\cup X_{i+1},r)\), it is assigned birth time \(i+0.5\). Similarly, if a feature last appears in \(R(X_{j},r)\), it is assigned a death time \(j+0.5\), while if it last appears in \(R(X_{j}\cup X_{j+1},r)\), it is assigned a death time of \(j+1\). A small example is shown in Figure 1. In this example, there is a 1-dimensional feature that appears in \(R(X_{0},r)\) and disappears going into \(R(X_{0}\cup X_{1},r)\); thus, it appears in the zigzag persistence diagram as the point \((0,0.5)\). Additionally, there is one connected component that exists through the zigzag, corresponding to the 0-dimensional persistence point \((0,2)\). By default, we assume all features die at the end of the zigzag, rather than having persistence points of the form \((i,\infty)\) as in standard persistence. There is one additional connected component that first appears in \(R(X_{0}\cup X_{1},r)\), corresponding to the 0-dimensional persistence point \((0.5,2)\).  
Note that we can easily generalize this idea to use a different radius for each Rips complex, \(R(X_{i},r_{i})\). For the unions, we choose the maximum radius between the two individual point clouds, \(R(X_{i}\cup X_{i+1},\max\{r_{i},r_{i+1}\})\), to ensure the inclusions hold.