Skip to main content

Understanding How to Transpose Without Really Trying: EMII Notes 2014_08_09 Part II

Summary of what's gone on before.  Got through the index notation for gradients and whatnot.  I was left a little bit baffled by the notation for the orthogonal transpose identity.  Consequently, I'm digging back into it.

In this set of notes, the transpose, orthogonal identity, $M_{ki}M_{kj} = \delta_{ij}$, is first hammered out.  It then becomes obvious what's going on.  The dummy summing of the two row indices gave us the equivalent of a matrix multiply where it's row times row instead of row times column.  The rows of a matrix that should have been transposed however are the same as the columns of one that wasn't.  In other words by forcing a different type of matrix multiply, they teased out the transpose for free.

Here's the hammering through bit.

Let's take as an example, the simple rotation matrix about the z axis.  Keep in mind that it has already been explained above why this will work for any orthogonal matrices and that this is just a concrete version that I already happened to work out before figuring out the general case above.


$M_z = \begin{pmatrix}
cos \theta & sin \theta & 0\\
-sin \theta & cos \theta & 0\\
0 & 0 & 1
\end{pmatrix}$

Now, with the multiply defined as above, we will get three resulting matrices for $k=1$, $k=2$, and $k=3$, and then sum them all together.  The k's are fixed, so the only combinations of terms that need to be multiplied are the i's and the j's .  For each k, we'll get the 9 terms indexed by i and j.  So, for the k's, 1 through 3, respectively, we get:

$\begin{pmatrix}
cos^2 \theta & cos \theta sin \theta & 0\\
sin \theta cos \theta & sin^2 \theta & 0\\
0 & 0 & 0
\end{pmatrix}+\begin{pmatrix}
sin^2 \theta & -sin \theta cos \theta & 0\\
-cos \theta sin \theta & cos^2 \theta & 0\\
0 & 0 & 0
\end{pmatrix}+\begin{pmatrix}
0 & 0 & 0\\
0 & 0 & 0\\
0 & 0 & 1
\end{pmatrix}$

which adds term by term to give $\delta_{ij}$.

NOTE:  Look at this a lot!  The multiply method of swizzling through all the combinations of i and j tends to slip my mind!





Comments

Jonah Miller said…
Well done! I remember really struggling with this sort of thing when I was first starting on GR.

It's not terribly enlightening, but I often found it helpful to prove index identities to myself using "brute force" by programming the summation into a computer and confirming the left-hand side is the same as the right-hand side. The reason I would do this is sort of two-fold.

Sometimes it was helpful just to prove to myself the identity worked. I didn't really believe it until I saw it in action.

And sometimes I misunderstood the index notation and got the identity wrong! The brute force would make that clear.
antigrav_kids said…
Thanks Yurlunger!

I like your idea about programming the identities. I guess I'll get better with practice, but these are pretty difficult for me to see now, and a computer program, as you pointed out would force me to confront the inconsistencies in my thinking about indices more quickly.

Popular posts from this blog

Cool Math Tricks: Deriving the Divergence, (Del or Nabla) into New (Cylindrical) Coordinate Systems

Now available as a Kindle ebook for 99 cents! Get a spiffy ebook, and fund more physics
The following is a pretty lengthy procedure, but converting the divergence, (nabla, del) operator between coordinate systems comes up pretty often. While there are tables for converting between common coordinate systems, there seem to be fewer explanations of the procedure for deriving the conversion, so here goes!

What do we actually want?

To convert the Cartesian nabla



to the nabla for another coordinate system, say… cylindrical coordinates.



What we’ll need:

1. The Cartesian Nabla:



2. A set of equations relating the Cartesian coordinates to cylindrical coordinates:



3. A set of equations relating the Cartesian basis vectors to the basis vectors of the new coordinate system:



How to do it:

Use the chain rule for differentiation to convert the derivatives with respect to the Cartesian variables to derivatives with respect to the cylindrical variables.

The chain rule can be used to convert a differe…

Division: Distributing the Work

Our unschooling math comes in bits and pieces.  The oldest kid here, seven year-old No. 1 loves math problems, so math moves along pretty fast for her.  Here’s how she arrived at the distributive property recently.  Tldr; it came about only because she needed it.
“Give me a math problem!” No. 1 asked Mom-person.

“OK, what’s 18 divided by 2?  But, you’re going to have to do it as you walk.  You and Dad need to head out.”

And so, No. 1 and I found ourselves headed out on our mini-adventure with a new math problem to discuss.

One looked at the ceiling of the library lost in thought as we walked.  She glanced down at her fingers for a moment.  “Is it six?”

“I don’t know, let’s see,” I hedged.  “What’s two times six?  Is it eighteen?”

One looked at me hopefully heading back into her mental math.

I needed to visit the restroom before we left, so I hurried her calculation along.  “What’s two times five?”

I got a grin, and another look indicating she was thinking about that one.

I flashed eac…

The Javascript Google URL Shortener Client API

I was working with the Google API Javascript Client this week to shorten the URLs of Google static maps generated by my ham radio QSL mapper. The client interface provided by Google is very useful. It took me a while to work through some of the less clear documentation, so I thought I'd add a few notes that would have helped me here. First, you only need to authenticate your application to the url shortener application if you want to track statistics on your shortened urls. If you just want the shortened URL, you don't need to worry about this. The worst part for me was that the smaple code only showed how to get a long url from an already shortened rul. If you follow the doucmentaiotn on the insert method, (the method for getting a shortened url from a long one), there is a reference to a rather nebulous Url resource required argument. It's not at all clear how to create one of these in Javascript. The following example code shows how:
var request = gapi.clie…