This guide already assumes you have a basic understanding of what a complex number is!
We already know that there are two parts to a complex number,
the "Real" part and the "Imaginary" part. On
CASIO
Calculators, this is denoted by the commands
ReP
and ImP
respectively. This
shorthand will be used in this guide, as it is a nice shorthand.
Let's take the following Complex Numbers:
$z_1 = 1 + 1i$
$z_2 = 1 + 3i$
$z_3 = -3 + 2i$
$z_4 = -3 + -2i$
$z_5 = -2i$
But, what is the easiest way to represent this data?
What if I were to rewrite $z_5$ as:
$z_5 = 0 + -2i$
Can you see, how every single complex number has two data
points? The ReP
and the ImP
!
And, what is another way of storing 2-dimensional data?
A coordinate! i.e: $(3,4)$, $(-1,4)$, $(1.31, \sqrt{2})$
Or vectors: $\begin{bmatrix}1 \\ 2\end{bmatrix}$, $\begin{bmatrix}-14 \\ 3\end{bmatrix}$, $\begin{bmatrix}-3 \\ 6\end{bmatrix}$
Or even in $i j$ notation. (NOTE: I am hesitant to put this example in, because some people may confuse the term $i$ with the imaginary part $i$. I have left this here anyway): $\vec{x}=i-j$ WARNING: IN THIS NOTATION $i$ IS THE X-AXIS, THIS IS THE OPPOSITE FOR ARGAND DIAGRAMS!
But, how do we go about drawing these?
A quick definition:
Cartesian coordinates are coordinates in the form $(x,y)$
Cartesian equations are equations in the form $y=mx+c$ or $x^2+y^2=r^2$
Firstly:
The ReP
corresponds to the x-axis
in a
cartesian coordinate.
The ImP
corresponds to the y-axis
in a
cartesian coordinate.
labels44 = text('Im', (-0.5, 3.5)) + text('Re', (3.5, -0.5))
labels44.set_axes_range(-4,4,-4,4)
labels44.show(gridlines=True, title='Argand Diagram')
Now, we can see the different ways that we can represent complex numbers on a graph!
The first way is to convert the complex number into a cartesian coordinate!
This is done in the following way:
Let $z$ be any complex number, as a cartesian coordinate this would be $(\text{ReP}(z), \text{ImP}(z))$.
This creates a new general way of writing complex numbers:
$z = x + iy$
This form is extremely important later on, so you had better get used to it!
A common way for an exam question to tell you to draw as a coordinate:
A complex number $z$ is represented by the point $P$ in the Argand Diagram
coordinate_z1 = circle((1, 1), 0.05) + text("$z_1 = 1 + 1i$", (1.1, 1.2), fontsize=13)
coordinate_z2 = circle((1, 3), 0.05, rgbcolor=(1/2, 1/8, 3/4)) + text(
"$z_2 = 1 + 3i$", (1.1, 3.3), rgbcolor=(1/2, 1/8, 3/4), fontsize=13
)
coordinate_z3 = circle((-3, 2), 0.05, rgbcolor=(1/2, 1/2, 3/4)) + text(
"$z_3 = -3 + 2i$", (-3.1, 2.2), rgbcolor=(1/2, 1/2, 3/4), fontsize=13
)
coordinate_z4 = circle((-3, -2), 0.05, rgbcolor=(1, 0, 0)) + text(
"$z_4 = -3 + -2i$", (-3.1, -2.3), rgbcolor=(1, 0, 0), fontsize=13
)
coordinate_z5 = circle((0, -2), 0.05, rgbcolor=(1/2, 0, 1)) + text(
"$z_5 = -2i$", (0.9, -2.3), rgbcolor=(1/2, 0, 1), fontsize=13
)
zAllCoords = (
coordinate_z1
+ coordinate_z2
+ coordinate_z3
+ coordinate_z4
+ coordinate_z5
+ labels44
)
zAllCoords.set_axes_range(-4, 4, -4, 4)
zAllCoords.show(gridlines=True, title="Complex Number Coordinates", aspect_ratio=1)
The other way of representing a Complex Number is by drawing it as a vector!
This can be done using the form:
$\begin{bmatrix}\text{ReP}(z)\\ \text{ImP}(z)\end{bmatrix}$
it is actually rather useful to show complex numbers in complex form, because they follow a lot of the same rules as vectors!
arrow_z1 = arrow2d((0, 0), (1, 1)) + text("$z_1 = 1 + 1i$", (1.1, 1.1), fontsize=13)
arrow_z2 = arrow2d((0, 0), (1, 3), rgbcolor=(1/2, 1/8, 3/4)) + text(
"$z_2 = 1 + 3i$", (1.1, 3.1), rgbcolor=(1/2, 1/8, 3/4), fontsize=13
)
arrow_z3 = arrow2d((0, 0), (-3, 2), rgbcolor=(1/2, 1/2, 3/4)) + text(
"$z_3 = -3 + 2i$", (-3.1, 2.2), rgbcolor=(1/2, 1/2, 3/4), fontsize=13
)
arrow_z4 = arrow2d((0, 0), (-3, -2), rgbcolor=(1, 0, 0)) + text(
"$z_4 = -3 + -2i$", (-3.1, -2.2), rgbcolor=(1, 0, 0), fontsize=13
)
arrow_z5 = arrow2d((0, 0), (0, -2), rgbcolor=(1/2, 0, 1)) + text(
"$z_5 = -2i$", (0.7, -2.1), rgbcolor=(1/2, 0, 1), fontsize=13
)
zAllArrow = arrow_z1 + arrow_z2 + arrow_z3 + arrow_z4 + arrow_z5 + labels44
zAllArrow.set_axes_range(-4, 4, -4, 4)
zAllArrow.show(gridlines=True, title="Complex Numbers in Vector Form")
So, you may be wondering, what is so good about representing this as a vector?
Well, what if I wanted to add two complex numbers?
Let's create two new complex numbers:
$z_\alpha = 1 + 2i$
$z_\beta = -2 + 1i$
And we then plot these as vectors:
arrow_zA = arrow2d((0, 0), (1, 2)) + text(
"$z_\\alpha = 1 + 2i$", (1.1, 2.1), fontsize=13
)
arrow_zB = arrow2d((0, 0), (-2, 1), rgbcolor=(1/2, 1/8, 3/4)) + text(
"$z_\\beta = -2 + 1i$", (-2.1, 1.3), rgbcolor=(1/2, 1/8, 3/4), fontsize=13
)
zAlphaBeta = arrow_zA + arrow_zB + labels44
zAlphaBeta.set_axes_range(-4, 4, -4, 4)
zAlphaBeta.show(gridlines=True, title="Complex Numbers in Vector Form")
Adding these two complex numbers gives:
$z_\alpha + z_\beta = (1+2i) + (-2+1i) = (-1+3i)$
Let's define this as $z_\lambda$.
arrow_zL = arrow2d((0, 0), (-1, 3), rgbcolor=(0, 1, 0), linestyle="dashed") + text(
"$z_\\lambda = -1 + 3i$", (-1.5, 3.2), rgbcolor=(0, 0.6, 0), fontsize=13
)
zAndLambda = zAlphaBeta + arrow_zL
zAndLambda.set_axes_range(-4, 4, -4, 4)
zAndLambda.show(gridlines=True, title="Complex Number Addition")
Can you see how this is just simple vector addition?
No?
Let's show this graphically!
zBpluszA = (
arrow2d((0, 0), (-2, 1), rgbcolor=(1/2, 1/8, 3/4))
+ arrow2d((-2, 1), (-1, 3))
+ arrow_zL
+ labels44
)
zBpluszA.set_axes_range(-4, 4, -4, 4)
show(zBpluszA, gridlines=True, aspect_ratio=1)
zApluszB = (
arrow2d((0, 0), (1, 2))
+ arrow2d((1, 2), (-1, 3), rgbcolor=(1/2, 1/8, 3/4))
+ arrow_zL
+ labels44
)
zApluszB.set_axes_range(-4, 4, -4, 4)
show(zApluszB, gridlines=True, aspect_ratio=1)
As you can hopefully see, it doesn't matter which route we follow, adding two complex numbers will result in the same end destination. Therefore proving: $z_\alpha + z_\beta = z_\beta + z_\alpha$
The Conjugate of a complex number is $\text{the imaginary number} \times -1$. This is represented by the symbol $\overline{z}$.
For example:
$z_1 = 1 + 1i$ : $\overline{z_1} = 1 - 1i$
$z_2 = 1 + 3i$ : $\overline{z_2} = 1 - 3i$
$z_3 = -3 + 2i$ : $\overline{z_3} = -3 - 2i$
$z_4 = -3 - 2i$ : $\overline{z_4} = -3 + 2i$
$z_5 = 0 - 2i$ : $\overline{z_5} = 0 + 2i$
Let's plot $z_{1 \rightarrow 4}$ and $\overline{z_{1 \rightarrow 4}}$!
vC_text = lambda num, x, y, rgb: arrow2d((0, 0), (x, y), rgbcolor=rgb) + text(
"$\\overline{z_%d} = %d + %di$" % (num, x, y),
(x + 0.1 if x > 0 else x - 0.1, y + 0.1 if y > 0 else y - 0.1),
rgbcolor=rgb,
fontsize=13,
)
arrowsConj = [
[
arrow_z1 + vC_text(1, 1, -1, (0, 0, 1)),
arrow_z2 + vC_text(2, 1, -3, (1/2, 1/8, 3/4)),
],
[
arrow_z3 + vC_text(3, -3, -2, (1/2, 1/2, 3/4)),
arrow_z4 + vC_text(4, -3, 2, (1, 0, 0)),
],
]
for row in arrowsConj:
row[0].set_axes_range(-4, 4, -4, 4)
row[1].set_axes_range(-4, 4, -4, 4)
g = graphics_array(arrowsConj)
show(g, aspect_ratio=1, figsize=[10, 10])
Can you see what happened there?
That's right, the conjugate of a complex number, is a reflection in the x-axis!
Therefore, given we put $z_5$ into a vector $\vec{c}$:
$\vec{c} = \begin{bmatrix} 0 \\ -2 \end{bmatrix}$
$\begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}\begin{bmatrix} 0 \\ -2 \end{bmatrix} =\begin{bmatrix} 0 \\ 2 \end{bmatrix} $
Therefore the conjugate of $z_5$ ($\overline{z_5}$) is $2i$.
Now let's have a look at the next concept in Argand Diagrams.
The Modulus Function $\left\lvert z \right\rvert$ is quite simply a fancy way to write the pythagorean theorem. Let's have a look at $z_2$ (and $\left\lvert z_2 \right\rvert$ respectively)
It is exactly the same as vector mathematics!
modulusGraph = (
arrow_z2 + text('$\\sqrt{3^2+1^2}$', (0.41,1.5), rotation=arctan(3/1)*(180/pi)) +
arrow2d((1,0), (1,3)) + text('3', (1.1, 1.5)) +
arrow2d((0,0), (1,0)) + text('1', (0.5, 0.1))
)
modulusGraph.show(aspect_ratio=1, ticks=[[0,1], None])
As you can see, this is simply pythagoras completed on the right-angled triangle of height 3, width 1.
Knowing this, we can do this calculation for any complex number, without needing to use a graph.
$\left\lvert z_1 \right\rvert = \sqrt{1^2+1^2}=\sqrt{2}$
$\left\lvert z_2 \right\rvert = \sqrt{1^2+3^2}=\sqrt{10}$
$\left\lvert z_3 \right\rvert = \sqrt{(-3)^2+2^2}=\sqrt{13}$
$\left\lvert z_4 \right\rvert = \sqrt{(-3)^2+(-2)^2}=\sqrt{13}$
$\left\lvert z_5 \right\rvert = \sqrt{(0)^2+(-2)^2}=2$
It is important to notice that both $\left\lvert z_3 \right\rvert$ and $\left\lvert z_4 \right\rvert$ are equal, even though their complex numbers are different!
The argument of a complex number, often written as $\text{Arg}$ or $\text{arg}$.
This can be understood as the angle of the vector. Let's take the example of our previous $z_2$ complex!
And our question is:
What is $\text{Arg}(z_2)$?
argandGraph = modulusGraph + arc(
(0, 0), r1=0.3, r2=0.3, angle=0, sector=(0, arctan(3 / 1))
)
(argandGraph + text("?", (0.2, 0.1))).show(aspect_ratio=1, ticks=[[0, 1], None])
Well, if you have a look at it, it's just a right angled triangle.
After seeing this, you may've been tempted to do this on your calculator:
$\tan \theta = {3 \over 1}$
$tan^{-1}({3 \over 1}) = \theta$
$71.565... = \theta$
But, you'd be very slightly wrong. The actual answer is:
$1.249... = \theta$
At this point, you've probably started to cry tears of pain. "WHY IS THE NUMBER SO SMALL?" I hear you cry.
Welcome to the world of radians!
You are probably used to the following facts:
$1 \ \text{circle} = 360^o$
$1 \ \text{square} = 360^o$
$1 \ \text{triangle} = 180^o$
The "conversion rate" for radians is the following:
$1 \ \text{circle} = \pi^c$
$1 \ \text{square} = \pi^c$
$1 \ \text{triangle} = {\pi \over 2}^c$
The symbol we use is $^{c}$, don't ask me why we don't use $^{r}$. NOTE: CASIO calculators use $^{r}$.
The most important conversion rate here is $\pi^{c} = 180^{o}$. You will most likely use this conversion every time you draw an Argand Diagram, so try and memorise it!
Now for something slightly confusing, we need to look at the way angles are measured on an argand diagram!
arc((0, 0), r1=0.3, r2=0.3, angle=0)
t_arc = lambda x, y: arc(
(0, 0),
r1=0.3,
r2=0.3,
angle=0,
sector=(
0,
-arccos(x / (sqrt(x ^ 2 + y ^ 2)))
if y < 0
else arccos(x / (sqrt(x ^ 2 + y ^ 2))),
),
)
t_text = lambda x, y: text(
round(-arccos(x / (sqrt(x ^ 2 + y ^ 2))).numerical_approx(), 3)
if y < 0
else round(arccos(x / (sqrt(x ^ 2 + y ^ 2))).numerical_approx(), 3),
(1, -0.7 if y < 0 else 0.3),
)
arrows = [
[arrow_z1 + t_arc(1, 1) + t_text(1, 1), arrow_z2 + t_arc(1, 3) + t_text(1, 3)],
[
arrow_z3 + t_arc(-3, 2) + t_text(-3, 2),
arrow_z4 + t_arc(-3, -2) + t_text(-3, -2),
],
[arrow_z5 + t_arc(0, -2) + t_text(0, -2), arrow_zA + t_arc(1, 2) + t_text(1, 2)],
]
for row in arrows:
row[0].set_axes_range(-4, 4, -4, 4)
row[1].set_axes_range(-4, 4, -4, 4)
zAllAngles = zAllArrow
g = graphics_array(arrows)
show(g, aspect_ratio=1, figsize=[10, 10])
Can you see how the angle is always measured from the positive x-axis?
And when the y-axis is negative, the angle is negative. This is extremely important to understand.
Lots of teachers teach complicated and long-winded methods to work out the argument, but I never used these!
The Dot Product between the two vectors $a$ and $b$, can be defined as so:
$\cos \theta = {{({x_a \ \times \ x_b}) \ \times \ ({y_a \ \times \ y_b})} \over {\left\lvert a \right\rvert \ \times \ \left\lvert b \right\rvert}} $
This formula can be used to find the angle between the vector $a$ and $b$.
Let's rearrange this for $\theta$, where $\theta$ is the angle:
$\theta = \cos^{-1} \left ({{({x_a \ \times \ x_b}) \ \times \ ({y_a \ \times \ y_b})} \over {\left\lvert a \right\rvert \ \times \ \left\lvert b \right\rvert}} \right)$
Let's try this with some actual numbers!
$a = \begin{bmatrix} 1 \\ 2 \end{bmatrix}$, $b = \begin{bmatrix} -3 \\ 3 \end{bmatrix}$
Let's graph these two vectors!
vectA = arrow2d((0,0), (1,2), rgbcolor=(1,0,0)) + text('a', (1,2.1),rgbcolor=(1,0,0))
vectB = arrow2d((0,0), (-3,3), rgbcolor=(0,0,1)) + text('b', (-3,3.1))
vectArc = arc((0,0), r1=1, r2=1, sector=(arctan(2/1), (3/4)* pi))
vectAll = vectA + vectB + vectArc
vectAll.set_axes_range(-4,4,0,4)
vectAll.show(aspect_ratio=2, gridlines=True)
Now, we know that $\left\lvert a \right\rvert = \sqrt{x_a^2+y_a^2}$ and $\left\lvert b \right\rvert = \sqrt{x_b^2+y_b^2}$ (REMEMBER: it's just pythagoras)
So let's substitute that:
$\theta = \cos^{-1} \left ({{({x_a \ \times \ x_b}) \ \times \ ({y_a \ \times \ y_b})} \over {\sqrt{x_a^2+y_a^2} \ \times \ \sqrt{x_b^2+y_b^2}}} \right)$
Now let's substitute the numbers we have from the vertex:
$\theta = \cos^{-1} \left ({{({1 \ \times \ -3}) \ \times \ ({2 \ \times \ 3})} \over {\sqrt{1^2+2^2} \ \times \ \sqrt{-3^2+2^2}}} \right)$
$\theta = \cos^{-1} \left ({{3} \over {10}} \right )$
$\theta \approx 72.542...^o \approx 1.266...^c$ (REMEMBER: $\approx$ is shorthand for approximately!
"But James!!! This is longer and harder than what my teacher has taught me???" I hear you again!
Do you remember how I said earlier that all the calculations are done based off the angle between the positive x-axis, and the complex?
Well, what vector represents the x-axis?
$\vec{x} = \begin{bmatrix} 1 \\ 0 \end{bmatrix}$
Now let's let $a=\vec{x}$
$\theta = \cos^{-1} \left ({{({1 \ \times \ x_b}) \ \times \ ({0 \ \times \ y_b})} \over {\sqrt{1^2+0^2} \ \times \ \sqrt{x_b^2+y_b^2}}} \right)$
We can clearly simplify this formula!
$\theta = \cos^{-1} \left ({{x_b} \over {\sqrt{x_b^2+y_b^2}}} \right)$
Voila! James' fancy formula!
For example, the angle for $z_3$ was found using the following formula:
$\theta = \cos^{-1} \left ({{-3} \over {\sqrt{-3^2+2^2}}} \right)$
$\theta = \cos^{-1} \left ({-3 \sqrt{13}} \over {13} \right)$
$\theta = 2.55359...^c$
Don't forget to add a negative sign, if it goes below the y-axis!!