| What makes a real number real is the way you use it. We define the familiar
operations on real numbers -- addition, multiplication, reciprocation, etc.,
because the numbers together with those operations make a system that is a
useful tool for problems in everyday life*. Similarly, operations for imaginary
numbers have been devised to follow certain rules of logic, and they have been
found to be useful in science, engineering, etc. What distinguishes
imaginary numbers, or in general, complex numbers, from real numbers is the
way they are used in operations.
For example, the imaginary number i is stored in a computer as 1. The user
(programmer) must also indicate somehow that this is imaginary, such as by
making it the second entry in a structure of two real numbers. S/he then
makes sure that whenever this number is used it follows the rules for imaginary
numbers.
Thus, when a real 1 is squared, the result is 1. However, if a 1 that repre-
sents an imaginary component is squared, the program must recognize it as
imaginary, and give the answer -1.
Thats a long winded way of saying "Yes, Rdb can store imaginary numbers. It is
up to the application to process them properly." However, as .-1 said, it is a
lot easier if there are some built in structures that keep complex numbers org-
anized as an ordered pair (x,y), with x representing the real part and y the
imaginary part. I don't know if this is the case.
*Purists, don't jump on me for this statement. Some would argue that we defined
the operations the way we did because it was logical. Lets debate this
elsewhere. I said this here because it makes the explanation easier.
|
| Rdb has no COMPLEX datatype, eh?
Is this why we have a salary freeze?
Your salary comes in two parts: what you are currently getting (that is,
the real part) and your salary increase this year (the imaginary part :-).
But if the database doesn't support it and the application has to
synthesize them, why perhaps DEC just couldn't convert its internal
payroll system when they switched over to Rdb. That explains a lot.
John
|
| Need more clarifications ? (some people might). A mathematician might
say:
Definition: Lets use the notation i to define the Square root of -1,
so i**2 = -1.
Lets use the symbol R for the set of real numbers. Then:
Definition: An imaginary number is defined to be the product i*r which
briefly stated as ix where x belongs in R (x is element from set R).
Definition: A complex number is defined to be the following expresion:
x op1 i op2 y examples: 3 + i5, 2 - i8 etc.
where op1 is + or - (addition or subtraction operator)
and op2 is * or / (multiplication or divition operator)
x and y are real numbers (from the set R)
x is called the real part
i op2 y is the imaginary part.
C is the symbol for the set of complex numbers of the above form
C is equivalent to R op1 i op2 R set if defined properly.
Since there cannot be a graphical replesentation SQRT(-1) you are only
imaging it, so computers can not represent that non-real value but
only make conventional rules of how to represent it with dumies (e.g. 1).
The association of a complex number (not imaginary) to an ordered
pair (x, y) is only convensional with + and * as the default
operators to map R+iR = { (x, y)|x, y such that x + iy } set elements.
As you see there is a difference between imaginary numbers and complex
numbers. An imaginary number is always a complex number, but a complex
number is more than an imaginary number. In different words, an
imaginary number is a monomial expresion where as a complex number is
a polynamial type of expresion. That's why the complex arithmetic is
defined as operations over polynomials, e.g.
(a + ib) + (x + iy) = (a + x) + i(b + y) for addition of complex #s
(a + ib) * (x + iy) = (ax - by) + i(ay + bx) for multiplication of
complex numbers (recall that i**2 = -1).
similarly for the other operations.
That's all for non-mathematicians.
|