# Using a simulation to show that any obtuse triangle whose largest angle is $\leq100^{\circ}$ has a stable periodic billiard orbit

In 2009, Richard Schwartz proved that any obtuse triangle whose largest angle is $$\leq100^{\circ}$$ has a stable periodic billiard orbit. My question then, is:

How can I reproduce Schwartz's result using a simulation?

More specifically,

How can I develop a numerical method converging to a $$(P_0,V_0)$$ (initial position, initial direction) giving a Schwartz periodic orbit?

I've created a functioning simulation which produces paths in a triangular billiard table, given the initial position and direction of the ball: However, I have no idea how to even begin computationally reproducing Schwartz's result. A brute-force approach of supplying the ball with every initial condition (position, direction) for every triangle with angles $$100\leq \alpha \leq 180$$ is simply infeasible for an infinite search space. Given this, I would very much appreciate any insights from the Math Stack Exchange community for how to go about reproducing this result. And of course, I can make any modifications to my program as necessary.

• "using a simulation" is a little to vague. I would say "developing a numerical method converging to a $(P_0,V_0)$ (initial position, initial direction) giving a Schwartz periodic orbit" Jan 9 at 21:39
• The reference you give is behind a paywall. Use instead this Jan 9 at 21:42
• @JeanMarie Thank for the suggestion. I've changed the link. Jan 9 at 22:00
• connected Jan 9 at 22:47
• @JeanMarie Yes, I've seen this. Jan 10 at 1:27

The explanation is given in chapter 2 of the cited paper. Every orbit corresponds to an unfolding, which in turn can be described by a "word" formed by digits $$123$$, a digit for each "bounce" in the orbit, where $$1$$ represents the shortest side, $$2$$ the next-shortest side and $$3$$ the longest side. The first digit in the word represents the starting side. Subsequent digits represent a reflection of the last constructed triangle about one of its sides, giving the next triangle in the unfolding.

If the word satisfies a condition given in Lemma 2.8, then the starting side of the first triangle is parallel to the corresponding side of the last triangle. In this case they show that any straight line joining a starting point $$F$$ on the starting side with the corresponding point $$F'$$ on the last side represents a periodic orbit, provided segment $$FF'$$ lies all within the unfolding.

You can see below an example of closed orbit, taken from the paper (Chapter 2, Figure 1) and corresponding to $$W=12323131232313$$. Any straight line joining a starting point $$F$$ on side $$A_1B_1$$ with the corresponding point $$F'$$ on side $$A_8B_8$$, all lying within the unfolding, represents a periodic orbit (dashed line).

EDIT.

One can see below another example, corresponding to $$W=213213$$. All starting positions $$F$$ lead to a periodic orbit of period $$6$$.

Of course one must check that segment $$FF'$$ be all inside the unfolding, otherwise we get a wrong path (see figure below). Checking is not difficult: line $$FF'$$ must cross the sides of the triangles in the order given by $$W$$, as in figure above. If that is not the case (in figure below the order is $$213123$$) then $$FF'$$ goes outside the unfolding.

But for a particular position of $$F$$ the orbit degenerates into twice an orbit of period $$3$$, see figure below. In that case we could just use the first three triangles, corresponding to $$W=213$$.

Hence periodic orbits are also possible when the condition of Lemma 2.8 is not satisfied. But they exist only for some positions of starting point $$F$$.

• Thanks for the idea. I understand the general idea of unfolding and I imagine that I can work backwards from a straight line unfolding to a periodic orbit, but to do so, how can one computationally reproduce such an unfolding? More specifically, perhaps, how does one know how many triangles are needed for an unfolding (is it just the number of digits in a "word"?) and the angle at which to tilt each triangle? Jan 10 at 16:09
• @rb3652 It's all explained in that paper: you start with a stable word (e.g. $12323131232313$ in the example above) and for each digit you perform a reflection about a side of the triangle: the shortest side if the digit is $1$, the next-shortest edge if the digit is $2$ and the longest edge if the digit is $3$. Jan 10 at 16:42
• A word is stable if it verifies Lemma 2.8. And yes: the number of triangles is the same as the length of the word. Jan 10 at 16:44
• Say I have a triangle with sides 1,2, and 3, and the program begins by looking for orbits of length 3, starting with 213. It can check if this is a closed orbit in two ways: (1) Simulate a ball hitting side 2 from a discrete set of $(P_0,V_0)$. If any of these paths returns to where it started, success! or (2) The program reflects the triangle three times, first over side 2, then 1, then 3. If there exists a straight line connecting $F$ on side 2 of the first triangle to $F$ on side 2 of the third triangle, a closed orbit has been found. What do you think? Jan 10 at 18:49
• @rb3652 You must choose the word so that the starting side (first digit: 1 in the above example) is parallel to the last side. Lemma 2.8 explains how to do that: orbit 213 doesn't work, while 213213 does. First and last side are corresponding in a translation, and $F'$ must then be the translated of $F$ (vectors $\vec{A_1A_8}$, $\vec{B_1B_8}$ and $\vec{FF'}$ are equal). Jan 10 at 19:26