大二刚刚学了下行列式,觉得难算,写了个行列式程序

线性代数的最开始行列式基础,遇上些比较难算的花上的时间较长,那天刚好女朋友在边上,写了一题好久都没和答案对上,挫败感十足,
后面发现答案错了,下定决心写一个行列式程序自动计算。

该程序用于学习,进行检验,同学们切记不能放弃笔算。


/**
 * Created by mac on 2018/3/20.
 */
public class LineProblem {
    public static void main(String[]args){
        //create a determinant
        double[][] a = {
                {1, 2, -2, 1},
                {2, 0, 3, 16},
                {1, -3, 1, 5},
                {3, 2, -4, -15}
        };
        int n = 0;
        double result = 1;

        for (int i = 0; i < a.length ; i++){
            //变换对照值
            int m = i;
            //从最后一行的第二列元素开始变化值,然后往上变化
            for (int j = a.length-1; j > i; j--){
                int k = m;
                //最后一行的第二列从左到右变化
                while( k < a.length -1 ) {
                    a[j][k + 1] =  (a[j][k + 1] - ((a[j][m] + 0.0) / a[n][n]) * a[n][k + 1]);
                    k++;
                }
            }
            n++;
            result = a[i][i] * result;
        }

        System.out.println(result);

    }

}

你可能感兴趣的:(大二刚刚学了下行列式,觉得难算,写了个行列式程序)