| While it is true that 2 real numbers can determine both a complex number and a point in plane and it is also true that 1 real number can determine both a real number and a point in a straight line, these are different mathematical things. The correct view is that the real numbers, also known as scalars, are quotients of 1-dimensional vectors, while the complex numbers are quotients of 2-dimensional vectors. This means that given two 1-dimensional vectors, the second being non-null, there is always a real number by which you can multiply the second vector to obtain the first vector. The same for two 2-dimensional vectors and a complex number. In this case the magnitude of the complex number changes the magnitude of the vector, while the phase rotates the vector. When you understand this fact about complex numbers, than it becomes obvious that the imaginary unit is not imaginary but just a rotation with a right angle and it is trivial that its square, i.e. a rotation with 180 degrees is equivalent with a multiplication by -1. The point are a third, different kind of mathematical entities, distinct from both real & complex numbers and from vectors. In fact points (i.e. members of 1-dimensional, 2-dimensional and so on affine spaces) are the primitive objects. From points you can define the vectors as differences of points (i,e, translations). Then from vectors you can define real numbers, complex numbers, quaternions and higher-dimensional matrices as quotients of vectors. (Such definitions define e.g. a 2-dimensional vector as a class of equivalence of pairs of points in plane that are transformed into each other by a translation, and a complex number as a class of equivalence of pairs of 2-dimensional vectors which are transformed into each other by a proportional change in magnitude and a rotation with a fixed angle.) Obviously, my explanation here is very simplified, but it is useful to be aware that e.g. a point in plane, a 2-dimensional vector and a complex number are 3 very different kinds of mathematical objects, even if all 3 are determined by a pair of real numbers. They are very different because the set of operations that can be applied to each is different. For example only the complex numbers are members of a field. You can add 2-dimensional vectors (i.e. compose 2 translations), but you cannot add 2 points from a plane. |
I want just to clarify more the last 2 sentences for those less familiar with mathematical jargon. The reference the the field of the complex numbers means that you can multiply 2 complex numbers, i.e. compose 2 geometric transformations consisting of scaling + rotation. You cannot multiply neither two 2-dimensional vectors nor two points.
In conclusion, in a programming language one should have different data types for points, vectors and complex numbers, because each type allows different operations and attempting to pass them as arguments to an inappropriate function should be an error.