Python 寻找给定矩阵的迹和法线

Python 寻找给定矩阵的迹和法线

矩阵被定义为一组按行和列排列的数字。具有m行和n列的矩阵称为m X n矩阵,m和n被称为它的维数。矩阵是一个二维数组,在Python中可以通过使用列表或NumPy数组创建。

矩阵的迹

矩阵的迹被定义为其对角线元素的和(即,从左上到右下的元素)。只有对于方阵(即,行和列具有相同数量的元素的矩阵)才能计算矩阵的迹。

假设我们有一个3X3的矩阵如下所示 −

[a, b, c]
[d, e, f]
[g, h, i]

并且Trace将是(a+e+i)的总和。让我们来看一个4X4矩阵。

[1, 2, 3, 4]
[6, 4, 2, 0]        
[5, 1, 6, 8] 
[9, 3, 6, 0]

该矩阵的结果为

sum(1+4+6+0) = 11

在下面,我们将讨论寻找矩阵的迹的示例。

使用for循环

我们将使用一个for循环迭代所有矩阵元素,计算矩阵对角线的和以找到

示例

通过使用Python的”for循环”迭代所有元素来计算对角线的和。

# Defining the matrix
matrix = [[10,2,3],
          [4,5,2],
          [2,2,1]]

# function for calculate the normal of a matrix
def findTrace(matrix):
   diag_sum = 0
   for i in range(len(matrix)):
     diag_sum += matrix[i][i]
   return diag_sum

print("Trace of Matrix =", findTrace(matrix))

输出

Trace of Matrix = 16

给定矩阵的对角元素为(10, 5, 1),迹为16。

使用NumPy.trace()方法

此外,我们还可以使用Python的Numpy模块的trace()方法来计算矩阵的迹。numpy.trace()方法返回numpy数组对角线元素的和。

语法

numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)

示例

在这个示例中,我们使用numpy.trace()方法来计算矩阵的迹。

import numpy as np

matrix = np.array([[10,2,3],
                   [4,5,2],
                   [2,2,1]])

# find the trace
matrix_trace = np.trace(matrix)

print("Trace of Matrix =", matrix_trace)

输出

Trace of Matrix = 16

给定矩阵的对角线元素为(10, 5, 1),迹的值为16。

寻找矩阵的标准

矩阵的标准定义为矩阵所有元素的平方和的平方根。

假设我们有一个包含4个元素的矩阵。

[8, 4]
[5, 2]

矩阵的法线是−

√(82 + 42 +52 +22) = 10

使用for循环

使用for循环迭代所有矩阵元素,计算矩阵所有元素的平方和的平方根。

示例

要找到矩阵的范数:首先,我们将导入math模块以使用math.pow()和math.sqrt()函数。

import math
matrix = [[1,3,2],
          [3,6,3],
          [1,4,2]]

#function for calculate the normal of a matrix
def findNormal(matrix):
   sum_of_elements = 0
   for i in range(len(matrix)):
      for j in range(len(matrix)):
         sum_of_elements += math.pow(matrix[i][j], 2)
   return math.floor(math.sqrt(sum_of_elements))

print("Normal of Matrix =", findNormal(matrix))

输出

Normal of Matrix = 9

通过使用python的for循环,我们遍历了矩阵的每个元素,并使用math.pow()函数计算了平方,然后将平方相加并存储到一个变量中。最后使用math.sqrt()函数计算了平方根。

使用NumPy模块

借助于numpy的power()、sqrt()和sum()等方法,我们可以轻松地计算矩阵的 范数

示例

在这个示例中,我们将导入NumPy模块来利用numpy.power()、numpy.sum()和numpy.sqrt()这些属性。

import numpy as np

matrix = np.array([[1,3,2],
                   [3,6,3],
                   [1,4,2]])

# find the normal
sumOfsquares = np.power(matrix, 2).sum()
matrix_normal = round(np.sqrt(sumOfsquares))

print("Trace of Matrix =", matrix_normal)

输出

Normal of Matrix = 9

使用numpy.power()函数我们计算了给定矩阵中每个元素的平方,然后使用numpy.sum()函数计算了平方和。最后使用numpy.sqrt()函数计算了平方根。为了避免浮点数,我们将np.sqrt()的值四舍五入。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程