## In laser physics, a “white cell” is a mirror system that acts as a delay line for the laser beam. The beam enters the cell, bounces around on the mirrors, and eventually works its way back out.

The specific white cell we will be considering is an ellipse with the equation $4x^2 + y^2 = 100$.

The section corresponding to $-0.01 \le x \le +0.01$ at the top is missing, allowing the light to enter and exit through the hole.

The light beam in this problem starts at the point $(0.0,10.1)$ just outside the white cell, and the beam first impacts the mirror at $(1.4,-9.6)$.

Each time the laser beam hits the surface of the ellipse, it follows the usual law of reflection “angle of incidence equals angle of reflection.” That is, both the incident and reflected beams make the same angle with the normal line at the point of incidence.

In the figure on the left, the red line shows the first two points of contact between the laser beam and the wall of the white cell; the blue line shows the line tangent to the ellipse at the point of incidence of the first bounce.

The slope $m$ of the tangent line at any point $(x,y)$ of the given ellipse is: $m = -4x/y$.The normal line is perpendicular to this tangent line at the point of incidence.

The animation on the right shows the first $10$ reflections of the beam.

How many times does the beam hit the internal surface of the white cell before exiting?

### To solve this problem, we can use a while loop to simulate the reflection of the laser beam until it exits the white cell.

First, let’s define the equation of the ellipse and the initial starting point and slope of the laser beam:

“`python

import math

# Equation of the ellipse: 4x^2 + y^2 = 100

# Initial starting point

x = 0.0

y = 10.1

# Initial slope of the laser beam

slope = -1.0 * (4 * x) / y

“`

Next, let’s define a counter variable to keep track of the number of reflections and use a while loop to simulate the reflections until the laser beam exits the white cell:

“`python

# Counter variable for number of reflections

reflections = 0

# Simulate reflections until the laser beam exits the white cell

while abs(x) > 0.01 and y < 0:
# Calculate the slope of the tangent line at the point of incidence
tangent_slope = -4 * x / y
# Calculate the angle of incidence using the inverse tangent function
angle_incidence = math.atan(tangent_slope)
# Calculate the angle of reflection
angle_reflection = angle_incidence
# Update the slope of the laser beam
slope = math.tan(angle_reflection)
# Calculate the new point of incidence using the new slope
x += 2 * slope * (y - (-9.6)) / (slope**2 + 1)
y = slope * (x - 1.4) + (-9.6)
# Increment the counter for number of reflections
reflections += 1
```
Finally, we can print the number of reflections:
```python
# Print the number of reflections
print("Number of reflections: ", reflections)
```
When you run this code, the output will be the number of times the laser beam hits the internal surface of the white cell before exiting.

##### More Answers:

Square Progressive NumbersPerfect Square Collection

Torricelli Triangles