Feature #10451 » implement.patch
lib/matrix.rb | ||
---|---|---|
# * #each2(v)
|
||
# * #collect2(v)
|
||
#
|
||
# Properties of vectors:
|
||
# * Vector.independent?(*vs)
|
||
# * #independent?(*vs)
|
||
#
|
||
# Vector arithmetic:
|
||
# * #*(x) "is matrix or number"
|
||
# * #+(v)
|
||
... | ... | |
end
|
||
#--
|
||
# PROPERTIES -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||
#++
|
||
#
|
||
# Returns +true+ iff all of vectors are linearly independent.
|
||
#
|
||
# Vector.independent?(Vector[1,0], Vector[0,1])
|
||
# => true
|
||
#
|
||
# Vector.independent?(Vector[1,2], Vector[2,4])
|
||
# => false
|
||
#
|
||
def Vector.independent?(*vs)
|
||
vs.each do |v|
|
||
raise TypeError, "expected Vector, got #{v.class}" unless v.is_a?(Vector)
|
||
Vector.Raise ErrDimensionMismatch unless v.size == vs.first.size
|
||
end
|
||
return false if vs.count > vs.first.size
|
||
Matrix[*vs].rank.eql?(vs.count)
|
||
end
|
||
#
|
||
# Returns +true+ iff all of vectors are linearly independent.
|
||
#
|
||
# Vector[1,0].independent?(Vector[0,1])
|
||
# => true
|
||
#
|
||
# Vector[1,2].independent?(Vector[2,4])
|
||
# => false
|
||
#
|
||
def independent?(*vs)
|
||
self.class.independent?(self, *vs)
|
||
end
|
||
#--
|
||
# COMPARING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||
#++
|
- « Previous
- 1
- 2
- 3
- Next »