1

我正在尝试使用伴随方法确定矩阵的逆,即(首先计算矩阵的辅因子,然后转置该矩阵,最后,将其乘以(1/行列式)以获得行列式值的倒数)我有确定转置和行列式的方法,但是我正在努力解决辅因子矩阵 -

显示如何使用伴随方法手动确定逆的链接http://www.mathwords.com/i/inverse_of_a_matrix.htm 显示如何手动计算辅因子的链接http://www.mathwords.com/c/cofactor_matrix .htm >

我有一种方法可以很好地计算行列式和转置,但是我无法获得辅因子方法来给我所需的输出

示例输出为 => 24 5 -4
24 5 -4
24 5 -4 但第二行和第三行应该不同,有什么建议吗?谢谢!这是我正在使用的方法=> checkIfSquare 和 assignmentingSign 方法也可以正常工作

    public static int[][] cofactor(int[][] matrix) {
    int[][] cofactorMatrix = new int[matrix.length][matrix.length];

    for (int j = 0; j < matrix.length; j++) {
        if (checkIfSquare(matrix)) {
            for (int location = 0; location < matrix.length; location++) {
                int reducedMatrix[][] = new int[matrix.length - 1][matrix.length - 1];

                for (int rows = 1; rows < matrix.length; rows++) {
                    for (int cols = 0; cols < matrix.length; cols++) {
                        if (cols > location) {
                            reducedMatrix[rows - 1][cols - 1] = matrix[rows][cols];
                        } else if (cols < location) {
                            reducedMatrix[rows - 1][cols] = matrix[rows][cols];
                        }
                    }
                }

                int sign = assigningSign(location);
                cofactorMatrix[j][location] = determinantCalc(reducedMatrix) * sign;
            }
        }
    }
    return cofactorMatrix;
}
4

2 回答 2

1

当你计算时,reducedMatrix你总是跳过第一行。这适用于辅因子矩阵的第一行,但对于下面的行,您需要跳过第 j 行。这就是为什么您的输出包含重复的第一行的原因。

顺便说一句,这是一种计算矩阵逆的可怕方法。我认为这是一项学术练习,并不打算用于严肃的项目。

于 2013-02-13T09:45:02.490 回答
0

没有必要重新发明轮子。Jama 是一个写得很好的包。Maven 仓库

    <dependency>
        <groupId>Jama</groupId>
        <artifactId>Jama</artifactId>
        <version>1.0.2</version>
    </dependency>

    <repository>    
        <id>ebi-repo</id>    
        <name>The EBI internal repository</name>    
        <url>http://www.ebi.ac.uk/~maven/m2repo</url>    
        <releases>      
            <enabled>true</enabled>    
        </releases>    
        <snapshots>      
            <enabled>false</enabled>    
        </snapshots>  
    </repository>        

或者,该 jar 文件可在http://math.nist.gov/javanumerics/jama/#Package获得

于 2013-02-13T09:41:26.840 回答