【问题标题】:Subtracting matrix row from another row in Java从Java中的另一行中减去矩阵行
【发布时间】:2021-11-04 14:19:31
【问题描述】:

我正在编写一个简单的程序,该程序采用增广矩阵并使用高斯消元过程来求解方程组。在这种情况下,第一步是从第 2 行中减去第 1 行,以使第 2 行中的第一个数字等于 0。然后将第 2 行替换为这两者的差异。

我正在使用的矩阵:

1 1 1 3 
1 2 3 0
1 3 2 3

因此,输出应该是:

1 1 1 3 
0 1 2 -3
1 3 2 3

当前输出:

Step 1: 
1  1  1  3  
1  2  3  0  
1  3  2  3  

Step 2: 
Row 2: 1  2  3  0  
Subtracted by
Row 1: 1  1  1  3  

1  1  1  3  
-3  0  3  0  
1  3  2  3  

1  1  1  3  
-3  -2  -1  0  
1  3  2  3  

代码:

public static void main(String[] args) {
        
    // Where column 4 is the solution:
    // 1 1 1 | 3
    // 1 2 3 | 0
    // 1 3 2 | 3
    
    int matrix[][] = new int[][]{{1,1,1,3},
                                 {1,2,3,0},
                                 {1,3,2,3}};
    
    System.out.println("Step 1: ");
    
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            System.out.print(matrix[i][j] + "  ");
        }
        System.out.println("");
    }
    
    
    System.out.println("\nStep 2: ");
    
    System.out.print("Row 2: ");
    for (int i = 0; i < 4; i++) {
        System.out.print(matrix[1][i] + "  ");
    }
    System.out.println("\nSubtracted by");
    System.out.print("Row 1: ");
    for (int i = 0; i < 4; i++) {
        System.out.print(matrix[0][i] + "  ");
    }
    
    System.out.println("");
    System.out.println("");
    
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            
            matrix[1][i] = matrix[1][i]-matrix[0][i];

            System.out.print(matrix[i][j] + "  ");
            
        }
        System.out.println("");
    }

    System.out.println("");       
    
    for (int i = 0; i < 3; i++) {//col
        for (int j = 0; j < 4; j++) {//row
            
            System.out.print(matrix[i][j] + "  ");
            
        }
        System.out.println("");
    }
   
    
}

所以我的问题是,我可以对代码进行哪些更改以获得预期的输出(显示在顶部)? 任何帮助将不胜感激!

【问题讨论】:

  • 您的减法在嵌套循环内,因此您多次减去该行。此外,您在减法中使用了错误的索引(应该是 j 而不是 i)。
  • 哇,我不敢相信我没有注意到——谢谢!

标签: java for-loop matrix multidimensional-array gaussian


【解决方案1】:

您的减法在嵌套循环内,因此您多次减去该行。此外,您在减法中使用了错误的索引(它应该是 j 而不是 i)。 – 0x5453

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2015-05-15
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2014-08-22
    相关资源
    最近更新 更多