99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-12-06 閱讀量: 1559
矩陣乘法

假設(shè) A 是一個(gè) n1×k1 矩陣, B 是一個(gè) n2×k2 矩陣,并且 k1 = n2,那么這兩個(gè)矩陣的乘積

AB 則是一個(gè) n1×k2 矩陣,其中第 (i,j) 項(xiàng)為:

A

i1B1j+ Ai2B2j+…+ AikBkj

下面,我們僅計(jì)算矩陣 A 的第 i 行(可以視為一個(gè)向量)與矩陣 B 的第 j 列(也可以視為

一個(gè)向量)的點(diǎn)積,具體代碼如下所示:

def matrix_product_entry(A, B, i, j):

return dot(get_row(A, i), get_column(B, j))

之后,我們就可以通過下列代碼實(shí)現(xiàn)矩陣的乘法運(yùn)算了:

def matrix_multiply(A, B):

n1, k1 = shape(A)

n2, k2 = shape(B)

if k1 != n2:

raise ArithmeticError("incompatible shapes!")

return make_matrix(n1, k2, partial(matrix_product_entry, A, B))

請(qǐng)注意,如果 A 是一個(gè) n×k 矩陣, B 是一個(gè) k×1 矩陣,那么 AB 則為 n×1 矩陣。如果

我們將一個(gè)向量看作是一維矩陣, 就可以把 A 看作是將 k 維向量映射為 n 維向量的一個(gè)函

數(shù),實(shí)際上這個(gè)函數(shù)就是矩陣乘法。

之前,我們將向量簡(jiǎn)單地表示為列表,實(shí)際上兩者之間是不能完全劃等號(hào)的:

v = [1, 2, 3]

v_as_matrix = [[1],

[2],

[3]]

因此,我們需要定義相應(yīng)的輔助函數(shù),以便實(shí)現(xiàn)兩種表示形式之間的轉(zhuǎn)換:

def vector_as_matrix(v):

"""returns the vector v (represented as a list) as a n x 1 matrix"""

return [[v_i] for v_i in v]

def vector_from_matrix(v_as_matrix):

"""returns the n x 1 matrix as a list of values"""

return [row[0] for row in v_as_matrix]

如此一來,我們就可以利用 matrix_multiply 來定義矩陣運(yùn)算了:

def matrix_operate(A, v):

v_as_matrix = vector_as_matrix(v)

product = matrix_multiply(A, v_as_matrix)

return vector_from_matrix(product)

當(dāng) A 是一個(gè)方陣時(shí),此操作會(huì)將 n 維向量映射為另一個(gè) n 維向量。對(duì)于某矩陣 A 和向量

v,對(duì)向量 v 進(jìn)行 A 變換有時(shí)候會(huì)等效于用一個(gè)標(biāo)量來乘向量 v,即所得到的向量與 v 同

向。當(dāng)發(fā)生這種情況(且 v 不是零向量)時(shí), 我們稱 v 為 A 的特征向量。同時(shí),我們稱這

個(gè)乘數(shù)為特征值(eigenvalue)。

0.0000
0
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無數(shù)據(jù)
推薦帖子