In a previous post I discussed the relationship between derivatives, logarithms, and transforms. This blog post adds to that and explains how to find the second and higher order derivatives of a transform.

The Concept of Derivatives of Transforms

Let’s quickly recap my earlier blog post. Suppose we have a transform \(T\) and a point at the initial position of \(x(0)\). The position of the point at time t and the first derivative of that point are

\(x(t) = T^t * x(0)\)

\(x'(t) = log(T) * x(t)\).

where \(log(T)\) is the logarithm of the transform. Both \(T\) and \(log(T)\) are constant with respect to t.

What’s the second derivative?

We know the first derivative (\(x'(t) = log(T) * x(t)\)), so to find the second derivative, we start with

\(\dfrac{d}{dt}x'(t) = \dfrac{d}{dt}log(T) * x(t)\)

Since \(log(T)\) is constant with respect to time, we then have

\(x''(t) = log(T) * \dfrac{d}{dt}x(t)\)

and earlier we stated that \(x'(t) = log(T) * x(t)\), so we just plug that in, giving us our answer:

\(x''(t) = log(T) * log(T) * x(t)\).

Neat! In other words, if we have the first derivative, then the second derivative is just another multiplication by \(log(T)\).

In the earlier blog post, we found the tangent vector of a point by multiplying the point by \(log(T)\). Similarly, we can now find the acceleration vector of a point by multiplying it by \(log(T) * log(T)\).

What’s the nth derivative?

The beauty of this approach is how simple it is. For the nth derivative, we can follow the same pattern. More generally, the nth derivative is

\(x^{n}(t) = log(T)^n * x(t)\)

Interactive Example

Here’s an interactive example where you can see the tangent vector (green arrow) and acceleration vector (red arrow) of a point as it is interpolated from the origin to the gizmo’s transform. You can manipulate the gizmo to translate and rotate the transform. You can also enable a visualization of the velocity vector field or the acceleration vector field.

The source code for the applet can be found here.

Comments

Leave comments on this post with Github Issues here.