プロが教えるわが家の防犯対策術!

javaでn行n列の行列の2乗を求めたいのですが、どうすればよいでしょうか?3行3列の2乗はできたのですがn行n列への拡張の仕方がわかりません。

A 回答 (1件)

行列のかけ算について調べて理論を理解しておいてください。



イメージ的には↓のようなプログラムになります

for(i=0; i<n; i++ ){
 for(j=0; j<n; j++ ){
  b[i][j] = 0 ;
  for(k=0; k<n; k++){
   b[i][j] += a[i][k]*a[k][j] ;
  }
 }
}

ちなみに実際に大規模行列の乗算を行う場合は、上記のようなijk形式のループではなく、キャッシュ等を考慮してブロック化したり演算の順序を変えたりします。
    • good
    • 0
この回答へのお礼

早い返信ありがとうございます。とりあえずやってみます。

お礼日時:2005/07/06 20:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!