程式設計需不需要數學?很多人可能認為數學在程式設計中並沒有什麼重要的作用,最多進行簡單的加減乘除。當前其實數學在程式設計中有著至關重要的作用。當你想寫乙個人工智慧時,乙個簡單的影象識別就需要用到矩陣,向量的運算,甚至還要用到積分。當你設計乙個遊戲時你需要用到向量來計算人物的移動,還需要計算人物的攻擊力等引數使每個人物都有自己的優缺點。甚至連乙個簡單的壓縮都要用到積分,編碼的計算。沒有數學你在程式設計中只能做最膚淺的事情。
矩陣(matrix)是乙個按照長方陣列排列的複數或實數集合。
形如:
a=[12
3456
789]
\left[ \begin 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end \right]
⎣⎡147
258
369
⎦⎤
1.上面的為三維矩陣
x維矩陣就是x*x的乙個矩形
2.第m行第n個元素記為a_或a[m,n]
運算法則
假設a= [a11
a12⋯a
1na21
a22⋯a
2n⋮⋮
⋱⋮am
1am2
⋯amn
]\left[ \begin a_ & a_ & \cdots & a_ \\ a_ & a_ & \cdots & a_ \\ \vdots & \vdots & \ddots & \vdots \\ a_ & a_ & \cdots & a_ \\ \end \right]
⎣⎢⎢⎢⎡
a11
a21
⋮am1
a1
2a2
2⋮a
m2
⋯⋯⋱⋯
a1n
a2n
⋮am
n⎦
⎥⎥⎥⎤
,b=[b11
b12⋯b
1nb21
b22⋯b
2n⋮⋮
⋱⋮bm
1bm2
⋯bmn
]\left[ \begin b_ & b_ & \cdots & b_ \\ b_ & b_ & \cdots & b_ \\ \vdots & \vdots & \ddots & \vdots \\ b_ & b_ & \cdots & b_ \\ \end \right]
⎣⎢⎢⎢⎡
b11
b21
⋮bm1
b1
2b2
2⋮b
m2
⋯⋯⋱⋯
b1n
b2n
⋮bm
n⎦
⎥⎥⎥⎤
則:a±b=[a11
±b11a
12±b12
⋯a1n
±b1n
a21±b
21a22±
b22⋯a
2n±b
2n⋮⋮
⋱⋮am
1±bm
1am2
±bm2
⋯amn
+bmn
]\left[ \begin a_±b_ & a_±b_ & \cdots & a_±b_ \\ a_±b_ & a_±b_ & \cdots & a_±b_ \\ \vdots & \vdots & \ddots & \vdots \\ a_±b_ & a_±b_ & \cdots & a_+b_ \\ \end \right]
⎣⎢⎢⎢⎡
a11
±b11
a21
±b2
1⋮a
m1±
bm1
a12
±b1
2a2
2±b
22⋮
am2
±bm2
⋯⋯
⋱⋯a
1n±
b1n
a2n
±b2n
⋮am
n+b
mn
⎦⎥⎥⎥
⎤假設a=[a11
a12a1
na21a
22a2n
am1a
m2am
n]
\left[ \begin a_ & a_ & a_ \\ a_ & a_ & a_ \\ a_ & a_ & a_ \end \right]
⎣⎡a11
a21
am1
a1
2a2
2am
2a
1na
2na
mn
⎦⎤,常數c
則a×c=[a11
∗ca12
∗ca1
n∗ca
21∗ca
22∗ca
2n∗c
am1∗
cam2
∗cam
n∗c]
\left[ \begin a_*c & a_*c & a_*c \\ a_*c & a_*c & a_*c \\ a_*c & a_*c & a_*c \end \right]
⎣⎡a11
∗ca
21∗
cam1
∗c
a12
∗ca2
2∗c
am2
∗ca
1n∗
ca2n
∗ca
mn∗
c⎦⎤
1、用a的第1行各個數與b的第1列各個數對應相乘後加起來,就是乘法結果中第1行第1列的數;
2、用a的第1行各個數與b的第2列各個數對應相乘後加起來,就是乘法結果中第1行第2列的數;
3、用a的第1行各個數與b的第3列各個數對應相乘後加起來,就是乘法結果中第1行第3列的數;
依次進行,(直到)用a的第1行各個數與b的第末列各個數對應相乘後加起來,就是乘法結果中第1行第末列的的數。
二、1、用a的第2行各個數與b的第1列各個數對應相乘後加起來,就是乘法結果中第2行第1列的數;
2、用a的第2行各個數與b的第2列各個數對應相乘後加起來,就是乘法結果中第2行第2列的數;
3、用a的第2行各個數與b的第3列各個數對應相乘後加起來,就是乘法結果中第2行第3列的數;
依次進行,(直到)用a的第2行各個數與b的第末列各個數對應相乘後加起來,就是乘法結果中第2行第末列的的數。
依次進行,
(直到)用a的第末行各個數與b的第1列各個數對應相乘後加起來,就是乘法結果中第末行第1列的數;
用a的第末行各個數與b的第2列各個數對應相乘後加起來,就是乘法結果中第末行第2列的數;
用a的第末行各個數與b的第3列各個數對應相乘後加起來,就是乘法結果中第末行第3列的數;
依次進行,
(直到)用a的第末行各個數與b的第末列各個數對應相乘後加起來,就是乘法結果中第末行第末列的的數。
數學基礎3 矩陣
矩陣的秩 秩與方程組之間的關係 特徵值和特徵向量 通過初等行變換,將乙個不帶引數的矩陣化為行階梯型,然後數矩陣的不全為零的行的個數,總的個數就是矩陣的秩。通常表示為r a rk a 或ranka。初等變換 包括 對調兩行,對某行乘以不為0的數和將某行乘以k倍加到另一行對應的元素上。a 是n階矩陣,若...
數學基礎 矩陣學習
乙個 m x n 的矩陣是由m行n列勻速排序成的矩形陣列 m x n的矩陣只能與 n x p的矩陣相乘,得到是乙個m x p大小的矩陣 新得到的矩陣第i行第j列的元素 是由 第乙個矩陣第i行與第二個矩陣第j列進行點乘得到的。例如 矩陣乘法不滿 換律 除非特別情況 但是滿足結合律與分配律 注意 實際開...
矩陣微分基礎(一)
這篇文章將介紹向量和矩陣微分相關基礎,他是它將是後面學習的基礎。假設函式 f r mapsto r 它的函式變數為乙個大小為 m times n 的矩陣,函式值為實數,則 f a 關於 a 的梯度是乙個由偏導數組成的矩陣 nabla af a in r left begin frac frac fr...