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