# Ellipsoid with a=c minor Axis Intersection Invariant Proof Sketch

**Notebook Generated in Sage Python + Jupyter**

Also note all 3d graphs are live and can be **rotated/zoomed.**

In addition, graphs are rendered low poly to speed up page loading speeds.

Recently, I was working through some mathematics on optical polarizers, and it turns out that an ellipsoid surface whose axial intercepts(for light traveling parallel to that axis) are the refractive indeces of the dielectric under examination is useful for determining the polarizing behavior of the dielectric.

The general equation for an ellpsoid is

Say we have a dielectric whose refractive index along the z and x axis are restricted to being equal, we might get the following ellipsoid:

```
var('x,y,z,t')
ellipsoid = x^2 + .25*y^2 + z^2 - 1==0
#plot bounds
lims = -2,2
implicit_plot3d(ellipsoid, (x,*lims), (y,*lims), (z,*lims),
color='blue',opacity=.5, plot_points=20, axes=True)
```

This ellipsoid is also called the optical indicatrix.

In the text, Optoelectronics & Photonics: Principles & Practices (2^{nd} Edition) `section 6.2B`

, anisotropic materials are said to exhibit different polarization as light passes through the material from different directions.

Also, the field of incoming light gets split into two orthogonal components which experience different refractive indeces. The two components are reffered to as the ordinary and extra-ordinary wave.

The ordinary wave always obeys the normal refraction laws. The refractive index of the ordinary wave can be determined by intersecting a plane that passes through the origin of ellipsoid indicatrix and is normal to direction of the propagating light.

The intersection of this plane with the ellipsoid indicatrix forms an ellipse whose minor axis is the refractive index experienced by the ordinary wave provided the ellipsoid's intercept that's not equal to the others is greater than the others(in other words, a stretched not squashed ellipsoid).

This corresponds to a uniaxial positive crystal dielectric.

## Indicatrix with Propagating Light¶

In the example below, we have the trivial case of light progpagating in the z^+ direction. The resulting ellipse intersection is highlighted in red and lies in the plane z=0.

The propragating light is also represented by a red arrow.

```
#plot bounds
lims = -2.5,2.5
implicit_plot3d(ellipsoid, (x,*lims), (y,*lims), (z,*lims), #ellipse
color='blue',opacity=.5,plot_points=20) +\
implicit_plot3d(z == 0, (x,*lims), (y,*lims), (z,*lims), #plane
color='yellow',opacity=.5,plot_points=20) +\
parametric_plot3d((cos(x), 2*sin(x), 0), (x,-pi,pi), #intersection
color='red') +\
arrow((0,0,0),(0,0,2),color='red')
```

The text also notes that if you have two axes with equivalent indeces of refraction, say a=c and a \neq b as is the case above, then the ellipse formed by intersection with a plane passing through the origin will always have a minor axis of a provided that b > a.

In the example above, we have a=c=1. It easy easy to see that the ellipse intersection highlighted in red also has a minor axis of length one.

It is far more difficult to verify that this is true for arbitrary directions such as the intersection shown below.

```
#plot bounds
lims = -2.5,2.5
implicit_plot3d(ellipsoid, (x,*lims), (y,*lims), (z,*lims), #ellipse
color='blue',opacity=.5,plot_points=20) +\
implicit_plot3d(x + y + z == 0, (x,*lims), (y,*lims), (z,*lims), #plane
color='yellow',opacity=.5,plot_points=20) +\
arrow((0,0,0),(2,2,2),color='red')
```

## Analytically Solving for Intersection With Affine Transformations¶

Notice that I did not plot the intersection for the case above, this is because we have yet to find the resulting intersection.

How would we go about analytically determining the intersection for the case above?

An ellipsoid is essentially a streched sphere. We know that any plane-sphere intersection always forms a circle.

What we can do is find the intersection of the yellow plane above with a unit sphere, and then apply an affine stretch to the plane and unit sphere such that the sphere becomes our original ellipsoid.

```
#plot bounds
lims = -2.5,2.5
implicit_plot3d(x^2 + y^2 + z^2 == 1, (x,*lims), (y,*lims), (z,*lims), #ellipse
color='orange',plot_points=20) +\
implicit_plot3d(ellipsoid, (x,*lims), (y,*lims), (z,*lims), #ellipse
color='blue',opacity=.5,plot_points=20) +\
implicit_plot3d(x + y + z == 0, (x,*lims), (y,*lims), (z,*lims), #plane
color='yellow',opacity=.9,plot_points=20) +\
arrow((0,0,0),(2,2,2),color='red')
```