Plotting the effects of a linear transformation on a grid

I am a student taking a first undergraduate course in linear algebra, and I would like to play around with plots of transformations of the type $T:\mathbb{R}^2\rightarrow\mathbb{R}^2$. I already know a bit of python, so I'm not looking for anyone to write a program for me, but I would really appreciate some tips/general outline of how to do things.

1) First I want to make a grid that I can plot, and then transform by multiplying it with a matrix. Where's the best way to start? Should I use parametric_plot, or maybe it can be done with just a list of vector([x,y])'s?

2) Second I want to run the grid through a linear transformation. If I could just plot vectors and offset them (not having them start at the origin), I would only only have to iterate over a list of vectors to get the transformed vectors, but I'm not sure if this is a smart way to do it.

Basically, is there a straight forward way to do this? It doesn't seem like it should be very difficult, if someone could give a rough outline of how to do this it would be greatly appreciated.

1 answer

I would advise to work with a list of vectors and make loops as you suggested, this is a smart way. You can write a function grid(v1, v2) (plus fancy parameters) and apply it to grid(M*v1, M*v2) for some matrix M.

So that my vectors live in a safe place (you can of course replace QQ with another field if needed, typically if you want to draw rotations using sinus and cosinus). Then, after defining a grid() function that returns a Graphics() object built as a sum of lines(), i would write:

sage: grid(v1, v2, color='blue') + grid(M*v1, M*v2, color='red')

To get something like that picture:

Do not hesitate to ask for details about the grid() function if needed.