superclass=Object
type=class
library=matrix
extended=
included=Enumerable

 [[c:Numeric]] ǤȤ٥ȥ򰷤饹Ǥ





=== Complex饹Ȥʻ Working with Complex class

require 'complex' 뤳Ȥˤäơ
Vector ֥ȤǤ [[c:Complex]] 饹˳ĥޤ
¿Υ᥽åɤϡγĥ줿Vector饹Ǥ⡢̤ưޤ

ϡǤʣǿִ᥽å (Vector#conjugate)Ǥ

  require 'matrix'
  require 'complex'
  
  class Vector
    def conjugate
      collect{|e| e.conjugate }
    end
  end
  
  v1 = Vector[Complex(1,1),Complex(2,2),Complex(3,3)]
  v2 = v1.conjugate
  p v2 #=> Vector[Complex(1,-1),Complex(2,-2),Complex(3,-3)]
  v3 = v1+v2
  p v3 #=> Vector[Complex(1,0),Complex(2,0),Complex(3,0)]


Complex Ǥ˳ĥ줿 Vector 饹ǡ
̤ưʤ᥽åɤ⤢ޤ
㤨С٥ȥͤ [[m:Vector#r]] ᥽åɤϡ
Ǥ2¤ʿ [[m:Math.#sqrt]] ޤ
ΤȤ㳰ȯǽޤ

ʣǿǤȤ٥ȥͤ뤿ˤϡ
Ǥͤ2¤ȤʤƤϤʤޤ( Vector#abs᥽åɡˡ

  require 'matrix'
  require 'complex'
  
  class Vector
    def abs
      r=0
      @elements.each{|e| r += e.abs2 }
      Math.sqrt(r)
    end
  end
  
  v = Vector[Complex(1,1),Complex(2,2),Complex(3,3)}
  p v.abs #=> 5.291502622 # Math.sqrt(28)
  p v.r   #=> 'sqrt': undefined method `Rational'
