求行列式值的全选主元高斯消去法 java核心算法代码 (2009-09-18 09:29:28)转载标签: 杂谈 分类: Java技术核心代码如下所示,其中,numRows*numColumns方针的所有元素存储在double elements[]数组中,其中,矩阵元素a[i][j]对应于元素elements[i*numColumns+j].public double computeDetGauss() { int is = 0, js = 0;//第i行右下角矩阵'绝对值最大的元素'的行&列号 int l, u, v; //numRows*numColumns方阵排成行后,元素a[i][j]的下标 double temp;//临时变量 // 初值 double f = ;//行列式求解中对调一行or列(每置换一次,行列式变号一次) double det = ;//待返回的行列式值 // 消元 for (int k = 0; k <= numColumns - 2; k++) {//第k列(从0开始,到col-2列) double q = ;//第k行k列右下角矩阵'绝对值最大的元素'值 for (int i = k; i <= numColumns - 1; i++) {//从第i行(i>=k),到 for (int j = k; j <= numColumns - 1; j++) {//列 l = i * numColumns + j;//第i行第j列的元素下标 temp = (elements[l]);//元素a[i][j] if (temp > q) {//元素d=a[i][j]更大 q = temp;//更新"最大" is = i;//右下角矩阵'绝对值最大的元素'的行号 js = j;//右下角矩阵'绝对值最大的元素'的列号 } } } if (q == ) {//第k行k列右下角矩阵全为0!!! det = ; return (det); //行列式=0 }