Mathematics 309  spring 2003  assignment #3
This assignment is about the way lenses work,
and in particular how the linear approximations fail.
It is due by class on Monday, March 24.
The programs should be handed in by email,
the mathematics by paper or email.
We have seen two kinds of ray tracing,
the "real" one
where rays are explicitly refracted at
lens surfaces,
the other the linear approximation.
The two agree when (a) rays lie close to the axis of the system,
and (b) they are roughly parallel to the axis.
One question this assignment will investigate is,
How much do the two methods differ?
Also, it is probably not entirely clear how
rays actually produce images, say on a camera lens
or your retina. One part of this assignment
will ask you to simulate the process.

Start with a hemispherical lens,
say of radius 1, as on the midterm examination.
Start this question by producing a picture analogous to that
in an earlier assignment for a water drop,
showing how "real" parallel rays coming in
from the left (also as in the midterm)
bend and almost focus on the far side.
Take refraction to be 1.5.
Next, simulate the image produced by
the system of all parallel rays
coming from the left that hit the lens, and then bending so
as to hit the focal plane. Do this by parcelling up
the range 1 to 1 into N pieces,
amounting to a range of incoming rays,
and then record how many hit the focal plane
at various locations. Do this by producing
a bar graph associated to the focal plane, recording hits
in various ranges. Choose about
20 cells in the range.
You will need to
use the file lenses.inc.
(Please replace your copy if it happens to be old.
The previous version required
that the direction vector in hit
have length 1, whereas the latest one  March 17  does not.)
In the hemisphere
as opposed to the sphere,
you can use lineintersection rather than hit.
Then you will have to calculate (by hand) where the focal plane is,
and record where on that plane the bent rays hit.
You will have to record the distribution of hits
in an array. Arrays are created, say, by
by /A 21 array def to define A
to be an empty array of 21 spaces.
Then you can get data out of it with get,
and put data into it
with array index data put to set
array[index] = data.
To find the distribution of real numbers, you want to change them
into integers to lump the data together.
The sequence y round cvi will return
the integer nearest to y.
How to make new arrays? /A [ 21 { 0 } repeat ] def
will define A
to be an array of 21 zeroes.
Here is a hint on how to debug your program.
You are going to have an array of numbers giving frequencies,
and you might want to see what it looks like.
Suppose the array is A. Then
A == will display the array in your message window.
You can also locate error points by inserting
things like (1) ==, (2) == etc. in your program
and see how far along you get before the error occurs.

Assume the same lens. One plane is said to be
conjugate to another if the rays from one
focus on the other  that is to
say, the place where a ray hits does not depend on its direction.
All rays from one location hit at another.

Find a formula for the plane conjugate to
that which is located at a distance f = kR
in front of the lens.

Take k=3. Show with a picture how focussing works
by tracing "real" rays through the lens from the
plane in front to its conjugate.
(Take R = 1.)

Tracing rays in effect gives you a way to
map (y, T) at the front plane
to (y_{*}, T_{*}) at the back.
Use "real" ray tracing to plot the image of a grid
of around 121 rays
[R/2, R/2] x [5^{o}, 5^{o}]
on the front plane (again, take R = 1).
You should get three grids altogether:
(1) an original square grid;
(2) the image of this grid
under the linear approximation;
(3) the image under real ray tracing.
When applying the linear approximation, be sure to convert to radians.
