我正在研究一個在矩陣上執行計算的小型Java應用程序。這是我現在所做的計算方陣的行列式和倒數。但我想用班級Jama來計算特徵值和特徵向量,但我不知道如何使用它,誰能幫我一下嗎?謝謝。使用賈馬來計算特徵值/特徵向量?
import java.util.Scanner;
import Jama.*;
public class matrix {
public static void main(String[] args) {
double[][] matrix;
double det;
int n;
Scanner scanner = new Scanner(System.in);
System.out.println("Dimension of the matrix: ");
n = scanner.nextInt();
matrix = new int[n][n];
// insert values
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.printf("Values: " + i + " - " + j);
System.out.printf("\n");
matrix[i][j] = scanner.nextDouble();
}
}
// calculate determinant
det = dete(matrix, n);
}
private static dete(double ai[][], int i) {
double l = 0;
if (i == 1)
l = ai[0][0];
else if (i == 2) {
l = ai[0][0] * ai[1][1] - ai[0][1] * ai[1][0];
} else {
double ai1[][] = new double[i - 1][i - 1];
for (int k = 0; k < i; k++) {
for (int i1 = 1; i1 < i; i1++) {
int j = 0;
for (int j1 = 0; j1 < i; j1++)
if (j1 != k) {
ai1[i1 - 1][j] = ai[i1][j1];
j++;
}
}
if (k % 2 == 0)
l += ai[0][k] * dete(ai1, i - 1);
else
l -= ai[0][k] * dete(ai1, i - 1);
}
}
return l;
}
}
這是實際的代碼?格式很糟糕,甚至沒有編譯。 –
@PhilippReichart - 是的,我確定了他的格式。但代碼確實不能編譯。 – Perception
對不起,現在我的代碼運行良好。你能幫我解答一下嗎? – whiteTIGER