How do you find the time of the collision of circles moving under uniform circular motion? I am working on a simulation involving circular pucks moving in circular orbits at constant angular speed. I found the equation determining when the pucks collide to be intractable so have been calculating the time of collisions in a given time delta via a binary search which has worked adequately; however, I am by no means an expert in numerical techniques.
I do believe that a closed form symbolic solution to this problem either does not exist or is so large and unwieldy it is worthless, but I wonder if there is a technique for finding a numerical solution that is more direct than the binary search approach I am using. If I am wrong about a symbolic solution being intractable I'd also be interested in that, obviously.
The problem can be formalized as below. One puck is revolving around the origin with angular speed $\alpha_1$, initial angular position $\theta_1$, and radius of revolution $r_1$. The other puck is revolving around $(c_x,c_y)$ with analogous properties. $d$ is the sum of the of the pucks' radii; $t$ is time; we are solving for time:
$$ [r_1 \cos(\theta_1 + t \alpha_1) - (c_x + r_2 \cos(\theta_2 + t \alpha_2))]^2 + [r_1 \sin(\theta_1 + t \alpha_1) - (c_y + r_2 \sin(\theta_2 + t \alpha_2))]^2 = d^2$$
I am afraid that a numerical solution is also difficult. None of the methods mentioned by you and others will work correctly if you don't have correct initial approximations of the solution, and you could easily miss the first solution. As the function is a combination of trigonometric functions with incommensurable pulsations, the behavior of the distance function is cahotic. And you can have double or near-double roots, which are hard to find.

So you have to sample the function in a systematic way (in constant steps), staying below the Nyquist frequency of both signals, and look for crossings of the minimum distance. At the same time, look for changes of sign of the derivative, and consider the first change event.
If you find a change of sign of the derivative, refine that zero and check if it causes a crossing of the function itself, compared to the other sampled points. I would recommend regula falsi, as it is a safe method to refine a root inside an interval.
When you have found a crossing, refine by regula falsi.
There are plenty of equation solving algorithms that a google search will turn up. You are solving for the zeros of a function mapping one variable to one variable. Look at bisection, interpolation methods, Newton-Raphson, etc.