Spittlebugs

40x magnification of the head of the spittlebug nymph.

On the wildgrass-covered slope next to school, you can see a lot of these little foamy things, that look like spit, on the stalks of the tall grasses and herbs.

Spittlebug "spit" is mostly made of a froth of the plant's sap.

One of my students collected some to look at under the microscope. We thought it might be the collection of eggs of some creature. It turned out that, at the center of the foam, was what looked like an immature insect. A quick google search for “spit bugs” turned up froghoppers, whose nymphs create the spit to protect them from the environment (heat, cold) and hide themselves from predators.

They suck the sap of the plants they’re on, and can be agricultural pests.

Spittlebug nymphs on a slide.

Tavern Rock Cave

Tavern Rock Cave.

Note to self: The Tavern Rock Cave, where Meriwether Lewis almost fell to his death, is 45 minutes from the St. Albans Lake (walking at a fair pace mind you), not “just 20”, no matter what the students claim.

It’s a little tricky to get to, and we couldn’t spend more than a few minutes there because of the longer than expected walk, but it’s a nice place to visit because of the history and beautiful geology (jointed limestone and dolomite outcrops; scree slopes at the angle of repose; Ordovician fossil imprints).

Rapelling down an overgrown scree slope.

P.S. The National Park Service has an excellent site on the Lewis and Clark Expedition that includes maps, their itinerary, and a long list of sites they visited.

Iridescent Wings – The Physics

The bright blue iridescence of the wings of this insect results from the way light refracts through the thin layered membranes of the wings.

When you look at the sunlight reflected off this black insect’s wings at just the right angle, they blaze bright blue. The phenomena is called iridescence, and results from the way different wavelengths of light refract through the wing membrane. Blue light is of just the right wavelength that the light reflected off the top of the membrane and the light that’s refracted through the membrane constructively interfere. The Natural Photonics program at the University of Exeter has an excellent page detailing the physics of iridescence in butterflies (Lepidoptera), and the history of the study of the subject.

Surface Tension

Surface tension supports the water strider on the surface of the still water of the creek.

Down at the creek the water striders are out. They can stand, walk and jump on the surface of the water without penetrating the surface because of the force of surface tension that causes water molecules to stick together — it’s the same cohesive force that make water droplets stick to your skin. I got a decent set of photos to illustrate surface tension.

The water striders still create ripples on the surface of the water, even though they never break the surface.

The green canopy that over hangs the creek allows for some nice photographs.

Water strider in still water.

Music of the Fibonacci Sequence

Tool‘s Lateralus has the Fibonacci Sequence embedded into it. Ms. Wilson tells me that some of her Algebra II students were able to detect it out after listening to the song (a few times), but this video has the highlights where the sequence occurs.

Ms. Wilson

Learning Matricies by Programming a Matrix Solver

One of my pre-Calculus students convinced me that the best way for him to learn how to work with matrices was for him to program a matrix solver. I helped him create a Gaussian Elimination solver in Python (which we’ve been using since last year).

Gaussian Elimination Matrix Solver by Alex Shine (comments by me).

from visual import *

'''The coefficient matrix (m) can be any sized square matrix 
   with an additional column for the solution'''
m = [ [1,-2,1,-4],[0,1,2,4],[2,3,-2,2]]

'''Convert the input matrix, m (which is a list) into an array'''
a = array(m,float)
print "Input matrix:"
print a
print

'''Get the shape of the matrix (number of rows and columns)'''
(r,c) = a.shape 

rs = (1-r)

'''Solve'''
for j in range(r):

    print "Column #:", j
    for i in range(r):
        if a[i,j] <> 0:
            a[i,:] = a[i,:] / a[i,j]
    print a
    print

    for i in range(rs+j,j):
        if a[i,j] <> 0:
            a[i,:] = a[j,:] - a[i,:]
    print a
    print

print "Solution"
for i in range (r):
    a[i,:] = a[i,:] / a[i,i]
    print "Variable", i, "=", a[i,-1]

print
print "Solution Matrix:"
print a

The code above solves the following system of equations:


  x - 2y +  z = -4 
       y + 2z =  4 
 2x + 3y - 2z =  2 

Which can be written in matrix form as such:

 \left[ \begin{array}{ccc} 1 & -2 & 1 \\ 0 & 1 & 2 \\ 2 & 3 & -2 \end{array} \right]  \left[ \begin{array}{c} x \\ y \\ z \end{array} \right] =  \left[ \begin{array}{c} -4 \\ 4 \\ 2 \end{array} \right]

You use the solver by taking the square matrix on the left hand side of the equation and combining it with the column on the hand side as an additional column:

 \left[ \begin{array}{cccc} 1 & -2 & 1 & -4 \\ 0 & 1 & 2 & 4\\ 2 & 3 & -2 & 2\end{array} \right]

This is entered into the program as the line:

m = [ [1,-2,1,-4],[0,1,2,4],[2,3,-2,2]]

When you run the above program you should get the results:

>>> ================================ RESTART ================================
>>> 
Input matrix:
[[ 1. -2.  1. -4.]
 [ 0.  1.  2.  4.]
 [ 2.  3. -2.  2.]]

Column #: 0
[[ 1.  -2.   1.  -4. ]
 [ 0.   1.   2.   4. ]
 [ 1.   1.5 -1.   1. ]]

[[ 1.  -2.   1.  -4. ]
 [ 0.   1.   2.   4. ]
 [ 0.  -3.5  2.  -5. ]]

Column #: 1
[[-0.5         1.         -0.5         2.        ]
 [ 0.          1.          2.          4.        ]
 [-0.          1.         -0.57142857  1.42857143]]

[[ 0.5         0.          2.5         2.        ]
 [ 0.          1.          2.          4.        ]
 [ 0.          0.          2.57142857  2.57142857]]

Column #: 2
[[ 0.2  0.   1.   0.8]
 [ 0.   0.5  1.   2. ]
 [ 0.   0.   1.   1. ]]

[[-0.2  0.   0.   0.2]
 [ 0.  -0.5  0.  -1. ]
 [ 0.   0.   1.   1. ]]

Solution
Variable 0 = -1.0
Variable 1 = 2.0
Variable 2 = 1.0

Solution Matrix:
[[ 1. -0. -0. -1.]
 [-0.  1. -0.  2.]
 [ 0.  0.  1.  1.]]
>>>

Be aware that:

  • The code is designed to take any size of matrix.
  • The matrix you put in can not have any zeros on its diagonal, so some manipulation is often necessary before you can use the code.

Other notes:

  • The negative zeros (-0) that show up especially in the solution matrix may not look pretty but do not affect the solution.
  • The code imports the vpython module in the first line but what it really needs is the numpy module, which vpython imports, for the arrays.

The next step is to turn this into a function or a class that can be used in other codes, but it’s already proved useful. My calculus students compared their solutions for the coefficients of a quadratic equation that they had to solve for their carpet friction experiment, which was great because their first answers were wrong.

A calculus student uses the matrix solver. Mr. Shine is now trying to convert the solver into an iPhone app.

A Model Solar Water Heater

One of the middle-school projects is to build a little solar water heater. By simply pumping water through a black tube that’s sitting in the sun, you can raise the temperature of the water by about 15°C in about 15 minutes.

The solar water heater in action.

Next year I want to try building an actual solar water heater, similar to the passive air heater my students built two years ago, with the tubing in a greenhouse box to see just how efficient we can make it.