The Mathematical Study of Mollusk Shells

## Derivatives of rotation matrices

Suppose R = [aij] is a 3x3 rotation matrix. This means that R preserves lengths and angles, and preserves orientation. Since R times the first basis vector
```
1     a11
R [0] = [a21] = first column of R, etc.,
0     a31
```
the statement "R preserves lengths and angles" implies that the three columns of R have unit length and are pairwise orthogonal. This is equivalent to the statement that R RT = I: that R times the transpose of R (transpose means rows and columns are interchanged) is the identity matrix I.

Suppose now Ra is a smooth curve of rotation matrices, with R0=I. Differentiating the equation RaRaT = I with respect to a gives R'aRaT + RaR'aT = 0. Setting a=0 then gives R'0 + R'0T = 0, i.e the matrix R'0 is equal to minus its transpose. So

```       0 -f -g      0 -1 0      0 0 -1      0 0  0
R'0 = [f  0 -h] = f[1  0 0] + g[0 0  0] + h[0 0 -1].
g  h  0      0  0 0      1 0  0      0 1  0
```
where f,g,h are any 3 real numbers. This is the form of our matrix r = lima->0(Ra-I)/a.

The next step is to rotate coordinates so that

```
0 -c  0
r = [c  0  0].
0  0  0  ```
If the new coordinates are derived from the old by a rotation matrix S, then in the new coordinates the same infinitesimal rotation r will appear as SrS-1. Starting with
```       0 -f -g
[f  0 -h]
g  h  0
```
a rotation of coordinates by an angle A = arctan(-h/g) about the z-axis changes r to
``` cosA -sinA 0    0 -f -g     cosA sinA 0       0 -f -q
[sinA  cosA 0]  [f  0 -h]  [-sinA cosA 0]  =  [f  0  0].
0     0   1    g  h  0      0    0   1       q  0  0
```
where q = -gcosA+hsinA. A further rotation by an angle B = arctan(-q/f) about the x-axis changes that matrix to
``` 1   0     0     0 -f -q    1    0    0        0 -c  0
[0 cosB -sinB]  [f  0  0]  [0  cosB sinB]  =  [c  0  0]
0 sinB  cosB    q  0  0    0 -sinB cosB       0  0  0
```
where c = fcosB - qsinB.

@ Copyright 2001, American Mathematical Society