Java中如何使用高斯消元算法?

How to use the Gaussian Elimination algorithm in Java?

我的任务是用高斯消除算法计算 u:

金=b

A 是一个矩阵(二维数组),如下所示:

[1.0, 0.0, 0.0, 0.0, 0.0]
[-25.0, 50.0, -25.0, 0.0, 0.0]
[0.0, -25.0, 50.0, -25.0, 0.0]
[0.0, 0.0, -25.0, 50.0, -25.0]
[0.0, 0.0, 0.0, 0.0, 1.0]

b 是一个向量(数组),如下所示:

[0.0, 1.115696, 1.115696, 1.115696, 0.0]

如何在这上面使用高斯消元算法? java 是否已经实现了一些东西?或者代码看起来如何计算这个?我感谢任何形式的帮助!

例如,您可以使用开源 la4j 库。 那么你的代码可能看起来像

    ...
    double[][] numbers_for_A = {
            {1.0, 0.0, 0.0, 0.0, 0.0},
            {-25.0, 50.0, -25.0, 0.0, 0.0},
            {0.0, -25.0, 50.0, -25.0, 0.0},
            {0.0, 0.0, -25.0, 50.0, -25.0},
            {0.0, 0.0, 0.0, 0.0, 1.0}};
    double[] numbers_for_b = {0.0, 1.115696, 1.115696, 1.115696, 0.0};

    Matrix A = Matrix.from2DArray(numbers_for_A);
    Vector b = Vector.fromArray(numbers_for_b);
    GaussianSolver gs = new GaussianSolver(A);
    Vector u = gs.solve(b);

    System.out.println(u);

您可以使用 maven 依赖导入库

    <dependency>
        <groupId>org.la4j</groupId>
        <artifactId>la4j</artifactId>
        <version>0.6.0</version>
    </dependency>