*Update 17/04/2019: The transfer to WordPress.com has rendered LaTeX plugins unavailable; I am planning to update all equations and figures to fix the issue, although it might take some time.. 😉*

[latexpage]

If you have ever been taught about complex numbers and you’re like me, then the sudden appearance of Euler’s number in this seemingly unrelated subject was probably met by surprise. That’s why in this post, I aim to bring together several concepts you might not have seen together before. To start off, meet Leonhard Euler’s formula:

$$ e^{ix} = cos{x} + i sin{x} $$

While justifications have inevitably been given in the form of working out Taylor series or taking derivatives, there is a difference between writing down a mathematical proof and actually understanding *how *and *why* this formula could be true. So, please allow me to show you a visual way of looking at the formula and its actions embedded within! Note that this post holds no grudge against mathematical rigor: the latter is still a vital tool across all domains of mathematics and beyond. I simply want to present to you a new perspective, hopefully expanding your insight even further into this remarkable formula.

### What is complex multiplication?

Just as complex addition can be thought of as a translation in the complex plane, complex multiplication is really just **a scaling and a rotation**. For example, multiplying $ a $ by $ 1 + i $ gives a new complex number $ b $ that is:

- $ sqrt{2} $ larger in magnitude than $ a $ (the scaling), and
- rotated $ 45 $° counterclockwise relative to $ a $ (the rotation).

The parameters of this transformation, represented in the figure below, are simply the magnitude and the phase of the multiplier $ 1 + i $. Notice how $ a $ and $ b $ are each ‘in the same position’ relative to their own grids, loosely speaking.

begin{tikzpicture}

[scale=1]

draw[step=1, gray] (0,0) grid (5,5);

draw[step=1, black!30!green, rotate=45, scale=1.41421] (0,0) grid (4,4);

draw[thick, ->] (0,0) — (5.4,0) node[right] {Re};

draw[thick, ->] (0,0) — (0,5.4) node[above] {Im};

draw[thick, black!60!green, ->] (0,0) — (4.4,4.4) node[above right] {Re’};

draw[thick, black!60!green, ->] (0,0) — (-4.4,4.4) node[above left] {Im’};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (a) at (3,1);

coordinate (mult) at (1,1);

coordinate (b) at (2,4);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north] {$1$};

draw (i) node[anchor=east] {$i$};

fill (a) circle (1.25pt) node[anchor=south west] {$a$};

fill[blue] (mult) circle (1.25pt) node[anchor=north west] {$ 1+i$};

fill[black!60!green, font=small] (b) circle (1.25pt) node[anchor=west] {$ b=a(1+i)$};

end{tikzpicture}

For our discussion, it’s more convenient to view the multipliers as transforming ‘triangles’ rather than transforming the whole Cartesian plane. The input $ a $ and the output $ b $ then ought to be **similar triangles**, with the third point being $ 1 $ and the multiplier respectively. In the above figure, this means concretely that **$ a $ is to $ 1 $ exactly as $ b $ is to $ 1 + i $** (which is clearly an algebraic truth). Here’s another example to intuitively demonstrate that the two methods are equivalent:

begin{tikzpicture}

[scale=1]

draw[step=1, gray] (0,0) grid (8,6);

draw[step=1, black!30!green, rotate=-26.5651, scale=2.23607] (0,0) grid (3,4);

draw[thick, ->] (0,0) — (8.4,0) node[right] {Re};

draw[thick, ->] (0,0) — (0,6.4) node[above] {Im};

draw[thick, black!60!green, rotate=-26.5651, scale=2.23607, ->] (0,0) — (3.4,0) node[above right] {Re’};

draw[thick, black!60!green, rotate=-26.5651, scale=2.23607, ->] (0,0) — (0,4.4) node[above left] {Im’};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (a) at (2,3);

coordinate (mult) at (2,-1);

coordinate (b) at (7,4);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north] {$1$};

draw (i) node[anchor=east] {$i$};

fill (a) circle (1.25pt) node[anchor=south west] {$2+3i$};

fill[blue] (mult) circle (1.25pt) node[anchor=south west] {$ 2-i$};

fill[black!60!green] (b) circle (1.25pt) node[anchor=south west] {$ (2+3i)(2-i)$};

end{tikzpicture}

begin{tikzpicture}

[scale=1]

draw[step=1, gray] (0,-2) grid (8,6);

draw[thick, ->] (0,0) — (8.4,0) node[right] {Re};

draw[thick, ->] (0,-2.4) — (0,6.4) node[above] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (a) at (2,3);

coordinate (mult) at (2,-1);

coordinate (b) at (7,4);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=east] {$i$};

fill (a) circle (1.25pt) node[anchor=south west] {$2+3i$};

fill[blue] (mult) circle (1.25pt) node[anchor=north west] {$ 2-i$};

fill[black!60!green] (b) circle (1.25pt) node[anchor=south west] {$ (2+3i)(2-i)$};

draw[black!70!white, thick, dashed] (orig) — (one) — (a) — (orig);

draw[teal, thick, dashed] (orig) — (mult) — (b) — (orig);

end{tikzpicture}

The ‘action’ that transforms $ 2+3i $ to $ (2+3i)(2-i) $ is the same as what transforms the black grid to the green grid, or what transforms the black triangle into the teal triangle. This geometric equivalent may look daunting, but it’s all just a consequence of the familiar *‘multiplying magnitudes and adding up angles’* characteristic of complex products.

### Breaking down the equation

Equipped with a visual interpretation of complex multiplication, let’s now return to Euler’s formula. The right-hand side simply represents a point $ (cos{x}, sin{x}) $ on the unit circle of the complex plane. As a reminder, $x$ is the counterclockwise distance walked along this unit circle, starting from $ 1 $.

begin{tikzpicture}

[scale=2.5]

draw[thick, ->] (-1.2,0) — (1.2,0) node[right] {Re};

draw[thick, ->] (0,-1.2) — (0,1.2) node[above] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (x) at (0.540302,0.841471);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=south west] {$i$};

draw (1,1pt) — (1,-1pt);

draw (1pt,1) — (-1pt,1);

draw (-1,1pt) — (-1,-1pt);

draw (1pt,-1) — (-1pt,-1);

draw[dotted] (orig) circle (1);

draw[thick, blue] (one) arc (0:57.3:1) node[midway] {$hspace{0.7cm}x$};

draw[dashed] (orig) — (x);

% pic [draw, <->, “$x$”, angle eccentricity=1.5] {angle=one–orig–x};

fill (x) circle (0.5pt) node[anchor=south west] {$e^{ix}=cos{x}+isin{x}$};

end{tikzpicture}

On the other hand, the left-hand side is more intriguing: one wonders about the relevancy of $ e=2.71828… $, an irrational number somewhere in-between two and three. And what does it even *mean* to raise that specific quantity to the power of an imaginary number $ ix $? The key is to consider the following representation of Euler’s number:

$$ e = lim_{n to infty} (1+frac{1}{n})^n $$

Lots of interesting connections can be made with this identity, ranging from binomial distributions to compound interest. However, for our purposes we’ll just continue by raising both sides to the power $ ix $ and rewriting[efn_note]A possible derivation would be (let’s assume $ x neq 0 $):

begin{align*}e^{ix} &= (lim_{n to infty} big(1+frac{1}{n})^nbig)^{ix} \&= lim_{n to infty} (1+frac{1}{n})^{inx} \&= lim_{inx to infty} (1+frac{ix}{inx})^{inx} \&= lim_{n^prime to infty} (1+frac{ix}{n^prime})^{n^prime}end{align*}[/efn_note]:

$$ e^{ix} = lim_{n to infty} (1+frac{ix}{n})^n $$

Now, we have written the left-hand side as an infinitely long compound multiplication of identical factors $ 1+ix/n $. This latter element is an important one, so let’s see what it actually means before taking the limit. For $ n $ large enough, we then get the following approximation:

$$ e^{ix} approx underbrace{(1+frac{ix}{n}) (1+frac{ix}{n}) … (1+frac{ix}{n})}_text{n factors} $$

Each factor is a number with a real part of one, and with an extremely small but non-zero imaginary part:

begin{tikzpicture}

[scale=3.5]

draw[thick, ->] (-0.4,0) — (1.2,0) node[right] {Re};

draw[thick, ->] (0,-0.4) — (0,1.2) node[above] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (fact) at (1,0.15);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=south west] {$i$};

draw (1,1pt) — (1,-1pt);

draw (1pt,1) — (-1pt,1);

fill (fact) circle (0.5pt) node[anchor=south west] {$1+frac{ix}{n}$};

draw[dashed] (orig) — (one) — (fact) — (orig);

draw[decoration={brace,mirror,raise=5pt},decorate] (one) — node[right=6pt] {$x$} (fact);

end{tikzpicture}

Note that the magnitude of this number is very close to one, and that its angle is nearly zero. **It follows that in the compound multiplication, every factor gives rise to a small rotation, and a tiny increase in magnitude.** To make things more concrete, let’s select $ x=2 $ and see what happens for different values of $ n $. The following figures are approximations of $ e^{2i} $ for increasingly larger values of $ n $. Naturally, a higher $ n $ makes for a more accurate result.

begin{tikzpicture}

[scale=2.5]

draw[thick, ->] (-1.2,0) — (1.2,0) node[right] {Re};

draw[thick, <-] (0,1.2) — (0,-1.2) node[below] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (fact1) at (1,0.4);

coordinate (fact2) at (0.84,0.8);

coordinate (fact3) at (0.52,1.136);

coordinate (fact4) at (0.0656,1.344);

coordinate (fact5) at (-0.472,1.37024);

coordinate (eix) at (-0.416147,0.909297);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=north east] {$i$};

draw (1,1pt) — (1,-1pt);

draw (1pt,1) — (-1pt,1);

draw (-1,1pt) — (-1,-1pt);

draw (1pt,-1) — (-1pt,-1);

draw[dotted] (orig) circle (1);

draw[blue, thick] (one) arc (0:114.592:1) node[midway] {};

fill[blue] (eix) circle (0.5pt) node[anchor=south east] {$e^{ix}$};

fill[black!60!green, font=small] (fact1) circle (0.5pt) node[anchor=south west] {$1+frac{ix}{5}$};

fill[black!60!green, font=small] (fact2) circle (0.5pt) node[anchor=south west] {$(1+frac{ix}{5})^2$};

fill[black!60!green, font=small] (fact3) circle (0.5pt) node[anchor=south west] {$(1+frac{ix}{5})^3$};

fill[black!60!green, font=small] (fact4) circle (0.5pt) node[anchor=south] {$(1+frac{ix}{5})^4$};

fill[black!60!green, font=small] (fact5) circle (0.5pt) node[anchor=south east] {$(1+frac{ix}{5})^5$};

draw[black!60!green, dashed] (orig)–(one)–(fact1)–(fact2)–(fact3)–(fact4)–(fact5)–(orig);

draw[black!60!green, dashed] (orig)–(fact1);

draw[black!60!green, dashed] (orig)–(fact2);

draw[black!60!green, dashed] (orig)–(fact3);

draw[black!60!green, dashed] (orig)–(fact4);

draw[opacity=0] (-2.3,-1) — (1,-1); % invisible, serves as common margin

draw[opacity=0] (-1,-1.3) — (-1,1.6); % invisible, serves as common margin

node[right,font=largebfseries] at (current bounding box.west) {$n=5$:};

end{tikzpicture}

begin{tikzpicture}

[scale=2.5]

draw[thick, ->] (-1.2,0) — (1.2,0) node[right] {Re};

draw[thick, <-] (0,1.2) — (0,-1.2) node[below] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (fact1) at (1,0.1);

coordinate (fact2) at (0.99,0.2);

coordinate (fact3) at (0.97,0.299);

coordinate (fact4) at (0.9401,0.396);

coordinate (fact5) at (0.9005,0.49001);

coordinate (fact6) at (0.851499,0.58006);

coordinate (fact7) at (0.793493,0.66521);

coordinate (fact8) at (0.726972,0.744559);

coordinate (fact9) at (0.652516,0.817256);

coordinate (fact10) at (0.57079,0.882508);

coordinate (fact11) at (0.48254,0.939587);

coordinate (fact12) at (0.388581,0.987841);

coordinate (fact13) at (0.289797,1.0267);

coordinate (fact14) at (0.187127,1.05568);

coordinate (fact15) at (0.0815591,1.07439);

coordinate (fact16) at (-0.0258801,1.08255);

coordinate (fact17) at (-0.134135,1.07996);

coordinate (fact18) at (-0.242131,1.06655);

coordinate (fact19) at (-0.348785,1.04233);

coordinate (fact20) at (-0.453019,1.00745);

coordinate (eix) at (-0.416147,0.909297);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=north east] {$i$};

draw (1,1pt) — (1,-1pt);

draw (1pt,1) — (-1pt,1);

draw (-1,1pt) — (-1,-1pt);

draw (1pt,-1) — (-1pt,-1);

draw[dotted] (orig) circle (1);

draw[blue, thick] (one) arc (0:114.592:1) node[midway] {};

fill[blue] (eix) circle (0.5pt) node[anchor=north east] {$e^{ix}$};

fill[black!60!green, font=small] (fact1) circle (0.5pt) node[anchor=west] {$1+frac{ix}{20}$};

fill[black!60!green, font=small] (fact2) circle (0.5pt);

fill[black!60!green, font=small] (fact3) circle (0.5pt);

fill[black!60!green, font=small] (fact4) circle (0.5pt);

fill[black!60!green, font=small] (fact5) circle (0.5pt);

fill[black!60!green, font=small] (fact6) circle (0.5pt);

fill[black!60!green, font=small] (fact7) circle (0.5pt);

fill[black!60!green, font=small] (fact8) circle (0.5pt);

fill[black!60!green, font=small] (fact9) circle (0.5pt);

fill[black!60!green, font=small] (fact10) circle (0.5pt);

fill[black!60!green, font=small] (fact11) circle (0.5pt);

fill[black!60!green, font=small] (fact12) circle (0.5pt);

fill[black!60!green, font=small] (fact13) circle (0.5pt);

fill[black!60!green, font=small] (fact14) circle (0.5pt);

fill[black!60!green, font=small] (fact15) circle (0.5pt);

fill[black!60!green, font=small] (fact16) circle (0.5pt);

fill[black!60!green, font=small] (fact17) circle (0.5pt);

fill[black!60!green, font=small] (fact18) circle (0.5pt);

fill[black!60!green, font=small] (fact19) circle (0.5pt);

fill[black!60!green, font=small] (fact20) circle (0.5pt) node[anchor=south east] {$(1+frac{ix}{20})^{20}$};

draw[black!60!green, dashed] (orig)–(one)–(fact1)–(fact2)–(fact3)–(fact4)–(fact5)–(fact6)–(fact7)–(fact8)–(fact9)–(fact10)–(fact11)–(fact12)–(fact13)–(fact14)–(fact15)–(fact16)–(fact17)–(fact18)–(fact19)–(fact20)–(orig);

draw[black!60!green, dashed] (orig)–(fact1);

draw[black!60!green, dashed] (orig)–(fact2);

draw[black!60!green, dashed] (orig)–(fact3);

draw[black!60!green, dashed] (orig)–(fact4);

draw[black!60!green, dashed] (orig)–(fact5);

draw[black!60!green, dashed] (orig)–(fact6);

draw[black!60!green, dashed] (orig)–(fact7);

draw[black!60!green, dashed] (orig)–(fact8);

draw[black!60!green, dashed] (orig)–(fact9);

draw[black!60!green, dashed] (orig)–(fact10);

draw[black!60!green, dashed] (orig)–(fact11);

draw[black!60!green, dashed] (orig)–(fact12);

draw[black!60!green, dashed] (orig)–(fact13);

draw[black!60!green, dashed] (orig)–(fact14);

draw[black!60!green, dashed] (orig)–(fact15);

draw[black!60!green, dashed] (orig)–(fact16);

draw[black!60!green, dashed] (orig)–(fact17);

draw[black!60!green, dashed] (orig)–(fact18);

draw[black!60!green, dashed] (orig)–(fact19);

draw[opacity=0] (-2.3,-1) — (1,-1); % invisible, serves as common margin

draw[opacity=0] (-1,-1.3) — (-1,1.6); % invisible, serves as common margin

node[right,font=largebfseries] at (current bounding box.west) {$n=20$:};

end{tikzpicture}

begin{tikzpicture}

[scale=2.5]

draw[thick, ->] (-1.2,0) — (1.2,0) node[right] {Re};

draw[thick, <-] (0,1.2) — (0,-1.2) node[below] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (i) at (0,1);

coordinate (fact1) at (1,0.02);

coordinate (fact2) at (0.9996,0.04);

coordinate (fact3) at (0.9988,0.059992);

coordinate (fact4) at (0.9976,0.079968);

coordinate (fact5) at (0.996,0.09992);

coordinate (fact6) at (0.994,0.11984);

coordinate (fact7) at (0.99161,0.13972);

coordinate (fact8) at (0.98881,0.15955);

coordinate (fact9) at (0.98562,0.17933);

coordinate (fact10) at (0.98203,0.19904);

coordinate (fact11) at (0.97805,0.21868);

coordinate (fact12) at (0.97368,0.23824);

coordinate (fact13) at (0.96891,0.25772);

coordinate (fact14) at (0.96376,0.27709);

coordinate (fact15) at (0.95822,0.29637);

coordinate (fact16) at (0.95229,0.31553);

coordinate (fact17) at (0.94598,0.33458);

coordinate (fact18) at (0.93929,0.3535);

coordinate (fact19) at (0.93222,0.37229);

coordinate (fact20) at (0.92477,0.39093);

coordinate (fact21) at (0.91695,0.40942);

coordinate (fact22) at (0.90877,0.42776);

coordinate (fact23) at (0.90021,0.44594);

coordinate (fact24) at (0.89129,0.46394);

coordinate (fact25) at (0.88201,0.48177);

coordinate (fact26) at (0.87238,0.49941);

coordinate (fact27) at (0.86239,0.51686);

coordinate (fact28) at (0.85205,0.5341);

coordinate (fact29) at (0.84137,0.55115);

coordinate (fact30) at (0.83035,0.56797);

coordinate (fact31) at (0.81899,0.58458);

coordinate (fact32) at (0.8073,0.60096);

coordinate (fact33) at (0.79528,0.61711);

coordinate (fact34) at (0.78293,0.63301);

coordinate (fact35) at (0.77027,0.64867);

coordinate (fact36) at (0.7573,0.66408);

coordinate (fact37) at (0.74402,0.67922);

coordinate (fact38) at (0.73043,0.6941);

coordinate (fact39) at (0.71655,0.70871);

coordinate (fact40) at (0.70238,0.72304);

coordinate (fact41) at (0.68792,0.73709);

coordinate (fact42) at (0.67318,0.75085);

coordinate (fact43) at (0.65816,0.76431);

coordinate (fact44) at (0.64287,0.77747);

coordinate (fact45) at (0.62732,0.79033);

coordinate (fact46) at (0.61152,0.80288);

coordinate (fact47) at (0.59546,0.81511);

coordinate (fact48) at (0.57916,0.82702);

coordinate (fact49) at (0.56262,0.8386);

coordinate (fact50) at (0.54584,0.84985);

coordinate (fact51) at (0.52885,0.86077);

coordinate (fact52) at (0.51163,0.87135);

coordinate (fact53) at (0.49421,0.88158);

coordinate (fact54) at (0.47657,0.89146);

coordinate (fact55) at (0.45874,0.901);

coordinate (fact56) at (0.44072,0.91017);

coordinate (fact57) at (0.42252,0.91898);

coordinate (fact58) at (0.40414,0.92744);

coordinate (fact59) at (0.38559,0.93552);

coordinate (fact60) at (0.36688,0.94323);

coordinate (fact61) at (0.34802,0.95057);

coordinate (fact62) at (0.32901,0.95753);

coordinate (fact63) at (0.30986,0.96411);

coordinate (fact64) at (0.29057,0.97031);

coordinate (fact65) at (0.27117,0.97612);

coordinate (fact66) at (0.25165,0.98154);

coordinate (fact67) at (0.23201,0.98657);

coordinate (fact68) at (0.21228,0.99121);

coordinate (fact69) at (0.19246,0.99546);

coordinate (fact70) at (0.17255,0.99931);

coordinate (fact71) at (0.15256,1.0028);

coordinate (fact72) at (0.13251,1.0058);

coordinate (fact73) at (0.11239,1.0085);

coordinate (fact74) at (0.092223,1.0107);

coordinate (fact75) at (0.072009,1.0126);

coordinate (fact76) at (0.051757,1.014);

coordinate (fact77) at (0.031478,1.015);

coordinate (fact78) at (0.011177,1.0157);

coordinate (fact79) at (-0.0091361,1.0159);

coordinate (fact80) at (-0.029454,1.0157);

coordinate (fact81) at (-0.049768,1.0151);

coordinate (fact82) at (-0.07007,1.0141);

coordinate (fact83) at (-0.090352,1.0127);

coordinate (fact84) at (-0.11061,1.0109);

coordinate (fact85) at (-0.13082,1.0087);

coordinate (fact86) at (-0.151,1.0061);

coordinate (fact87) at (-0.17112,1.0031);

coordinate (fact88) at (-0.19118,0.99963);

coordinate (fact89) at (-0.21117,0.99581);

coordinate (fact90) at (-0.23109,0.99159);

coordinate (fact91) at (-0.25092,0.98697);

coordinate (fact92) at (-0.27066,0.98195);

coordinate (fact93) at (-0.2903,0.97653);

coordinate (fact94) at (-0.30983,0.97073);

coordinate (fact95) at (-0.32925,0.96453);

coordinate (fact96) at (-0.34854,0.95795);

coordinate (fact97) at (-0.36769,0.95098);

coordinate (fact98) at (-0.38671,0.94362);

coordinate (fact99) at (-0.40559,0.93589);

coordinate (fact100) at (-0.4243,0.92778);

coordinate (eix) at (-0.416147,0.909297);

draw (orig) node[anchor=north east] {$0$};

draw (one) node[anchor=north west] {$1$};

draw (i) node[anchor=north east] {$i$};

draw (1,1pt) — (1,-1pt);

draw (1pt,1) — (-1pt,1);

draw (-1,1pt) — (-1,-1pt);

draw (1pt,-1) — (-1pt,-1);

draw[dotted] (orig) circle (1);

draw[blue, thick] (one) arc (0:114.592:1) node[midway] {};

fill[blue] (eix) circle (0.5pt) node[anchor=north east] {$e^{ix}$};

fill[black!60!green, font=small] (fact1) circle (0.5pt);

fill[black!60!green, font=small] (fact2) circle (0.5pt);

fill[black!60!green, font=small] (fact3) circle (0.5pt);

fill[black!60!green, font=small] (fact4) circle (0.5pt);

fill[black!60!green, font=small] (fact5) circle (0.5pt);

fill[black!60!green, font=small] (fact6) circle (0.5pt);

fill[black!60!green, font=small] (fact7) circle (0.5pt);

fill[black!60!green, font=small] (fact8) circle (0.5pt);

fill[black!60!green, font=small] (fact9) circle (0.5pt);

fill[black!60!green, font=small] (fact10) circle (0.5pt);

fill[black!60!green, font=small] (fact11) circle (0.5pt);

fill[black!60!green, font=small] (fact12) circle (0.5pt);

fill[black!60!green, font=small] (fact13) circle (0.5pt);

fill[black!60!green, font=small] (fact14) circle (0.5pt);

fill[black!60!green, font=small] (fact15) circle (0.5pt);

fill[black!60!green, font=small] (fact16) circle (0.5pt);

fill[black!60!green, font=small] (fact17) circle (0.5pt);

fill[black!60!green, font=small] (fact18) circle (0.5pt);

fill[black!60!green, font=small] (fact19) circle (0.5pt);

fill[black!60!green, font=small] (fact20) circle (0.5pt);

fill[black!60!green, font=small] (fact21) circle (0.5pt);

fill[black!60!green, font=small] (fact22) circle (0.5pt);

fill[black!60!green, font=small] (fact23) circle (0.5pt);

fill[black!60!green, font=small] (fact24) circle (0.5pt);

fill[black!60!green, font=small] (fact25) circle (0.5pt);

fill[black!60!green, font=small] (fact26) circle (0.5pt);

fill[black!60!green, font=small] (fact27) circle (0.5pt);

fill[black!60!green, font=small] (fact28) circle (0.5pt);

fill[black!60!green, font=small] (fact29) circle (0.5pt);

fill[black!60!green, font=small] (fact30) circle (0.5pt);

fill[black!60!green, font=small] (fact31) circle (0.5pt);

fill[black!60!green, font=small] (fact32) circle (0.5pt);

fill[black!60!green, font=small] (fact33) circle (0.5pt);

fill[black!60!green, font=small] (fact34) circle (0.5pt);

fill[black!60!green, font=small] (fact35) circle (0.5pt);

fill[black!60!green, font=small] (fact36) circle (0.5pt);

fill[black!60!green, font=small] (fact37) circle (0.5pt);

fill[black!60!green, font=small] (fact38) circle (0.5pt);

fill[black!60!green, font=small] (fact39) circle (0.5pt);

fill[black!60!green, font=small] (fact40) circle (0.5pt);

fill[black!60!green, font=small] (fact41) circle (0.5pt);

fill[black!60!green, font=small] (fact42) circle (0.5pt);

fill[black!60!green, font=small] (fact43) circle (0.5pt);

fill[black!60!green, font=small] (fact44) circle (0.5pt);

fill[black!60!green, font=small] (fact45) circle (0.5pt);

fill[black!60!green, font=small] (fact46) circle (0.5pt);

fill[black!60!green, font=small] (fact47) circle (0.5pt);

fill[black!60!green, font=small] (fact48) circle (0.5pt);

fill[black!60!green, font=small] (fact49) circle (0.5pt);

fill[black!60!green, font=small] (fact50) circle (0.5pt);

fill[black!60!green, font=small] (fact51) circle (0.5pt);

fill[black!60!green, font=small] (fact52) circle (0.5pt);

fill[black!60!green, font=small] (fact53) circle (0.5pt);

fill[black!60!green, font=small] (fact54) circle (0.5pt);

fill[black!60!green, font=small] (fact55) circle (0.5pt);

fill[black!60!green, font=small] (fact56) circle (0.5pt);

fill[black!60!green, font=small] (fact57) circle (0.5pt);

fill[black!60!green, font=small] (fact58) circle (0.5pt);

fill[black!60!green, font=small] (fact59) circle (0.5pt);

fill[black!60!green, font=small] (fact60) circle (0.5pt);

fill[black!60!green, font=small] (fact61) circle (0.5pt);

fill[black!60!green, font=small] (fact62) circle (0.5pt);

fill[black!60!green, font=small] (fact63) circle (0.5pt);

fill[black!60!green, font=small] (fact64) circle (0.5pt);

fill[black!60!green, font=small] (fact65) circle (0.5pt);

fill[black!60!green, font=small] (fact66) circle (0.5pt);

fill[black!60!green, font=small] (fact67) circle (0.5pt);

fill[black!60!green, font=small] (fact68) circle (0.5pt);

fill[black!60!green, font=small] (fact69) circle (0.5pt);

fill[black!60!green, font=small] (fact70) circle (0.5pt);

fill[black!60!green, font=small] (fact71) circle (0.5pt);

fill[black!60!green, font=small] (fact72) circle (0.5pt);

fill[black!60!green, font=small] (fact73) circle (0.5pt);

fill[black!60!green, font=small] (fact74) circle (0.5pt);

fill[black!60!green, font=small] (fact75) circle (0.5pt);

fill[black!60!green, font=small] (fact76) circle (0.5pt);

fill[black!60!green, font=small] (fact77) circle (0.5pt);

fill[black!60!green, font=small] (fact78) circle (0.5pt);

fill[black!60!green, font=small] (fact79) circle (0.5pt);

fill[black!60!green, font=small] (fact80) circle (0.5pt);

fill[black!60!green, font=small] (fact81) circle (0.5pt);

fill[black!60!green, font=small] (fact82) circle (0.5pt);

fill[black!60!green, font=small] (fact83) circle (0.5pt);

fill[black!60!green, font=small] (fact84) circle (0.5pt);

fill[black!60!green, font=small] (fact85) circle (0.5pt);

fill[black!60!green, font=small] (fact86) circle (0.5pt);

fill[black!60!green, font=small] (fact87) circle (0.5pt);

fill[black!60!green, font=small] (fact88) circle (0.5pt);

fill[black!60!green, font=small] (fact89) circle (0.5pt);

fill[black!60!green, font=small] (fact90) circle (0.5pt);

fill[black!60!green, font=small] (fact91) circle (0.5pt);

fill[black!60!green, font=small] (fact92) circle (0.5pt);

fill[black!60!green, font=small] (fact93) circle (0.5pt);

fill[black!60!green, font=small] (fact94) circle (0.5pt);

fill[black!60!green, font=small] (fact95) circle (0.5pt);

fill[black!60!green, font=small] (fact96) circle (0.5pt);

fill[black!60!green, font=small] (fact97) circle (0.5pt);

fill[black!60!green, font=small] (fact98) circle (0.5pt);

fill[black!60!green, font=small] (fact99) circle (0.5pt);

fill[black!60!green, font=small] (fact100) circle (0.5pt) node[anchor=south east] {$(1+frac{ix}{100})^{100}$};

draw[black!60!green, dashed] (orig)–(one)–(fact1)–(fact2)–(fact3)–(fact4)–(fact5)–(fact6)–(fact7)–(fact8)–(fact9)–(fact10)–(fact11)–(fact12)–(fact13)–(fact14)–(fact15)–(fact16)–(fact17)–(fact18)–(fact19)–(fact20)–(fact21)–(fact22)–(fact23)–(fact24)–(fact25)–(fact26)–(fact27)–(fact28)–(fact29)–(fact30)–(fact31)–(fact32)–(fact33)–(fact34)–(fact35)–(fact36)–(fact37)–(fact38)–(fact39)–(fact40)–(fact41)–(fact42)–(fact43)–(fact44)–(fact45)–(fact46)–(fact47)–(fact48)–(fact49)–(fact50)–(fact51)–(fact52)–(fact53)–(fact54)–(fact55)–(fact56)–(fact57)–(fact58)–(fact59)–(fact60)–(fact61)–(fact62)–(fact63)–(fact64)–(fact65)–(fact66)–(fact67)–(fact68)–(fact69)–(fact70)–(fact71)–(fact72)–(fact73)–(fact74)–(fact75)–(fact76)–(fact77)–(fact78)–(fact79)–(fact80)–(fact81)–(fact82)–(fact83)–(fact84)–(fact85)–(fact86)–(fact87)–(fact88)–(fact89)–(fact90)–(fact91)–(fact92)–(fact93)–(fact94)–(fact95)–(fact96)–(fact97)–(fact98)–(fact99)–(fact100)–(orig);

draw[opacity=0] (-2.3,-1) — (1,-1); % invisible, serves as common margin

draw[opacity=0] (-1,-1.3) — (-1,1.6); % invisible, serves as common margin

node[right,font=largebfseries] at (current bounding box.west) {$n=100$:};

end{tikzpicture}

Keeping in mind that complex multiplication works by successively scaling and rotating as explained above, it appears that this sequence of infinitesimal rotations eventually converges to what we already know as $ e^{2i} $: a journey along the unit circle by $ 2 $ radians. The end result also has a magnitude of exactly one. Crazy, isn’t it? The crucial insight here was to write $ e $ as the limit of an infinite product as described above, ignoring its decimal representation. (You could say that $ e^1 $ “just so happens” to be $ 2.71828… $.) I hope you have learnt something at this point!

### Bringing magnitude into the story

The fact that $ |e^{ix}|=1 $ (for real $ x $) is not magic, but easily follows by geometrical insight into the limit: the larger $n$, the more every factor contributes to a tiny rotation rather than the tiny increase in magnitude, the latter eventually becoming ever more negligible compared to the former. On the other hand, we reach many more values with the natural exponential function when any complex argument is allowed.

begin{align*}

e^{z} &= e^{mathrm{Re}(z)} (cos{mathrm{Im}(z)}+isin{mathrm{Im}(z)}) \

&= lim_{n to infty} (1+frac{z}{n})^n

end{align*}

The whole reasoning presented earlier applies here as well: the individual factors $ 1 + z/n $ have a real part very close to one, and an imaginary part very close to zero. The same ‘triangle reasoning’ allows us to understand the limiting process. As an example, let’s plot the approximation for $z=1-i$ and $n=5$:

begin{tikzpicture}

[scale=2.5]

draw[step=0.5, gray!40!white] (0,-3) grid (3,0);

draw[step=1, gray] (0,-3) grid (3,0);

draw[thick, ->] (-0.4,0) — (3.2,0) node[right] {Re};

draw[thick, ->] (0,-3.2) — (0,0.4) node[above] {Im};

coordinate (orig) at (0,0);

coordinate (one) at (1,0);

coordinate (fact1) at (1.2,-0.2);

coordinate (fact2) at (1.4,-0.48);

coordinate (fact3) at (1.584,-0.856);

coordinate (fact4) at (1.7296,-1.344);

coordinate (fact5) at (1.8067,-1.9587);

coordinate (ez) at (1.4687,-2.2874);

draw (orig) node[anchor=south east] {$0$};

draw (one) node[anchor=south] {$1$};

draw (0,-1) node[anchor=east] {$-i$};

% draw (1,1pt) — (1,-1pt);

% draw (2,1pt) — (2,-1pt);

% draw (1pt,-1) — (-1pt,-1);

% draw (1pt,-2) — (-1pt,-2);

% draw (1pt,-3) — (-1pt,-3);

fill[blue] (ez) circle (0.5pt) node[anchor=south east] {$e^z$};

fill[black!60!green, font=small] (fact1) circle (0.5pt) node[anchor=west] {$1+frac{z}{5}$};

fill[black!60!green, font=small] (fact2) circle (0.5pt) node[anchor=west] {$(1+frac{z}{5})^2$};

fill[black!60!green, font=small] (fact3) circle (0.5pt) node[anchor=west] {$(1+frac{z}{5})^3$};

fill[black!60!green, font=small] (fact4) circle (0.5pt) node[anchor=west] {$(1+frac{z}{5})^4$};

fill[black!60!green, font=small] (fact5) circle (0.5pt) node[anchor=west] {$(1+frac{z}{5})^5$};

draw[black!60!green, dashed] (orig)–(one)–(fact1)–(fact2)–(fact3)–(fact4)–(fact5)–(orig);

draw[black!60!green, dashed] (orig)–(fact1);

draw[black!60!green, dashed] (orig)–(fact2);

draw[black!60!green, dashed] (orig)–(fact3);

draw[black!60!green, dashed] (orig)–(fact4);

end{tikzpicture}

### A special case: Euler’s identity

Few equations contain so many fundamental mathematical constants yet are so short as the following:

$$ e^{ipi} + 1 = 0 $$

This is simply the result of substituting $ z=ipi $ in the previous equation: more on that below.

### Try it out yourself!

In Grapher Pro for Android, you can plot the following equation to view the ‘construction’ of $ e^{ipi} $ with a number of iterations $ n $:

z(t) = (1+ipi/n)^ceil(nt)

where $ t $ runs from $ 0 $ to $ 1 $. A slider will appear for $ n $, whose range you can then set to, for example, $ 1 $ to $ 20 $ step $ 1 $. See the screenshot below for a preview.

Enjoy!

*P.S.: This article was partially inspired by 3Blue1Brown’s excellent video on Euler’s formula in the context of group theory. I highly recommend checking it out if you want to learn more.*

Very interesting, thx. I would however write down how you get to the expression for e^{ix} starting from the expression of e=lim(.).

LikeLike

@tpannier Thanks for your feedback! I must admit I had to grab some paper again upon rereading to verify the formula so that’s a sign I should indeed include a derivation 😉 Luckily readily available plugins exist for footnotes in WordPress 🙂

LikeLike