Ruby: Complex Numbers

By Xah Lee. Date: . Last updated: .

In Ruby, Complex number is represented by the object “Complex”. Example:

# -*- coding: utf-8 -*-
# ruby

# a complex number
cc = Complex(3, 4)

# when printed, it's shown as (x+y i)
p cc # (3+4i)

Get Real and Imaginary Parts

# -*- coding: utf-8 -*-
# ruby

# a complex number
cc = Complex(3, 4)

p cc.real # 3
p cc.imag # 4

Complex Number Addition, Multiplication

# -*- coding: utf-8 -*-
# ruby

# Complex number addition. (same as vector addition)
p Complex(2, 3) + Complex(4, 5) # (6+8i)

# multiplication of complex numbers
p Complex(1, 0) * Complex(0, 1) # (0+1i)

# scalar multiplication. That is, scale it.
p Complex(3, 4) * 2 # (6+8j)

# adding a scalar adds to the real part
p Complex(3, 4) + 1 # (4+4i)

Get Complex Number Length

# -*- coding: utf-8 -*-
# ruby

# length of a Complex number
p Complex(3, 4).abs # 5.0

Get Complex Number Angle

# -*- coding: utf-8 -*-
# ruby

z1 = Complex(0, 1)

# get the angle. return in radians
p z1.angle # 1.5707963267948966

Convert To/From Rectangular, Polar Coordinates

# -*- coding: utf-8 -*-
# ruby

length = 1
angle = Math::PI

# polar to rectangular coordinate
p Complex.polar(length, angle) # (-1+0.0i)
# -*- coding: utf-8 -*-
# ruby

z1 = Complex(0, 1)

# rectangular to polar coordinates. Returns a array [length, angle]
p z1.polar # [1, 1.5707963267948966]

http://www.ruby-doc.org/core-1.9.3/Complex.html

π and e

π is Math::PI

e is Math::E

# coding: utf-8
# ruby

# constant π
p Math::PI # 3.141592653589793

# constant e
p Math::E # 2.718281828459045

http://www.ruby-doc.org/core-1.9.3/Math.html

If you have a question, put $5 at patreon and message me.

  1. Ruby Basics
  2. Doc Lookup
  3. Print Version String
  4. What's RVM, Gem, Rake, Bundler, RDoc, ri, irb?

  1. Unicode 💎
  2. Quote String
  3. Quote Long String
  4. Format String
  5. String Operations
  6. True, False
  7. “if then else”
  8. for, while, Loop
  9. List
  10. Loop Thru List
  11. Hash Table
  12. Function Optional Parameter
  13. Map f to List
  14. Complex Numbers
  1. Intro to Reading Ruby Doc: What's M, C, ::, # ?
  2. Predefined Global Variables