以下のようなプログラムを作りました。すべての配列の大きさは同じです。
hairetuは引数の配列を使って新しい配列を返すメソッドでkeisanは引数の配列を使ってdouble値を返すメソッド,hyouziは引数の配列を表示するメソッドです。

public static void main(String[] args) {
double [][]a = ・・・・;
double [][]b = ・・・・;
      int n = a.length;
      double [][]A = hairetu(a,b,n);
System.out.println(keisan(A,n));
}

public static double keisan(double [][]A,int n){
・・・・
return x;
}

public static double[][] hairetu(double[][]a,double[][]b,int n){
double [][]y = new double[n][n];
・・・・
y = ・・・・;
hyouzi(y,n);
return y;
}

public static void hyouzi(double[][]a,int n){
・・・・・
}

hyouziメソッドでは配列は正しく表示されるのですがSystem.outのところがすべての要素がNaNの配列が表示されてしまいます。
keisanメソッドは値を返すようにしたのですがなぜでしょうか?