Seeing imaginary numbers as rotations was one of my favorite aha moments:

i, the square root of -1, is a number in a different dimension! Once that clicks, we can use multiplication to "combine" rotations of two complex numbers:

Yowza, did that ever blow my mind: add angles without sine or cosine! Unfortunately, I didn't have an intuitive grasp of *why* this worked. Let's fix that!

Table of Contents

## The Boring Explanation: How?

Here's the common explanation of why complex multiplication adds the angles. First, write the complex numbers as polar coordinates (radius & angle):

Next, take the product, group by real/imaginary parts:

Lastly, notice how this matches the sine and cosine angle addition formulas:

And there you have it! What's that? You don't intuitively think in terms of sine and cosine expansions? Too bad, the math checks out!

...

Still here? Good. The problem is we've lost the magic: it's like saying two poems are similar because we analyzed the distribution of letters. Accurate but unsatisfying!

I like sine as much as anyone, but the details come *after* seeing the relationship click.

## The Fun Explanation: Why!

What's our goal again? Oh yes -- to see *why* we can multiply two complex numbers and add the angles.

First, let's figure out what multiplication does:

**Regular multiplication**("times 2") scales up a number (makes it larger or smaller)**Imaginary multiplication**("times i") rotates you by 90 degrees

And what if we combine the effects in a complex number? Multiplying by (2 + i) means "double your number -- oh, add in a perpendicular rotation".

Quick example: 4 · (3+i) = 4 · 3 + 4 · i = 12 + 4i

That is, take our original (4), make it 3 times larger (4 * 3) and *then* add the effect of rotation (+4i). Again, if we wanted only rotation, we'd multiply by "i". If we wanted only scaling we'd multiply by plain old 3. A complex number (a + bi) has both effects.

## Visualizing Complex Multiplication

That was easy -- a real number (4) times a complex (3+i). What about two complex numbers ("triangles"), like (3 + 4i) · (2 + 3i)?

Now we're talking! I see this as "Make a scaled version of our original triangle (times 2) and add a scaled/rotated triangle (times 3i)". The final endpoint is the new complex number.

But... I love alternate explanations! Here's another:

Instead of grouping the multiplication by triangle, we analyze each part of the FOIL (first, outside, inside, last). Adding each component takes us along a *path* and ends in the same spot!

## But What About the Angles?

Ah yes, the angles. It looks like we're adding the angles, but can we be sure?

Captain Geometry to the rescue! Oh, how I've missed you from 9th grade. Is the result (dotted blue line) at the same angle as plopping the triangles on each other?

In the normal case, we start with a triangle (3 + 4i) and plop on the other (2 + 3i) to get the combined angle.

After the multiplication, we start with a scaled triangle (2x) and plop on another scaled triangle (times 3i). Even though it's larger, similar triangles have the same angles -- they're just bigger (but don't ask about its size, ok?).

We scaled up the original triangle (no change in angle) and "plopped on" another scaled triangle (no change in angle), so the result is the same! I love seeing this come together -- we scale up, rotate out, and boom -- we're at the combined angle. This isn't about "imaginary numbers" -- it's a way to combine triangles without trigonometry!

## Side Effects May Include Scaling

Notice how we're making larger copies of our original triangle and adding them together. What's the change in size compared to our starting blue triangle?

Well, let's call our original length "x". Whatever it is, we end up getting a new triangle layered on top, with a size of 2x + 3x (a + bi in general). And from Pythagoras (I love that gentleman) the "real" distance is

That is, we take our original distance (x) and scale it by the *size* of the new triangle (size of a + bi).

If the new triangle is size 1 (a^{2} + b^{2} = 1) then the distance won't change!

## A Few Thoughts

I don't hate rigorous proofs -- I hate pretending they're helpful when they're not. Proofs have two goals:

- Show
*that*a result is true. This is for mathematicians presenting results -- students rarely question the validity of facts in math class. - Show
*why*a result is true.

Real, satisfying insight comes from playing with analogies and examples -- not reading distilled, minimalist proofs (especially those which appeal to the sine/cosine addition formulas!).

Polya said it well: “When you have satisfied yourself that the theorem is true, you start proving it."

Happy math.

## Other Posts In This Series

- A Visual, Intuitive Guide to Imaginary Numbers
- Intuitive Arithmetic With Complex Numbers
- Understanding Why Complex Multiplication Works
- Intuitive Guide to Angles, Degrees and Radians
- Intuitive Understanding Of Euler's Formula
- An Interactive Guide To The Fourier Transform
- Intuitive Understanding of Sine Waves
- An Intuitive Guide to Linear Algebra
- A Programmer's Intuition for Matrix Multiplication

## Leave a Reply

60 Comments on "Understanding Why Complex Multiplication Works"

Kalid, I really enjoy reading about your fresh perspective on mathematical analogies. I love mathematics, but I hate practicing it just to get an understanding of how it works. That’s why your articles are a great relief. I’m currently writing a series of articles on learning programming intuitively, and I would really appreciate if you would read them and find any flaws! =D

Great article! That said: “FOIL (first, inside, outside, last)”?

Kalid, I love the way you solve algebraic problems using geometry!

For example, traditionally we prove that the magnitude of the product of two complex numbers is the product of the magnitudes of the two complex numbers (I love this description =D) as follows:

X = (a + bi)

Y = (c + di)

|X| = sqrt(a ^ 2 + b ^ 2)

|Y| = sqrt(c ^ 2 + d ^ 2)

Z = X * Y

Z = (a + bi) * (c + di)

Z = (ac – bd) + (ad + bc)i

|Z| = sqrt((ac – bd) ^ 2 + (ad + bc) ^ 2)

m = (ac – bd) ^ 2 = (a ^ 2 * c ^ 2) – 2abcd + (b ^ 2 * d ^ 2)

n = (ad + bc) ^ 2 = (a ^ 2 * d ^ 2) + 2abcd + (b ^ 2 * c ^ 2)

m + n = (a ^ 2 * c ^ 2) + (b ^ 2 * d ^ 2) + (a ^ 2 * d ^ 2) + (b ^ 2 * c ^ 2)

m + n = a ^ 2 (c ^ 2 + d ^ 2) + b ^ 2 (c ^ 2 + d ^ 2)

m + n = (a ^ 2 + b ^ 2) * (c ^ 2 + d ^ 2)

|Z| = sqrt((a ^ 2 + b ^ 2) * (c ^ 2 + d ^ 2))

|Z| = sqrt(a ^ 2 + b ^ 2) * sqrt(c ^ 2 + d ^ 2)

|Z| = |X| * |Y|

However, from Kalid’s analysis (Side Effects May Including Scaling) we have:

|Z| = |X| * sqrt(c ^ 2 + d ^ 2)

|Z| = |X| * |Y|

Although both the methods follow the same analogy (Kalid’s formula is simply an expanded version of the magnitude formula), yet Kalid’s method is more intuitive.

By visualizing the problem on a graph paper and solving it using geometry we understood how complex number multiplication works; and by breaking it down in simpler components (FOIL), we avoided most of the long calculations above! ;D

@David Rysdam – FOIL refers to the formula:

Z = (a + bi) * (c + di)

Z = (a * c) + (bi * c) + (a * di) + (bi * di)

(a * c) is First

(bi * c) is Inside

(a * di) is Outside

(bi * di) is Last

This corresponds to the path given in the figure alongside. Cheers! =D

@David Rsydam – “I can be contacted by email by replacing the first dot in my URL with an @ and the stripping away the extra stuff.” – Pro analogy dude! =D

Edit: By visualizing the problem on a graph paper and solving it using geometry we avoided most of the long calculations above; and by breaking it down in simpler components (FOIL), we understood how complex number multiplication works! ;D

Great explanations. Thanks a lot!

Just one… in The Fun Explanation, the Quick example is 4 (3+i), “If we wanted only scaling we’d multiply by plain old 3.” is plain old *4*?

I think David means, if the order is

– First

– Inside

– Outside

– Last

Then, it may be FIOL instead of FOIL in the order of the characters.

@Hitoshi – My mistake, in all probability (bi * c) is outside and (a * di) is inside; but I have no clue as to how Kalid decided upon that naming convention. Perhaps he can shed some light! =)

@Hitoshi – I skipped back to the quick example in the fun explanation section, and in a sense you’re correct:

4 * (3 + i) only scales (3 + i); but taken the other way around (3 + i) scales and rotates 4!

Kalid specifically mentioned that 4 is made 3 times larger and then rotated! =D

@Hitoshi – Wow, late realization – I finally understood what you were trying to say:

“If we wanted only scaling we’d multiply by plain old 3.” is plain old *4*?

No, it’s definitely plain old 3!

To scale and rotate 4, we multiply it with (3 + i). Thus if we only wish to scale it, we only multiply it with 3. Similarly if we only wish to rotate it, we only multiply it with i.

@David: Whoops! Yep, that was out of order, fixed now.

@Hitoshi: Ah, thanks for the catch! I meant it to read “if we only want the scaling effect from (3 + i) we’d multiply by plain old 3”. I’l clarify this.

@Aadit: Thanks! I can check out your posts and give some feedback for sure :). Definitely appreciate the algebra breakdown, it’s good to have it as a sanity check — but as you say, I don’t find raw algebra the most intuitive (you can get the results but don’t _see_ them!).

FOIL is supposed to be first (a*c), inside (bi*c), outside (a * di), last (bi * di) but I mistyped it :).

I think people just lap up whatever you dish out. Your explanation is no more vivid than that is given in any iit-jee tutorial guide.

Hi,

I can’t understand ‘But What About the Angles?’ part.what is that we are trying to achieve there ,especially this part ‘In the normal case, we start with a triangle (3 + 4i) and plop on the other (2 + 3i) to get the combined angle.’Would be glad if you could explain that more.thanks ! and try to write more frequently !!

@Nandeesh: Everyone has a different style :). I just write things as I wish they were told to me (specifically, nobody had shown me *why* the angles were added, aside from the sine/cosine argument).

@vasanth: Great question, I need to clarify.

The question was to figure out if the angles really were added.

Normal way to add angles: start with the blue triangle (3 + 4i) and put the green one (2 + 3i) on top. We get some angle (marked in purple).

Multiplication way to add angles: Do the multiplication (3 + 4i) times (2 + 3i) and notice we’ve made a “bigger” triangle with sides 2x and 3x (where x is the length of the first triangle). We’re putting a similar triangle on top of our original blue one, so the angles must stay the same (although we’re further away than the normal case, where we just put green on top of blue).

I’ve definitely been writing too infrequently — I plan to start going faster :)

Hi Kalid,

I’m still having trouble with the “But What About the Angles?” section…

So I get that if you want to add the angles of the (3+4i) “triangle” and the (2+3i) “triangle”, you plop one triangle on top of the other. In the drawing, the (2+3i) triangle (green) is plopped onto the other, blue one, and the purple on the left side of the diagram is the sum of the angles.

However, it’s still not clicking why multiplying complex #’s delivers the same result. I get that (3+4i)(2+3i) breaks down to:

(3+4i)(2) + (3+4i)(3i)

and that (3+4i)(2) is simply a scaled version of (3+4i) and therefore does not have a different angle.

You also say (3+4i)(3i) is another scaled triangle, which makes sense, but isn’t it also scaled and rotated b/c of the multiplication with i? Regardless, it’s still not clear to me why this all works out…

Specifically, this sentence is causing a hang up: “We scaled up the original triangle (no change in angle) and “plopped on” another scaled triangle (no change in angle), so the result is the same”.

Scaling up the original triangle by 2 makes sense.

The other scaled triangle seems like it would have a change in angle cuz it includes an i, right?

oohhhhh I get it now! (Sorry for the triple comment…)

The second case is the same as the first case, everything is just scaled up.

The blue triangle is scaled up by a factor of 2, so its angle is the same.

The green triangle is scaled up by a factor of x (where x = length of blue triangle), so its angle is the same as well).

We are simply plopping the green one on on the blue one — same as before.

Awesome, glad you worked it out!

Alternate explanation for multiplication of two complex numbers

==================================================

(3 + 4i) · (2 + 3i) = ?

Note: I am not able to draw triangles. so I am just explaining in words.

First (3+4i)*2

==============

From O the origin, draw triange OAB to represent 3+4i with B as the vertex.

At B, place another triange BCD in the same orientation with D as the tip.

Now we have multiplied 3+4i twice to get to the point D.

Next: (3+4i)*3i = (-4+3i)*3

===========================

We have to add 3 triangles each representing (-4+3i).

At D, draw a triange DEF to represent (-4+3i).

From F place a similar triangle FGH to get to the tip H.

From H place a similar triangle HIJ to get to the tip H.

The tip J represents (3 + 4i) · (2 + 3i).

We have traversed from O to H via A,B,C,D,E,F & G.

The hirizontal displacement is 3+3-4-4-4 = -6.

The vertical displacement is 4+4+3+3+3 = 17.

So H is (-6,17).

Sorry

We have traversed from O to J via A,B,C,D,E,F, G & H.

The hirizontal displacement is 3+3-4-4-4 = -6.

The vertical displacement is 4+4+3+3+3 = 17.

“@vasanth: Great question, I need to clarify.

The question was to figure out if the angles really were added.

Normal way to add angles: start with the blue triangle (3 + 4i) and put the green one (2 + 3i) on top. We get some angle (marked in purple).

Multiplication way to add angles: Do the multiplication (3 + 4i) times (2 + 3i) and notice we’ve made a “bigger” triangle with sides 2x and 3x (where x is the length of the first triangle). We’re putting a similar triangle on top of our original blue one, so the angles must stay the same (although we’re further away than the normal case, where we just put green on top of blue).

I’ve definitely been writing too infrequently — I plan to start going faster “

Thank you !

Dear Kalid,

I have been following your articles since long and I insist on my kids to read your articles.

You are doing a great philanthropic work by transforming bookish math concepts into intuitions.

I just want to confirm whether your articles are getting updated in view of the typo or readers’ inputs.

I am deeply sorry if I have made any harsh comment.

@NANDEESH: Oh, no offense taken — and thank you for the awesome writeups! Sometimes it’s nice to convert to geometry notation, I had forgotten entirely about labeling points!

I definitely take reader corrections / fixes, it’s how I learn too! :)

@vasanth: You’re welcome!

In the “Visualizing Complex Multiplication”, first figure, I didn’t understand why the new scaled and rotated triangle starts from the tip of the old one. Why not just put it “to the right” of the original one, wouldn’t that be considered adding them as well?

@david: Great question. In order to be consistent, we need to pick something as the “end” of the triangle to add onto (on a number line, 3 + 5 means you go to the “end” of 3 and then begin your “5”).

Similarly, the “end” of the triangle is the end of the imaginary part. We could take the imaginary part first (go vertical, then horizontal) and the “end” would be the same location (though we arrived at a different path). This 2nd path would be like the outside of an F.

If we had 3 + (3 + i) we would indeed be adding the 2nd triangle (3 + i) alongside the regular number (3), and it would just be shifted by 3 units. Hope this helps!

perfectly clear, thanks kalid!

@david: Glad it helped!

Hello Kalid,

first of all i want to tank you for your work. I never looked at complex numbers this way!

But there is one thing i don’t really understand:

How do you tell which complex number equals which angel (rotation)?

e.g. : 1+i = [45°]

i tought about this a little bit but didn’t really got good results, here’s what i got:

– we’re in 2D

therefore we can say: (the slope) m = |y|/|x| = tan(alpha)

e.g. : the angel between (|x|, 0) and (0, i|y|) is 45° if x=y=1

and if we now say that |x| = 1 (lenght of x)

then there is : |y| = tan(alpha)

now we can ask, e.g. what the value for 45° is

we say: tan(45°) = 1 = |y|

therefore: if we multiply any vektor with (1, i*|y|) it should rotate 45°

but tan(70°) returns 2,747474…….. , instead of this i could write (1, i*tan(alpha)) -> rotation alpha degree

but that can’t be right

please tell me, is there an easy way to get to know the complex number for a rotation of alpha degree?

[…] Multiplying by a complex number rotates by its angle […]

[…] 原文链接：http://betterexplained.com/articles/understanding-why-complex-multiplication-works/ 此条目由 Gosin 发表在 有时翻译 分类目录，并贴了 BetterExplained 标签。将固定链接加入收藏夹。 […]