Complex power to real number
Author |
Message |
Saad
|
Posted: Sat Jun 16, 2007 2:33 pm Post subject: Complex power to real number |
|
|
I've been working on my own complex number class but ive come to encountered 1 problem.
Does anyone know how to calculate a complex number raised to a power of a real number?
ie z = (a+bi)^x
where x = real power and z = new complex number
Saad |
|
|
|
|
|
Sponsor Sponsor
|
|
|
PaulButler
|
Posted: Sat Jun 16, 2007 6:14 pm Post subject: RE:Complex power to real number |
|
|
You can use de Moivre's formula.
Just know that with a real power, you may (will?) find two values for z.
If I remember correctly (and I hope I do, because I have an exam on this next week ), it goes something like this:
c++: |
float r, i; // real, imaginary components of base
float p; // power
// convert to polar form
float t, b; // angle, distance from (0, 0)
b = sqrt((r * r) + (i * i)); // Pythagorean theorem
t = arctan(i / r); // assuming range of (-pi / 2, pi / 2) for arctan
if(r < 0){
t = pi - t;
}
if(i < 0){
t = (2 * pi) - t;
}
// raise to power
t = t * p;
b = pow(b, p);
// if there is more than one value, I think you could just take -b here and do the same stuff with it that is done below to get it the other
// put back in rectangular form
r = b * cos(t);
i = b * sin(t);
|
I really have a feeling that I made a mistake or two so that code could use some testing before it gets any use, but it should at least demonstrate how it works. |
|
|
|
|
|
|
|