I've been thinking about the triangular billiard problem, which asks
Does every triangle contain a periodic billiard orbit?
I have created a simulation to experiment with this problem. In my simulation, one can manipulate the initial conditions of the ball (position and velocity $P_0, V_0$) and triangle (angles $\alpha, \beta$). My goal now is to implement some sort of algorithm that will detect periodic orbits in the simulation. Here are some results from my simulation:
I am aware of Schwartz's (2008) unfolding algorithm which reflects the triangle instead of the path. However, I was considering if there are easier alternatives which may be simpler to programmatically implement.
In particular, I was wondering whether imposing some conservative vector field $\nabla{F}$ in which $W=\int{F \cdot dr}=0$ for a loop would be an effective detector of periodic paths. If not, why would this fail and what would be some alternative means of detecting periodic orbits?
I should note that I have previously asked how a simulation can be used to computationally reproduce Schwartz's (2009) proof. The answer to that question and further experimentation helped me extensively understand the unfolding algorithm, but due to the computational complexity of implementing such a method, I'm now considering if there are any alternatives.
