8 6 2 矩陣的運算

2021-04-17 10:47:03 字數 1602 閱讀 1791

把一組數字記錄成矩陣形式是沒有意義的,學習矩陣的關鍵在於掌握矩陣之間的運算。

1

.矩陣加法運算

矩陣之間也可以相加。把兩個矩陣對應位置的單個元素相加,得到的新矩陣就是矩陣加法的結果。由其運算法則可知,只有行數和列數完全相同的矩陣才能進行加法運算。

矩陣之間相加沒有順序,假設a、

b都是矩陣,則

a+b=b+a

。通常認為矩陣沒有減法,若要與乙個矩陣相減,在概念上是引入乙個該矩陣的負矩陣,然後相加。

a-b是

a+(-b)

的簡寫。圖

演示了兩個三行三列矩陣的加法。

矩陣加法在影象位移運算時經常用到。

2

.矩陣乘法運算

矩陣之間也可以進行乘法運算,但其運算過程相對複雜得多。與算術乘法不同,矩陣乘法並不是多個矩陣之和,它有自己的邏輯。其演算法的具體描述為:假設m行

n列的矩陣a和

r行v列的矩陣

b相乘得到矩陣

c,則首先矩陣

a和矩陣

b必須滿足

n=r,也就是說,第乙個矩陣的列數必須和第二個矩陣的行數相同。在運算時,第乙個矩陣a的第

i行的所有元素同第二個矩陣b第

j列的元素對應相乘,並把相乘的結果相加,最終得到的值就是矩陣c的第

i行第j列的值。

這個過程用數學公式描述為:

c(i,

j)=a(i1,i2

,i3……in)

×b(j1,j2

,j3……jv)

進而推出:

c(i,

j)= i1

×j1+i2

×j2+i3×j3

……+in×jv

從矩陣的乘法運算過程可以看出,矩陣

a和矩陣

b相乘的產生的矩陣

c,必然是m行

v列的。例如,乙個5×

3的矩陣同乙個3×

7的矩陣相乘,結果必然是產生乙個5×

7的矩陣。而乙個5×

3的矩陣同乙個5×

7的矩陣,則無法相乘。圖

演示了兩組矩陣的乘法運算。

在圖形變換時,經常用到多次變換,這會造成多個矩陣相乘。如果多個矩陣相乘,則等價於前兩個矩陣相乘的結果再乘以第三個矩陣,以此向後類推。例如,假設

abcd

都是矩陣,則a×

b×c×

d=((a×b)

×c)×d

。矩陣乘法同數字乘法不同,其運算的先後順序十分敏感,矩陣

a乘矩陣

b的結果可能完全不同於矩陣

b乘矩陣

a的結果,有時甚至根本無法相乘。

矩陣相乘要求矩陣之間列與行前後對應相等。為了方便操作,在圖形學的實際應用中變換矩陣都是行數和列數相等的方陣。對於行和列不相等的矩陣,甚至要人為補足。

矩陣的運算

目錄 1.矩陣與數相乘 每一項都要乘 2.矩陣的加減運算 每一項都要乘 3.矩陣相乘 4.矩陣對應元素相乘 同型矩陣 5.矩陣的轉置 t 6.矩陣的共軛轉置 h 7.矩陣的逆 i 8.矩陣的試圖 a import numpy as np m1 np.mat 1,2,3 2,3,4 print m m...

矩陣的運算

矩陣的常用運算包括 加法 減法 點乘 點除和乘法等。矩陣的加法就是2個矩陣對應位置的數值相加。in 1 import numpy as np in 2 m1 np.array 1,2,3 4,5,6 np.uint8 in 3 m2 np.array 4,5,6 7,8,9 np.uint8 in ...

矩陣的運算

1 include2 using namespace std 3int main 1920 21 cout 請輸入矩陣b的行數和列數 22 cin x k 23 cout 請輸入矩陣b 24for int i 0 i x i 253031 32 cout 矩陣a為 33for int i 0 i n...