Java 程序用于查找给定矩阵的迹和法线

javacampus interviewserver side programmingprogramming

在本文中,我们将了解如何查找给定矩阵的迹和法线。矩阵的法线是矩阵所有元素平方和的平方根。矩阵的迹是主对角线(左上到右下)中所有元素的总和。

下面是相同的演示 −

假设我们的输入是

矩阵定义为:
2 3 4
5 2 3
4 6 9

期望的输出将是

Trace value: 13.0
Normal value: 14.142135623730951

算法

步骤 1 - 开始
步骤 2 - 声明一个整数矩阵,即 input_matrix
步骤 3 - 定义值。
步骤 4 - 要计算跟踪值,使用两个 for 循环迭代矩阵的每个元素,添加对角线元素并存储该值。
步骤 5 - 要计算正常值,使用两个 for 循环迭代矩阵的每个元素,计算每个元素的平方和,然后计算值的平方根并存储该值。
步骤 5 - 显示结果
步骤 6 - 停止

示例 1

在这里,我们将所有操作都绑定在‘main’函数下。

public class NormalAndTrace {
   public static void main(String args[]) {
      int[][] input_matrix = {
         {2, 3, 4},
         {5, 2, 3},
         {4, 6, 9}
      };
      int i, j, matrix_size = 3;
      double trace = 0, square = 0, normal = 0;
      System.out.println("该矩阵定义为: ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++)
         System.out.print(input_matrix[i][j]+" ");
         System.out.println(" ");
      }
      System.out.println("\n矩阵的迹值为 ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++) {
            if(i == j) {
               trace = trace + (input_matrix[i][j]);
            }
         }
      }
      System.out.println(trace);
      System.out.println("\n矩阵的法线值为 ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++) {
            square = square + (input_matrix[i][j])*(input_matrix[i][j]);
         }
      }
      normal = Math.sqrt(square);
      System.out.println(normal);
   }
}

输出

矩阵定义为:
2 3 4
5 2 3
4 6 9

矩阵的迹值为
13.0

矩阵的法线值为
14.142135623730951

示例 2

在这里,我们将操作封装成展现面向对象编程的函数。

public class NormalAndTrace {
   static int matrix_size = 3;
   static void normal_trace(int input_matrix[][]){
      int i, j;
      double trace = 0, square = 0, normal = 0;
      System.out.println("\n矩阵的迹值为 ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++) {
            if(i == j) {
               trace = trace + (input_matrix[i][j]);
            }
         }
      }
      System.out.println(trace);
      System.out.println("\n矩阵的法线值为 ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++) {
            square = square + (input_matrix[i][j])*(input_matrix[i][j]);
         }
      }
      normal = Math.sqrt(square);
      System.out.println(normal);
   }
   public static void main(String args[]) {
      int i, j;
      int[][] input_matrix = { {2, 3, 4},
         {5, 2, 3},
         {4, 6, 9}
      };
      System.out.println("该矩阵定义为: ");
      for(i = 0; i < matrix_size; i++) {
         for(j = 0; j < matrix_size; j++)
         System.out.print(input_matrix[i][j]+" ");
         System.out.println(" ");
      }
      normal_trace(input_matrix);
   }
}

输出

矩阵定义为:
2 3 4
5 2 3
4 6 9

矩阵的迹值为
13.0

矩阵的法线值为
14.142135623730951

相关文章