Linear vs. Nonlinear Transformations
In the last post we started to explore how we can use coordinate transformations to manipulate points in space, and set ourselves the task of finding the transformations that would let us represent a robot that moves and rotates around in its environment.
An important step in this is to understand that we can separate all transformations into two distinct categories: linear and non-linear. We'll talk in more detail about what linearity means later, but for now all we need to know is that for our purposes 1 linear functions are functions of the form:
Where is an matrix, and is the number of dimensions in . So the matrix for the 1D, 2D, and 3D cases respectively would look like:
If the function is anything other than a matrix multiplied by the input then it is non-linear. And while this seems like a pretty heavy limitation (as we'll see in future posts) we can still do some impressive transformations, and understanding how to use them will set us up well for understanding non-linearities further down the track.
Just a quick warning, don't be fooled into thinking a function like is linear just because it is a line. Being linear in the polynomial sense is not the same as being a linear function/transformation, and that particular function is non-linear due to the added term.
Exploring Linear Transformations
Let's explore this idea a bit further using the example of a 2D linear transformation. We'll have a look at how each of these four matrix elements (, , , and ) will influence the behaviour of our transformation.