Rubyで行列と転置行列の積

Arrayクラスの拡張でに行列と転置行列の積をやる関数を作った。

class Array
  def times_t
    new_matrix = Array.new
      for j in 0...self.length do
        new_matrix[j] = Array.new
        for k in 0...self.length do
          new_matrix[j][k] = 0
          for i in 0...self[j].length do
            new_matrix[j][k] += self[j][i] * self[k][i]
          end
        end
      end
    return new_matrix
  end
 
  def t_times
        new_matrix = Array.new
      for j in 0...self[0].length do
        new_matrix[j] = Array.new
        for k in 0...self[j].length do
          new_matrix[j][k] = 0
          for i in 0...self.length do
            new_matrix[j][k] += self[i][j] * self[i][k]
          end
        end
      end
    return new_matrix
  end
end
 

times_tがA \times A^{T}を、t_timesがA^{T} \times Aを計算している。
最終更新:2008年06月14日 01:21
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。