org.encog.mathutil
Class ComplexNumber

java.lang.Object
  extended by org.encog.mathutil.ComplexNumber

public class ComplexNumber
extends Object

A complex number class. This class is based on source code by Andrew G. Bennett, Department of Mathematics Kansas State University The original version can be found here: http://www.math.ksu.edu/~bennett/jomacg/c.html


Constructor Summary
ComplexNumber(ComplexNumber other)
          Create a complex number from another complex number.
ComplexNumber(double u, double v)
          Constructs the complex number z = u + i*v
 
Method Summary
 double arg()
          Argument of this Complex number (the angle in radians with the x-axis in polar coordinates).
 ComplexNumber chs()
          Negative of this complex number (chs stands for change sign).
 ComplexNumber conj()
          Complex conjugate of this Complex number (the conjugate of x+i*y is x-i*y).
 ComplexNumber cos()
          Cosine of this Complex number (doesn't change this Complex number).
 ComplexNumber cosh()
          Hyperbolic cosine of this Complex number (doesn't change this Complex number).
 ComplexNumber div(ComplexNumber w)
          Division of Complex numbers (doesn't change this Complex number).
 ComplexNumber exp()
          Complex exponential (doesn't change this Complex number).
 double getImaginary()
          Imaginary part of this Complex number (the y-coordinate in rectangular coordinates).
 double getReal()
          Real part of this Complex number (the x-coordinate in rectangular coordinates).
 ComplexNumber log()
          Principal branch of the Complex logarithm of this Complex number.
 ComplexNumber minus(ComplexNumber w)
          Subtraction of Complex numbers (doesn't change this Complex number).
 double mod()
          Modulus of this Complex number (the distance from the origin in polar coordinates).
 ComplexNumber plus(ComplexNumber w)
          Addition of Complex numbers (doesn't change this Complex number).
 ComplexNumber sin()
          Sine of this Complex number (doesn't change this Complex number).
 ComplexNumber sinh()
          Hyperbolic sine of this Complex number (doesn't change this Complex number).
 ComplexNumber sqrt()
          Complex square root (doesn't change this complex number).
 ComplexNumber tan()
          Tangent of this Complex number (doesn't change this Complex number).
 ComplexNumber times(ComplexNumber w)
          Complex multiplication (doesn't change this Complex number).
 String toString()
          String representation of this Complex number.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ComplexNumber

public ComplexNumber(double u,
                     double v)
Constructs the complex number z = u + i*v

Parameters:
u - Real part
v - Imaginary part

ComplexNumber

public ComplexNumber(ComplexNumber other)
Create a complex number from another complex number.

Parameters:
other - The other complex number.
Method Detail

getReal

public double getReal()
Real part of this Complex number (the x-coordinate in rectangular coordinates).

Returns:
Re[z] where z is this Complex number.

getImaginary

public double getImaginary()
Imaginary part of this Complex number (the y-coordinate in rectangular coordinates).

Returns:
Im[z] where z is this Complex number.

mod

public double mod()
Modulus of this Complex number (the distance from the origin in polar coordinates).

Returns:
|z| where z is this Complex number.

arg

public double arg()
Argument of this Complex number (the angle in radians with the x-axis in polar coordinates).

Returns:
arg(z) where z is this Complex number.

conj

public ComplexNumber conj()
Complex conjugate of this Complex number (the conjugate of x+i*y is x-i*y).

Returns:
z-bar where z is this Complex number.

plus

public ComplexNumber plus(ComplexNumber w)
Addition of Complex numbers (doesn't change this Complex number).
(x+i*y) + (s+i*t) = (x+s)+i*(y+t).

Parameters:
w - is the number to add.
Returns:
z+w where z is this Complex number.

minus

public ComplexNumber minus(ComplexNumber w)
Subtraction of Complex numbers (doesn't change this Complex number).
(x+i*y) - (s+i*t) = (x-s)+i*(y-t).

Parameters:
w - is the number to subtract.
Returns:
z-w where z is this Complex number.

times

public ComplexNumber times(ComplexNumber w)
Complex multiplication (doesn't change this Complex number).

Parameters:
w - is the number to multiply by.
Returns:
z*w where z is this Complex number.

div

public ComplexNumber div(ComplexNumber w)
Division of Complex numbers (doesn't change this Complex number).
(x+i*y)/(s+i*t) = ((x*s+y*t) + i*(y*s-y*t)) / (s^2+t^2)

Parameters:
w - is the number to divide by
Returns:
new Complex number z/w where z is this Complex number

exp

public ComplexNumber exp()
Complex exponential (doesn't change this Complex number).

Returns:
exp(z) where z is this Complex number.

log

public ComplexNumber log()
Principal branch of the Complex logarithm of this Complex number. (doesn't change this Complex number). The principal branch is the branch with -pi < arg <= pi.

Returns:
log(z) where z is this Complex number.

sqrt

public ComplexNumber sqrt()
Complex square root (doesn't change this complex number). Computes the principal branch of the square root, which is the value with 0 <= arg < pi.

Returns:
sqrt(z) where z is this Complex number.

sin

public ComplexNumber sin()
Sine of this Complex number (doesn't change this Complex number).
sin(z) = (exp(i*z)-exp(-i*z))/(2*i).

Returns:
sin(z) where z is this Complex number.

cos

public ComplexNumber cos()
Cosine of this Complex number (doesn't change this Complex number).
cos(z) = (exp(i*z)+exp(-i*z))/ 2.

Returns:
cos(z) where z is this Complex number.

sinh

public ComplexNumber sinh()
Hyperbolic sine of this Complex number (doesn't change this Complex number).
sinh(z) = (exp(z)-exp(-z))/2.

Returns:
sinh(z) where z is this Complex number.

cosh

public ComplexNumber cosh()
Hyperbolic cosine of this Complex number (doesn't change this Complex number).
cosh(z) = (exp(z) + exp(-z)) / 2.

Returns:
cosh(z) where z is this Complex number.

tan

public ComplexNumber tan()
Tangent of this Complex number (doesn't change this Complex number).
tan(z) = sin(z)/cos(z).

Returns:
tan(z) where z is this Complex number.

chs

public ComplexNumber chs()
Negative of this complex number (chs stands for change sign). This produces a new Complex number and doesn't change this Complex number.
-(x+i*y) = -x-i*y.

Returns:
-z where z is this Complex number.

toString

public String toString()
String representation of this Complex number.

Overrides:
toString in class Object
Returns:
x+i*y, x-i*y, x, or i*y as appropriate.


Copyright © 2014. All Rights Reserved.