The Equiangular Spiral
(Alternate Version -- file partly filled-in)
Enter the plotting package:
> with(plots):
Warning, the name changecoords has been redefined
Part 1. Background
(No response is required in Part 1.)
Part 2. Measuring a Spiral Seashell
Enter your
x
,
y
,
r
, and
t
measurements here. Adjust your values of
t
(=
) as necessary, by adding multiples of
.
These data pasted in from applet in Part 2 of the module. Multiples of
have been added where necessary to the
t values.
>
n := 24;
x := [156, 154, 123, 100, 96, 107, 130, 166, 187, 199,
195, 165, 93, 33, 21, 55, 137, 249, 318, 341,
320, 273, 196, 136];
y := [177, 197, 208, 190, 165, 143, 129, 131, 148, 177,
218, 249, 262, 215, 133, 69, 28, 49, 123, 233,
312, 378, 427, 446];
r := [ 20.00, 26.91, 33.62, 38.28, 41.76, 44.69, 48.37, 54.92, 58.67, 63.00,
71.85, 77.62, 95.26, 109.79, 123.13, 135.00, 149.00, 170.74, 189.84, 212.51,
228.21, 243.25, 257.10, 269.00];
t := [ 0.0000, .8380, 1.9679, 2.7951, 3.4330, 4.0062, 4.5880, 5.2903, 5.7662, 0.0000+2*Pi,
.6073+2*Pi, 1.1879+2*Pi, 2.0391+2*Pi, 2.7882+2*Pi, 3.5070+2*Pi, 4.0689+2*Pi, 4.7191+2*Pi, 5.4356+2*Pi, 5.9948+2*Pi, .2667+4*Pi,
.6330+4*Pi, .9725+4*Pi, 1.3353+4*Pi, 1.5708+4*Pi];
>
Construct the (
) pairs by entering the next line.
> rData:=zip((x,y)->[x,y], t, r);
>
Plot the data points.
> p1:=plot(rData, style=point, symbol=circle): display(p1);
>
Construct an appropriate plot of the data to determine the growth type.
> p2:=logplot(rData, style=point, symbol=circle): : display(p2);
>
Do your calculations here to determine a function that will reasonably fit the radial measurment data.
>
> slope:=(log(r[19])-log(r[6]))/(t[19]-t[6]);
>
Enter your fitted function here, and superimpose its graph on the data plot. Note that we are using R for the dependent variable, since r is already in use for data values.
> R:=theta->r[13]*exp(slope*(theta-t[13]));
> p3:=plot(R(theta), theta=0..6*Pi, R=0..r[n]):
> display(p1,p3);
>
Part 3: Plotting a Spiral Curve
Check your polar function by plotting it in polar coordinates.
> polarplot(R(theta),theta=-2*Pi..4.5*Pi, scaling=constrained);
>
Enter your parametric formulas for x and y.
>
x := theta->R(theta)*cos(theta);
y := theta->R(theta)*sin(theta);
>
Check your parametric equations by plotting the curve. You may change the
interval by changing
a
and/or
b
. You may change the
x
-range and
y
-range by changing
c
. In particular, you may use
c
to zoom in on the graph. For very small values of
c
, you will need to make
b
smaller and
p
bigger.
>
>
a:=-2*Pi; b:=4.5*Pi;
and
>
c:=300;
x
and
y
range between
and
c
>
p:=1000;
number of points plotted between
and
> plot([x(theta),y(theta),theta=a..b], x=-c..c,y=-c..c, numpoints=p, scaling=constrained);
>
Part 4: Why "Equiangular"?
Answer question 1 here.
>
Enter the parametric formulas for the equiangular spiral:
> x := theta->r0*exp(k*theta)*cos(theta);
> y := theta->r0*exp(k*theta)*sin(theta);
>
Do the rest of your calculations here, and answer the rest of the questions in this part.
> den := diff(x(theta),theta);
> num := diff(y(theta),theta);
> tanalpha:=simplify(num/den);
> tantheta := sin(theta)/cos(theta);
> tanbeta := (tanalpha-tantheta)/(1+tanalpha*tantheta);
> simplify(%);
>
Part 5: Summary
Answer the summary questions here.
>
>