Java 中查找下三角矩阵和上三角矩阵的乘积


在 Java 中,数组是一个对象。它是一种非原始数据类型,用于存储相同数据类型的值。Java 中的矩阵只不过是一个多维数组,它表示多行和多列。

  • 三角矩阵 - 如果方阵中对角线以上或以下的所有元素都为零,则该方阵称为三角矩阵。

  • 下三角矩阵 - 如果方阵中对角线以上的所有元素都为零,则该方阵称为下三角矩阵。

  • 上三角矩阵 - 如果方阵中对角线以下的所有元素都为零,则该方阵称为上三角矩阵。

根据问题陈述,我们必须找到给定的下三角矩阵和上三角矩阵之间的乘积。

公式

矩阵 1

A	B
C	D

矩阵 2

	
E	F
G	H

乘积

Matrix-1 * Matrix-2: 	
AE+BG	      AF+BH
CE+DG	      CF+DH

让我们深入研究本文,了解如何使用 Java 编程语言来实现它。

向您展示一些示例

示例 1

假设下三角矩阵 =

{{12, 0, 0},
{43, 3, 0},
{3, 8, 9}}

假设上三角矩阵 =

{{5, 2, 1},
{0, 7, 10},
{0, 0, 4}}

这两个矩阵的乘积为

60    24    12    
215   107   73    
15    62    119

示例 2

假设下三角矩阵 =

{{1, 0, 0},
{2, 3, 0},
{4, 5, 6}}

假设上三角矩阵 =

{{7, 8, 9},
{0, 10, 11},
{0, 0, 12}}

这两个矩阵的乘积为

7    8    9    
14    46    51    
28    82    163

算法

  • 步骤 1 - 声明并初始化两个整数类型多维数组。

  • 步骤 2 - 使用嵌套 for 循环根据公式执行乘积过程。

  • 步骤 3 - 在每次计算后,将元素存储在乘积矩阵数组的相应行和列中。

  • 步骤 4 - 打印计算出的乘积矩阵作为输出。

语法

要获取数组的长度(数组中的元素数量),数组有一个内置属性,即length

下面是它的语法:

array.length

其中,“数组”指的是数组引用。

多种方法

我们提供了不同方法的解决方案。

  • 使用数组元素的静态初始化

  • 使用用户定义的方法

让我们逐一查看程序及其输出。

方法 1:使用数组元素的静态初始化

在这种方法中,多维数组元素将在程序中初始化。然后根据算法,下三角矩阵和上三角矩阵的乘积将作为输出打印。

示例

public class Main {
   public static void main(String[] args) {
      int r, c;
      
      // Declare and initializing two matrices
      int[][] LowerTriMat = {{12, 0, 0},
         {43, 3, 0},
         {3, 8, 9}};
      int[][] upperTriMat = {{5, 2, 1},
         {0, 7, 10},
         {0, 0, 4}};
      
      // Calculating the number of rows and columns present in matrices
      r = LowerTriMat.length;
      c = LowerTriMat[0].length;
      
      // Declare the product matrix
      int[][] prodMatrix = new int[r][c];
      
      //initiating the loop to find the product of two matrices
      for(int i = 0; i < r; i++) {
         for (int j = 0; j < c; j++) {
            for (int k = 0; k < c; k++) {
               prodMatrix[i][j] += LowerTriMat[i][k] * upperTriMat[k][j];
            }
         }
      }
      
      // output result
      System.out.println("The Product matrix of two matrices is: ");
      for(int[] row : prodMatrix) {
         for (int column : row) {
            System.out.print(column + "    ");
         }
         System.out.println();
      }
   }
}

输出

The Product matrix of two matrices is: 
60     24     12    
215    107    73    
15     62    119    

方法 2:使用用户定义的方法

在这种方法中,数组元素将在程序中初始化。然后通过将数组作为参数调用用户定义的方法,并在方法内部根据算法,下三角矩阵和上三角矩阵的乘积将作为输出打印。

程序

public class Main {
   public static void main(String[] args){
      
      // Declare and initializing two matrices
      int[][] LowerTriangularMatrix = { {1, 0, 0},
         {2, 3, 0},
         {4, 5, 6} };
      int[][] upperTriangularMatrix = { {7, 8, 9},
         {0, 10, 11},
         {0, 0, 12} };
      productMat(LowerTriangularMatrix, upperTriangularMatrix);
   }  
   public static void productMat(int[][] LowerTriMat,int[][] upperTriMat) {
      
      // declare the variables 
      //and store the number of rows and columns present in matrices
      int r = LowerTriMat.length;
      int c = LowerTriMat[0].length;
      
      // Declare and initialize the product matrix
      int[][] prodMatrix = new int[r][c];
      
      //initiating the loop to find the product of two matrices
      for(int i = 0; i < r; i++) {
         for (int j = 0; j < c; j++) {
            for (int k = 0; k < c; k++) {
               prodMatrix[i][j] += LowerTriMat[i][k] * upperTriMat[k][j];
            }
         }
      }
      
      // output result
      System.out.println("The Product matrix of two matrices is: ");
      for(int[] row : prodMatrix){
         for (int column : row) {
            System.out.print(column + "    ");
         }
         System.out.println();
      }
   }
}

输出

The Product matrix of two matrices is: 
7      8      9    
14    46     51    
28    82    163    

在本文中,我们探讨了使用 Java 编程语言查找下三角矩阵和上三角矩阵之间乘积的不同方法。

更新于: 2023 年 5 月 4 日

127 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告