Apache Commonsを使って行列計算

ApacheプロジェクトのうちのApache Commons Mathライブラリでは、行列計算を簡単に行うためのAPIが提供されています。もし、Javaで行列計算をさっさとやってしまいたい場合などは非常に役に立つと思います。

Apache Commons Mathは次のページからダウンロードできます。
[web] Aapche Commons Math
このページの「Releases」と書かれたタイトルの下にあるリンクから、ダウンロードページに行けます。現在の最新リリースは、Ver.1.2 です。

Commons Mathのライブラリを取得してきたら、javadocを見ながら早速作成してみましょう。
このライブラリの中で、行列計算をするために重要なのは、MatrixUtilsクラス、BigMatrixインターフェース、RealMatrixインターフェースです。
(パッケージは全てorg.apache.commons.math.linear です。)

行列計算をさせる流れは以下の通り。
1.行列として扱いたいデータ(配列の配列)を用意する。
2.MatrixUtilsクラスのcreateXXXMatrixメソッド *1 を使って、BigMatixもしくはRealMatrixのインスタンスを生成。
3.生成したインスタンスを利用して、行列計算

ちなみに、このRealMatrixインターフェース等を見てもらうと分かる通り、生成されるインスタンスは不変ではありません。複数のスレッド間で参照・変更をする場合は、必ず同期をとる必要があります。

public static void main(String[] args){
  double[][] array = {
    {1,2,3},
    {4,5,6},
    {7,8,9}
  };
  RealMatrix matrix = MatrixUtils.createRealMatrix(array);
  System.out.println(matrix.getDeterminant());  # 行列式の表示
}

*1 : XXXは、RealやBig等と置き換わります。詳細はAPIを参照。

トラックバック(1)

このブログ記事を参照しているブログ一覧: Apache Commonsを使って行列計算

このブログ記事に対するトラックバックURL: http://trialpc.net/mt/mt-tb.cgi/1753

» Javaで行列式を計算する(LostMemories)~のトラックバック

Javaで行列式を計算させるのに一番手っ取り早いのはフリーのライブラリを利用する... 続きを読む

コメントする

Advertizement

このブログ記事について

このページは、tetsuが2008年11月15日 21:46に書いたブログ記事です。

ひとつ前のブログ記事は「VMWare Server 2.0で入力を求められるユーザID/パスワード」です。

次のブログ記事は「Javaで行列式計算(余因子展開)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.0