★★Java質問・相談スレッド149★★
■ このスレッドは過去ログ倉庫に格納されています
0258デフォルトの名無しさん
2011/10/30(日) 03:17:19.69行列aをコレスキー分解するプログラムを作ったのですがうまくいきません。どこが間違ってるのでしょうか?ご教授お願いします。
public static void main(String[] args) {
int[][] a = {{1,2,-1,2,1},
{2,5,0,5,4},
{-1,0,6,2,2},
{2,5,2,10,4},
{1,4,2,4,11}};
double[][] l = new double[a.length][a.length];
double sum1=0.0;
double sum2=0.0;
for(int j=0; j<a.length; j++){
for(int k=0; k<j-1; k++){
sum1 +=l[j][k]*l[j][k];
}
l[j][j]=Math.sqrt(a[j][j]-sum1);
for(int i=j; i<a.length; i++){
for(int k=0; k<j-1; k++){
sum2 +=l[i][k]*l[j][k];
}
l[i][j]=(a[i][j]-sum2)/l[j][j];
}
}
matrix(l,a.length);
}
public static void matrix(double[][]a,int l){
for(int i=0; i<l; i++){
System.out.print("\t[");
for(int j=0; j<l; j++){
System.out.print(a[i][j]);
}
System.out.println("]"); }}
■ このスレッドは過去ログ倉庫に格納されています