矩阵乘法
前提
两个矩阵相乘AB=C,A的列数要等于B的行数,否则无法相乘。
行列相乘
首先是最直接的行列相乘:
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nm} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
egin{bmatrix}c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
生成的项中
c
i
j
=
∑
l
=
1
m
a
i
l
b
l
j
c_{ij}=sum_{l=1}^ma_{il}b_{lj}
cij=∑l=1mailblj
即左边的一行乘右边的一列生成矩阵的一个元素。
由此也可以直接的看出AB与BA是不同的。
在看看前后维度的变化:A是nm,B是mh,生成的C是n*h。
列相乘
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nm} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
egin{bmatrix}c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
还是原来的运算,但是我们使用列的线性组合来理解。
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nm} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
left[ egin{array} {c| c | c | c | c} b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \ end{array}
ight]=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
left[ egin{array} {c| c | c | c | c} c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{ nh} \ end{array}
ight]
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
细分到每一列就是:
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nm} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
1
j
.
.
.
b
i
j
.
.
.
b
m
j
]
=
egin{bmatrix}b_{1j} \... \b_{ij} \... \b_{mj} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b1j...bij...bmj⎦⎥⎥⎥⎥⎤=
[
c
1
j
.
.
.
c
i
j
.
.
.
c
n
j
]
egin{bmatrix}c_{1j} \... \c_{ij} \... \c_{nj} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c1j...cij...cnj⎦⎥⎥⎥⎥⎤
即列之间的线性组合:
[
a
11
.
.
.
a
i
1
.
.
.
a
n
1
]
∗
b
1
j
+
.
.
.
+
egin{bmatrix}a_{11} \... \a_{i1} \... \a_{n1} \end{bmatrix}*b_{1j}+...+
⎣⎢⎢⎢⎢⎡a11...ai1...an1⎦⎥⎥⎥⎥⎤∗b1j+...+
[
a
1
j
.
.
.
a
i
j
.
.
.
a
n
j
]
∗
b
i
j
+
.
.
.
+
egin{bmatrix}a_{1j} \... \a_{ij} \... \a_{nj} \end{bmatrix}*b_{ij}+...+
⎣⎢⎢⎢⎢⎡a1j...aij...anj⎦⎥⎥⎥⎥⎤∗bij+...+
[
a
11
.
.
.
a
i
1
.
.
.
a
n
1
]
∗
b
m
j
=
egin{bmatrix}a_{11} \... \a_{i1} \... \a_{n1} \end{bmatrix}*b_{mj}=
⎣⎢⎢⎢⎢⎡a11...ai1...an1⎦⎥⎥⎥⎥⎤∗bmj=
[
c
1
j
.
.
.
c
i
j
.
.
.
c
n
j
]
egin{bmatrix}c_{1j} \... \c_{ij} \... \c_{nj} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c1j...cij...cnj⎦⎥⎥⎥⎥⎤
行相乘
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nm} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
egin{bmatrix}c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
同样的方法处理:
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
left[ egin{array} {c c c c c} a_{11} & ... & a_{1j} & ...& a_{1m} \ hline... & ... & ... & ...& ... \ hline a_{i1} &... & a_{ij} & ...& a_{im} \hline ... & ... &... & ...& ... \hline a_{n1} & ... & a_{nj} & ...& a_{nm} \ end{array}
ight]
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
left[ egin{array} {c c c c c} c_{11} & ... & c_{1j} & ...& c_{1h} \hline ... & ... & ... & ...& ... \hline c_{i1} &... & c_{ij} & ...& c_{ih} \hline ... & ... &... & ...& ... \hline c_{n1} & ... & c_{nj} & ...& c_{ nh} \ end{array}
ight]
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
细分到每一行就是B中行之间的线性组合:
[
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
]
egin{bmatrix}a_{i1} &... &a_{ij} &... &a_{im} \end{bmatrix}
[ai1...aij...aim]
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{m1} & ... & b_{mj} & ...& b_{mh} \end{bmatrix}=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
i
1
.
.
.
c
i
j
.
.
.
c
i
m
]
egin{bmatrix}c_{i1} &... &c_{ij} &... &c_{im} \end{bmatrix}
[ci1...cij...cim]
展开后有:
a
i
1
∗
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
]
+
.
.
.
+
a_{i1}*egin{bmatrix}b_{11} &... &b_{1j} &... &b_{1h} \end{bmatrix}+...+
ai1∗[b11...b1j...b1h]+...+
a
i
j
∗
[
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
]
+
.
.
.
+
a_{ij}*egin{bmatrix}b_{i1} &... &b_{ij} &... &b_{ih} \end{bmatrix}+...+
aij∗[bi1...bij...bih]+...+
a
i
m
∗
[
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
a_{im}*egin{bmatrix}b_{m1} &... &b_{mj} &... &b_{mh} \end{bmatrix}=
aim∗[bm1...bmj...bmh]=
[
c
i
1
.
.
.
c
i
j
.
.
.
c
i
m
]
egin{bmatrix}c_{i1} &... &c_{ij} &... &c_{im} \end{bmatrix}
[ci1...cij...cim]
列行相乘
这种方式并不那么直观,但在之前的基础上应该可以很好理解:
[
a
11
.
.
.
a
1
j
.
.
.
a
1
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
i
1
.
.
.
a
i
j
.
.
.
a
i
m
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n
1
.
.
.
a
n
j
.
.
.
a
n
m
]
left[ egin{array} {c| c | c | c | c} a_{11} & ... & a_{1j} & ...& a_{1m} \... & ... & ... & ...& ... \a_{i1} &... &a_{ij} & ...& a_{im} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{ nm} \ end{array}
ight]
⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1m...aim...anm⎦⎥⎥⎥⎥⎤
[
b
11
.
.
.
b
1
j
.
.
.
b
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
b
m
1
.
.
.
b
m
j
.
.
.
b
m
h
]
=
left[ egin{array} {c c c c c} b_{11} & ... & b_{1j} & ...& b_{1h} \hline ... & ... & ... & ...& ... \hline b_{i1} &... & b_{ij} & ...& b_{ih} \hline ... & ... &... & ...& ... \hline b_{m1} & ... & b_{mj} & ...& b_{ mh} \ end{array}
ight]=
⎣⎢⎢⎢⎢⎡b11...bi1...bm1...............b1j...bij...bmj...............b1h...bih...bmh⎦⎥⎥⎥⎥⎤=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
egin{bmatrix}c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
将列与行单独的拆开后有:
[
a
1
j
.
.
.
a
i
j
.
.
.
a
n
j
]
egin{bmatrix}a_{1j} \... \a_{ij} \... \a_{nj} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a1j...aij...anj⎦⎥⎥⎥⎥⎤
[
b
i
1
.
.
.
b
i
j
.
.
.
b
i
h
]
=
egin{bmatrix}b_{i1} &... &b_{ij} &... &b_{ih} \end{bmatrix}=
[bi1...bij...bih]=
[
c
^
11
.
.
.
c
^
1
j
.
.
.
c
^
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
^
i
1
.
.
.
c
^
i
j
.
.
.
c
^
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
^
n
1
.
.
.
c
^
n
j
.
.
.
c
^
n
h
]
egin{bmatrix} hat c_{11} & ... & hat c_{1j} & ...& hat c_{1h} \... & ... & ... & ...& ... \hat c_{i1} &... & hat c_{ij} & ...& hat c_{ih} \... & ... &... & ...& ... \hat c_{n1} & ... & hat c_{nj} & ...& hat c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c^11...c^i1...c^n1...............c^1j...c^ij...c^nj...............c^1h...c^ih...c^nh⎦⎥⎥⎥⎥⎤
这里有一个性质是对于得到的矩阵
[
c
^
11
.
.
.
c
^
1
j
.
.
.
c
^
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
^
i
1
.
.
.
c
^
i
j
.
.
.
c
^
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
^
n
1
.
.
.
c
^
n
j
.
.
.
c
^
n
h
]
egin{bmatrix} hat c_{11} & ... & hat c_{1j} & ...& hat c_{1h} \... & ... & ... & ...& ... \hat c_{i1} &... & hat c_{ij} & ...& hat c_{ih} \... & ... &... & ...& ... \hat c_{n1} & ... & hat c_{nj} & ...& hat c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c^11...c^i1...c^n1...............c^1j...c^ij...c^nj...............c^1h...c^ih...c^nh⎦⎥⎥⎥⎥⎤其所有的行向量都相互平行,所有的列向量也都相互平行。
合并之后有:
∑
l
=
1
m
sum_{l=1}^m
∑l=1m
[
a
1
l
.
.
.
a
i
l
.
.
.
a
n
l
]
egin{bmatrix}a_{1l} \... \a_{il} \... \a_{nl} \end{bmatrix}
⎣⎢⎢⎢⎢⎡a1l...ail...anl⎦⎥⎥⎥⎥⎤
[
b
l
1
.
.
.
b
l
j
.
.
.
b
l
h
]
=
egin{bmatrix}b_{l1} &... &b_{lj} &... &b_{lh} \end{bmatrix}=
[bl1...blj...blh]=
[
c
11
.
.
.
c
1
j
.
.
.
c
1
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
i
1
.
.
.
c
i
j
.
.
.
c
i
h
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
c
n
1
.
.
.
c
n
j
.
.
.
c
n
h
]
egin{bmatrix}c_{11} & ... & c_{1j} & ...& c_{1h} \... & ... & ... & ...& ... \c_{i1} &... & c_{ij} & ...& c_{ih} \... & ... &... & ...& ... \c_{n1} & ... & c_{nj} & ...& c_{nh} \end{bmatrix}
⎣⎢⎢⎢⎢⎡c11...ci1...cn1...............c1j...cij...cnj...............c1h...cih...cnh⎦⎥⎥⎥⎥⎤
c i j = ∑ l = 1 m a i l ∗ b l j c_{ij}=sum_{l=1}^ma_{il}*b_{lj} cij=∑l=1mail∗blj与行列相乘相符。
[ a 11 . . . a 1 j . . . a 1 h . . . . . . . . . . . . . . . a i 1 . . . a i j . . . a i h . . . . . . . . . . . . . . . a n 1 . . . a n j . . . a n h ] + egin{bmatrix}a_{11} & ... & a_{1j} & ...& a_{1h} \... & ... & ... & ...& ... \a_{i1} &... & a_{ij} & ...& a_{ih} \... & ... &... & ...& ... \a_{n1} & ... & a_{nj} & ...& a_{nh} \end{bmatrix}+ ⎣⎢⎢⎢⎢⎡a11...ai1...an1...............a1j...aij...anj...............a1h...aih...anh⎦⎥⎥⎥⎥⎤+ [ b 11 . . . b 1 j . . . b 1 h . . . . . . . . . . . . . . . b i 1 . . . b i j . . . b i h . . . . . . . . . . . . . . . b n 1 . . . b n j . . . b n h ] = egin{bmatrix}b_{11} & ... & b_{1j} & ...& b_{1h} \... & ... & ... & ...& ... \b_{i1} &... & b_{ij} & ...& b_{ih} \... & ... &... & ...& ... \b_{n1} & ... & b_{nj} & ...& b_{nh} \end{bmatrix}= ⎣⎢⎢⎢⎢⎡b11...bi1...bn1...............b1j...bij...bnj...............b1h...bih...bnh⎦⎥⎥⎥⎥⎤= [ a 11 + b 11 . . . a 1 j + b 1 j . . . a 1 h + b 1 h . . . . . . . . . . . . . . . a i 1 + b i 1 . . . a i j + b i j . . . a i h + b i h . . . . . . . . . . . . . . . a n 1 + b n 1 . . . a n j + b n j . . . a n n + b n h ] egin{bmatrix}a_{11}+b_{11} & ... & a_{1j}+b_{1j} & ...& a_{1h}+b_{1h} \... & ... & ... & ...& ... \a_{i1}+b_{i1} &... & a_{ij}+b_{ij} & ...& a_{ih}+b_{ih} \... & ... &... & ...& ... \a_{n1}+b_{n1} & ... & a_{nj}+b_{nj} & ...& a_{nn}+b_{nh} \end{bmatrix} ⎣⎢⎢⎢⎢⎡a11+b11...ai1+bi1...an1+bn1...............a1j+b1j...aij+bij...anj+bnj...............a1h+b1h...aih+bih...ann+bnh⎦⎥⎥⎥⎥⎤(矩阵相加)
分块运算
对于一些大的矩阵也可以进行矩阵的划分,化成几块来进行运算,但是划分之后的矩阵块也要符合乘法运算的条件(即块状的矩阵左边的列数等于右边的行数)。
[
A
11
A
12
A
21
A
22
]
[
B
11
B
12
B
21
B
22
]
=
[
A
11
B
11
+
A
12
B
21
A
11
B
12
+
A
12
B
22
A
21
B
11
+
A
22
B
21
A
21
B
12
+
A
22
B
22
]
left[ egin{array} {c | c} A_{11} & A_{12} \hline A_{21} & A_{22} \ end{array}
ight]left[ egin{array} {c | c} B_{11} & B_{12} \hline B_{21} & B_{22} \ end{array}
ight]=left[ egin{array} {c | c} A_{11} B_{11}+A_{12} B_{21} & A_{11} B_{12}+A_{12} B_{22} \hline A_{21} B_{11}+A_{22} B_{21} & A_{21} B_{12}+A_{22} B_{22} \ end{array}
ight]
[A11A21A12A22][B11B21B12B22]=[A11B11+A12B21A21B11+A22B21A11B12+A12B22A21B12+A22B22]
逆
A
−
1
A
=
E
=
A
A
−
1
A^{-1}A=E=AA^{-1}
A−1A=E=AA−1
(首先是方阵)可逆矩阵(非奇异矩阵)的左逆等于右逆,乘积为单位矩阵
奇异矩阵
首先看一下这个例子
[
1
3
2
6
]
egin{bmatrix}1&3\2&6\end{bmatrix}
[1236]它是否含有逆矩阵?
我们把逆矩阵看作对原矩阵的线性组合处理,那么显然我们找不到一种矩阵变化来将
[
1
3
2
6
]
egin{bmatrix}1&3\2&6\end{bmatrix}
[1236]变为单位矩阵(两行之间平行,两列之间也平行,无法转化为E的形式),所以有存在任意两行或两列平行的矩阵为奇异矩阵。
或者我们可以换一种定义:如果一个方阵没有逆,我们可以通过寻找一个非零向量X使得
A
X
=
0
AX=0
AX=0成立来描述。(线性相关性)比如上面的矩阵
[
1
3
2
6
]
egin{bmatrix}1&3\2&6\end{bmatrix}
[1236]对应的X是
[
3
−
1
]
egin{bmatrix}3\-1end{bmatrix}
[3−1]。
简单的证明一下:
假设
A
A
A存在逆矩阵,那么有
A
−
1
A
X
=
0
A^{-1}AX=0
A−1AX=0,即
X
=
0
X=0
X=0,与题目所给的条件矛盾。
求解非奇异矩阵(Gauss-Jordan)
现在我们有 [ 1 3 2 7 ] egin{bmatrix}1&3\2&7\end{bmatrix} [1237] [ a c b d ] = egin{bmatrix}a&c\b&d\end{bmatrix}= [abcd]= [ 1 0 0 1 ] egin{bmatrix}1&0\0&1\end{bmatrix} [1001]这个方程,我们的目的就是求出对应的a,b,c,d,由上面的乘法思想我们使用列向量来处理:
[ 1 3 2 7 ] egin{bmatrix}1&3\2&7\end{bmatrix} [1237] [ a b ] = egin{bmatrix}a\b\end{bmatrix}= [ab]= [ 1 0 ] egin{bmatrix}1\0\end{bmatrix} [10]和 [ 1 3 2 7 ] egin{bmatrix}1&3\2&7\end{bmatrix} [1237] [ c d ] = egin{bmatrix}c\d\end{bmatrix}= [cd]= [ 0 1 ] egin{bmatrix}0\1\end{bmatrix} [01]于是问题又变成了解方程组的形式了。(Gauss-Jordan)只不过是同时解多个方程组。
先看看这样的增广矩阵
[
1
3
1
0
2
7
0
1
]
left[egin{array} {c c | c c} 1&3&1&0\2&7&0&1\end{array}
ight]
[12371001]是一种
[
A
E
]
egin{bmatrix}A&E\end{bmatrix}
[AE]的形式,我们的目的是将其化成这样的
[
E
A
−
1
]
egin{bmatrix}E&A^{-1}\end{bmatrix}
[EA−1]形式,而实际我们的变换的过程就相当于
[
A
−
1
]
[A^{-1}]
[A−1]
[
A
E
]
egin{bmatrix}A&E\end{bmatrix}
[AE]
实际变化一下有:
[ 1 0 − 2 1 ] egin{bmatrix}1&0\-2&1\end{bmatrix} [1−201] [ 1 3 1 0 2 7 0 1 ] = left[egin{array} {c c | c c} 1&3&1&0\2&7&0&1\end{array} ight]= [12371001]= [ 1 3 1 0 0 1 − 2 1 ] left[egin{array} {c c | c c} 1&3&1&0\0&1&-2&1\end{array} ight] [10311−201]
[ 1 − 3 0 1 ] egin{bmatrix}1&-3\0&1\end{bmatrix} [10−31] [ 1 0 − 2 1 ] egin{bmatrix}1&0\-2&1\end{bmatrix} [1−201] [ 1 3 1 0 2 7 0 1 ] = left[egin{array} {c c | c c} 1&3&1&0\2&7&0&1\end{array} ight]= [12371001]= [ 1 0 7 − 3 0 1 − 2 1 ] left[egin{array} {c c | c c} 1&0&7&-3\0&1&-2&1\end{array} ight] [10017−2−31]
即: [ 7 − 3 − 2 1 ] egin{bmatrix}7&-3\-2&1\end{bmatrix} [7−2−31] [ 1 3 1 0 2 7 0 1 ] = left[egin{array} {c c | c c} 1&3&1&0\2&7&0&1\end{array} ight]= [12371001]= [ 1 0 7 − 3 0 1 − 2 1 ] left[egin{array} {c c | c c} 1&0&7&-3\0&1&-2&1\end{array} ight] [10017−2−31] ( [ A − 1 ] ([A^{-1}] ([A−1] [ A E ] = [ E A − 1 ] ) egin{bmatrix}A&E\end{bmatrix}=egin{bmatrix}E&A^{-1}\end{bmatrix}) [AE]=[EA−1])