Python程式查詢給定矩陣的跡和範數


矩陣定義為按行和列排列的一組數字。具有m行和n列的矩陣稱為m X n矩陣,m和n稱為其維度。矩陣是一個二維陣列,在python中使用列表或NumPy陣列建立。

矩陣的跡

矩陣的跡定義為其對角線元素之和(即從左上到右下的元素)。僅對於方陣(即行和列具有相同元素數的矩陣)才能計算矩陣的跡。

假設我們有一個如下所示的3X3矩陣:

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

跡將是(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()值進行了四捨五入。

更新於: 2023年5月15日

2K+ 次檢視

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.