Lately I’ve been spending a lot of time thinking about my career and where it’s going. I don’t want to give the impression that I have never thought about my career before, but now the thoughts are becoming constant.
Reference: http://themodernengineer.blogspot.com/2010/04/mathematics-ohms-law-in-matrix-form.html (Old blog of mine back in the day; not maintained)
Complex Numbers are an interesting mathematical concept. They bring to the table a means to solve equations that are not normally possible to solve using real numbers. For instance,
The -25 causes an issue here. How do you solve this equation? Well the first thing you would do is take the square root of both sides.
The left side of the equation is easy. Just remove the exponential 2 component. But what about the right? We should probably break up the -25 into a product.
Due to the multiplicative property of square roots, we can separate them into two parts. Now we know the square root of 25 is 5.
Like any basic algebra, we move the 16 to the other side and...
Voila! We have a solution. So how else can we simplify this equation? We have that pesky square of -1 to deal with. By the basic rules of the square root, two identical numbers multiplied together will be positive. Always. Since this is a negative number, no two identical numbers can possibly multiply together to form -1.
This is where complex numbers come in!
Complex numbers introduce a new symbology. We add the symbol
(or like in electrical engineering
). These symbols are simply equivalent to
. By replacing all of these in an equation, we will get this new "number set."
And now we have a new number system that we can perform algebra on. Complex numbers have addition, subtraction, multiplication, division, exponentiation, etc. as a part of its operator set. In fact, you can think of Real Numbers as a subset of Complex Numbers. Although, there are whole libraries on the various ways to perform complex number mathematics using standard formulas, I'm here to present an alternative; Matrices.
Matrices are used in almost every area of Applied Mathematics. The reason for this, is because Matrices have computationally efficient algorithms. Matrices are commonly used in solving polynomial equations (like in Spice and simulation software). Using matrices for complex equations allows for a simpler derivation of complex algebra (assuming you understand matrix algebra).
To represent a complex number we will use the following notation:
where a is the Real portion of the number and b is the Complex portion of the number (meaning it is multiplied by
). Now how do we represent this in matrix form? Use the following 2x2 matrix to form a complex number representation:
Why this form? With the inverted diagonal, multiplying the two complex numbers together gives you:
This gives you a complex number of the correct form. Now that we have a better (subjective, I know) representation of complex numbers let's quickly talk about the algebra involved.
The four main algebraic operators that will be shown here are addition, subtraction, multiplication, and division.
The following matrix equations will be represented by two complex numbers as shown below:
Capital letters typically denote a matrix. The following equations show the basic operations of complex numbers in matrices.
Where -1 on the Matrix is the inverse of the Matrix. The inverse of a matrix is calculated by standard 2x2 matrix inversion equation below:
Complex numbers are intriguing. They don't really mean anything, yet without them most of the things we have today (electronics) wouldn't exist without them. The core of electrical engineering is complex numbers and with that everything is derived. Knowing how complex numbers work is vitally important to many engineering disciplines. But with the advent of computers, it is even more important to understand matrices and how to use them. Many of the models and simulations used today are calculated using matrix mathematics. Learning how to use complex numbers in this arena could be very beneficial.
Although, I have not done very much work with complex matrices in the computational sciences, I'm confident their use is wide spread and valuable to any curious engineer. Maybe soon, I can do my own research into how to use complex matrix representation in algorithms. Til next time...
Check out our thoughts here.
There is one, and only one, primary focus that any software developer acknowledge: the ability for software to be maintainable. Of course, correctness, functionality, and performance are all important, these will always be easier to address with maintainable software.