矩阵【线性代数系列(二)】
对有n个未知数和m个方程的线性方程组:
a 11 x 1 + a 12 x 2 + . . . + a 1 n x n = b 1 a_{11}x_{1}+a_{12}x_2+...+a_{1n}x_n=b_1 a11x1+a12x2+...+a1nxn=b1
a 21 x 1 + a 22 x 2 + . . . + a 2 n x n = b 2 a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_{2} a21x1+a22x2+...+a2nxn=b2
. . . ... ...
a m 1 x 1 + a m 2 x 2 + . . . + a m n x n = b m a_{m1}x_1+a_{m2}x_2+...+a_{mn}x_n=b_{m} am1x1+am2x2+...+amnxn=bm
当 b 1 , b 2 , . . . , b m b_1,b_2,...,b_m b1,b2,...,bm不全为0时,线性方程组被称为n元非齐次线性方程组。
当 b 1 , b 2 , . . . , b m b_1,b_2,...,b_m b1,b2,...,bm全为0时,线性方程组被称为n元齐次线性方程组。
对n元齐次线性方程组, x 1 , x 2 , . . . x n = 0 x_1,x_2,...x_n=0 x1,x2,...xn=0一定是它的解,这个解叫做n元齐次线性方程组的零解。
n元齐次线性方程组一定有零解,但不一定有非零解。
m×n个数字组成的m行n列矩阵:
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a m 1 a m 2 . . . a m n ] \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} &... & a_{2n}\\ ...&... &...&... \\ a_{m1}&a_{m2}&...&a_{mn} \end{bmatrix} ⎣ ⎡a11a21...am1a12a22...am2............a1na2n...amn⎦ ⎤
被称为m×n矩阵。
当m=n时也被称为 n 阶矩阵 n阶矩阵 n阶矩阵或n阶方阵。
如果A和B是行数和列数都相同的矩阵,则称A与B是同型矩阵。
如果同型矩阵A和B对应位置的元素都相等,则称A与B相等。
元素都是实数的矩阵称为实矩阵,元素都是复数的矩阵称为复矩阵。
只有一行的矩阵称为 行矩阵,也称 行向量。
只有一列的矩阵称为 列矩阵,也称 列向量。
元素都是0的矩阵是 零矩阵 零矩阵 零矩阵,可简记为 o o o
对非齐次线性方程组:
a 11 x 1 + a 12 x 2 + . . . + a 1 n x n = b 1 a_{11}x_{1}+a_{12}x_2+...+a_{1n}x_n=b_1 a11x1+a12x2+...+a1nxn=b1
a 21 x 1 + a 22 x 2 + . . . + a 2 n x n = b 2 a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_{2} a21x1+a22x2+...+a2nxn=b2
. . . ... ...
a m 1 x 1 + a m 2 x 2 + . . . + a m n x n = b m a_{m1}x_1+a_{m2}x_2+...+a_{mn}x_n=b_{m} am1x1+am2x2+...+amnxn=bm
可以表示为矩阵:
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a m 1 a m 2 . . . a m n ] × [ x 1 x 2 . . . x n ] = [ b 1 b 2 . . . b n ] \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} &... & a_{2n}\\ ...&... &...&... \\ a_{m1}&a_{m2}&...&a_{mn} \end{bmatrix}×\begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n} \\ \end{bmatrix}=\begin{bmatrix} b_{1} \\ b_{2} \\ ... \\ b_{n} \\ \end{bmatrix} ⎣ ⎡a11a21...am1a12a22...am2............a1na2n...amn⎦ ⎤×⎣ ⎡x1x2...xn⎦ ⎤=⎣ ⎡b1b2...bn⎦ ⎤
其中,
第一个矩阵是 系数矩阵,第二个矩阵是 未知数矩阵,第三个矩阵是 常数项矩阵。
也可以写成
[ a 11 a 12 . . . a 1 n b 1 a 21 a 22 . . . a 2 n b 2 . . . . . . . . . . . . . . . a m 1 a m 2 . . . a m n b n ] × [ x 1 x 2 . . . x n 1 ] = [ 0 0 . . . 0 ] \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} &b_1\\ a_{21} & a_{22} &... & a_{2n} & b_2\\ ...&... &...&... & ... \\ a_{m1}&a_{m2}&...&a_{mn}&b_n \end{bmatrix}×\begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n}\\1\\ \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ ... \\ 0 \\ \end{bmatrix} ⎣ ⎡a11a21...am1a12a22...am2............a1na2n...amnb1b2...bn⎦ ⎤×⎣ ⎡x1x2...xn1⎦ ⎤=⎣ ⎡00...0⎦ ⎤
这种形式下,第一个矩阵被称为 增广矩阵。
Λ = [ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ] \Lambda= \begin{bmatrix} \lambda_1 & 0 & ... & 0 \\ 0 & \lambda_2 & ... & 0 \\ ... & ...& ...& ...\\ 0 & 0 & ... & \lambda_n \\ \end{bmatrix} Λ=⎣ ⎡λ10...00λ2...0............00...λn⎦ ⎤
像这样,从左上,到右下角直线上以外的元素都为0的矩阵,被称为 对角矩阵。简称 对角阵。对角阵也记作
Λ = d i a g ( λ 1 , λ 2 , . . . , λ n ) \Lambda=diag(\lambda_1,\lambda_2,...,\lambda_n) Λ=diag(λ1,λ2,...,λn)
特别的,当 λ 1 = λ 2 = . . . = λ n = 1 \lambda_1=\lambda_2=...=\lambda_n=1 λ1=λ2=...=λn=1时,矩阵如下:
E = [ 1 0 . . . 0 0 1 . . . 0 . . . . . . . . . 0 0 . . . 1 ] E= \begin{bmatrix} 1 & 0 & ... & 0 \\ 0 & 1 & ... & 0 \\ ... & ...& & ...\\ 0 & 0 & ... & 1 \\ \end{bmatrix} E=⎣ ⎡10...001...0.........00...1⎦ ⎤
这样的矩阵叫做 单位矩阵,简称单位阵。
单位矩阵的元可以表示为:
e i j = { 1 , 当 i = j 0 , 当 i ≠ j ( i , j = 1 , 2 , . . . , n ) e_{ij}=\left\{ \begin{aligned} 1 &,& 当\quad i=j\\ 0&,&当 \quad i≠j \end{aligned} \right.(i,j=1,2,...,n) eij={10,,当i=j当i=j(i,j=1,2,...,n)
两个同型矩阵可以相加,相加方式为对应位置的数字之间相加。
矩阵的加法是满足交换律的。
数量乘法(数乘)
使用一个常数乘以一个矩阵,即使用该常数乘以矩阵中的每一个元素。
矩阵的数乘满足乘法的交换律和结合律,以及分配率。
以 C = A B C=AB C=AB为例,则A、B需要满足A的列数等于B的行数。设A是m×s矩阵,B是s×n矩阵,则C是一个m×n矩阵。则
c i j = ∑ k = 1 s a i k b k j = a i 1 b 1 j + a i 2 b 2 j + . . . + a i s b s j c_{ij}=\sum_{k=1}^sa_{ik}b_{kj}=a_{i1}b_{1j}+a_{i2}b_{2j}+...+a_{is}b_{sj} cij=∑k=1saikbkj=ai1b1j+ai2b2j+...+aisbsj
矩阵的乘法不满足交换律。但是满足结合律和分配率。
为了方便记忆,这里引入实际情景,
以多元回归方程的矩阵形式为例:
其中,对 X i j X_{ij} Xij,不同的 i i i 表示不同的特征,不同的j表述不同的样本。
即 X i j X_{ij} Xij所在的矩阵的第一列是为引入常数项准备的,后边每一列对应一个特征,而每一行表示一个样本, β 1 \beta1 β1表示截距项, β 2 \beta2 β2~ β k \beta k βk则表示每个特征的回归系数, μ i \mu_i μi表示残差项。 x i j x_{ij} xij所在的矩阵与 β i \beta_i βi所在的矩阵相乘,得到的是一个n行1列的矩阵,即与 β i \beta_{i} βi所在的矩阵有着相同的shape。
[ Y 1 Y 2 . . . Y n ] = [ 1 X 21 X 31 . . . X k 1 1 X 22 X 32 . . . X k 2 . . . . . . . . . . . . . . . 1 X 2 n X n . . . X k n ] [ β 1 β 2 . . . β k ] + [ u 1 u 2 . . . u n ] \begin{gathered} \begin{bmatrix}Y_1 \\ Y_2 \\ ... \\ Y_n \end{bmatrix}= \begin{bmatrix} 1 & X_{21} & X_{31}& ... & X_{k1} \\ 1 & X_{22} & X_{32}& ... & X_{k2} \\ ... & ... & ... & ... & ... \\ 1 & X_{2n} & X_{n}& ... & X_{kn} \end{bmatrix} \begin{bmatrix} β_1 \\ β_2 \\ ... \\ β_k \end{bmatrix}+ \begin{bmatrix} u_1 \\ u_2 \\ ... \\ u_n \end{bmatrix} \end{gathered} ⎣ ⎡Y1Y2...Yn⎦ ⎤=⎣ ⎡11...1X21X22...X2nX31X32...Xn............Xk1Xk2...Xkn⎦ ⎤⎣ ⎡β1β2...βk⎦ ⎤+⎣ ⎡u1u2...un⎦ ⎤
= [ 1 × β 1 + X 21 β 2 + X 31 β 3 + . . . + X k 1 β k + μ 1 1 × β 1 + X 22 β 2 + X 32 β 3 + . . . + X k 2 β k + μ 2 . . . 1 × β 1 + X 2 n β 2 + X 3 n β 3 + . . . + X k n β k + μ n ] = \begin{gathered} \begin{bmatrix} 1×\beta_1+X_{21}\beta_2+X_{31}\beta_3+...+X_{k1}\beta_k+\mu_1 \\ 1×\beta_1+X_{22}\beta_2+X_{32}\beta_3+...+X_{k2}\beta_k+\mu_2 \\ ...\\ 1×\beta_1+X_{2n}\beta_2+X_{3n}\beta_3+...+X_{kn}\beta_k+\mu_n \\ \end{bmatrix} \end{gathered} =⎣ ⎡1×β1+X21β2+X31β3+...+Xk1βk+μ11×β1+X22β2+X32β3+...+Xk2βk+μ2...1×β1+X2nβ2+X3nβ3+...+Xknβk+μn⎦ ⎤
作为简化,用一个行矩阵乘以一个列矩阵,即求该矩阵的第一个数字的过程,即
[ 1 X 21 X 31 . . . X k 1 ] [ β 1 β 2 β 3 . . . β k ] = [ 1 × β 1 + X 21 β 2 + X 31 β 3 + . . . + X k 1 β k ] \begin{gathered} \begin{bmatrix} 1 & X_{21} & X_{31}& ... & X_{k1}\end{bmatrix} \begin{bmatrix} \beta_1 \\ \beta_2 \\ \beta_3 \\ ... \\ \beta_k \end{bmatrix} \end{gathered}=\begin{gathered} \begin{bmatrix} 1×\beta_1+X_{21}\beta_2+X_{31}\beta_3+...+X_{k1}\beta_k\end{bmatrix} \end{gathered} [1X21X31...Xk1]⎣ ⎡β1β2β3...βk⎦ ⎤=[1×β1+X21β2+X31β3+...+Xk1βk]
如果交换两个矩阵位置再相乘,则会得到下边结果:
[ β 1 β 2 β 3 . . . β k ] [ 1 X 21 X 31 . . . X k 1 ] = [ β 1 × 1 β 2 X 21 β 3 X 31 . . . β k X k 1 β 1 × 1 β 2 X 22 β 3 X 32 . . . β k X k 2 . . . . . . . . . . . . . . . β 1 × 1 β 2 X 2 n β 3 X 3 n . . . β k X k n ] \begin{gathered} \begin{bmatrix} \beta_1 \\ \beta_2 \\ \beta_3\\... \\ \beta_k \end{bmatrix} \begin{bmatrix} 1 & X_{21} & X_{31}& ... & X_{k1}\end{bmatrix}= \begin{bmatrix} \beta_1× 1 &\beta_2X_{21} & \beta_3X_{31}&...&\beta_kX_{k1}\\ \beta_1× 1 &\beta_2X_{22} & \beta_3X_{32}&...&\beta_kX_{k2}\\ ...& ...& ...& ... & ...\\ \beta_1× 1&\beta_2X_{2n} & \beta_3X_{3n}&...&\beta_kX_{kn} \end{bmatrix} \end{gathered} ⎣ ⎡β1β2β3...βk⎦ ⎤[1X21X31...Xk1]=⎣ ⎡β1×1β1×1...β1×1β2X21β2X22...β2X2nβ3X31β3X32...β3X3n............βkXk1βkXk2...βkXkn⎦ ⎤
当矩阵B有多列时。
当矩阵B有多列时,即使用矩阵A对矩阵B的每一列做上述情景的运算,并在对应位置处生成多列即可。
有矩阵的乘法,就可以定义矩阵的幂:
当A是n阶方阵时, A A A与自身的乘法可以用幂的形式来表示,如 A k A^k Ak。
A + B = B + A A+B=B+A A+B=B+A
( A + B ) + C = A + ( B + C ) (A+B)+C=A+(B+C) (A+B)+C=A+(B+C)
( λ μ ) A = λ ( μ A ) (\lambda \mu)A=\lambda(\mu A) (λμ)A=λ(μA)
( λ + μ ) A = λ A + μ A (\lambda+\mu)A=\lambda A+\mu A (λ+μ)A=λA+μA
λ ( A + B ) = λ A + λ B \lambda(A+B)=\lambda A + \lambda B λ(A+B)=λA+λB
( A B ) C = A ( B C ) (AB)C=A(BC) (AB)C=A(BC)
λ ( A B ) = ( λ A ) B = A ( λ B ) \lambda (AB)=(\lambda A)B=A(\lambda B) λ(AB)=(λA)B=A(λB)
A ( B + C ) = A B + A C A(B+C)=AB+AC A(B+C)=AB+AC ( B + C ) A = B A + C A (B+C)A=BA+CA (B+C)A=BA+CA
对单位矩阵有:
E m A m × n = A m × n E n = A E_mA_{m×n}=A_{m×n}E_n=A EmAm×n=Am×nEn=A
对矩阵的幂:
A k A l = A k + l A^kA^l=A^{k+l} AkAl=Ak+l
只有当 A B AB AB中A与B可交换位置时(可交换位置不限于两者相等),才有 ( A B ) k = A k B k (AB)^k=A^kB^k (AB)k=AkBk。
转置即行列互换。
矩阵的转置满足以下运算规律:
( A T ) T = A (A^T)^T=A (AT)T=A
( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT
( λ A ) T = λ A T (\lambda A)^T=\lambda A^T (λA)T=λAT
( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT
设A为n阶方阵,如果满足 A T = A A^T=A AT=A,即 a i j = a j i a_{ij}=a_{ji} aij=aji,则A被称为 对称矩阵,简称对矩阵。对称矩阵中以对角线为对称轴的元素相等。
矩阵A的行列式记作 ∣ A ∣ |A| ∣A∣或 d e t A detA detA。
不是所有的矩阵都可以变为行列式,方阵才可以。
由矩阵确定的行列式在计算时满足:
∣ A T ∣ = ∣ A ∣ |A^T|=|A| ∣AT∣=∣A∣
∣ λ A ∣ = λ n ∣ A ∣ |\lambda A|=\lambda^n |A| ∣λA∣=λn∣A∣
∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB|=|A||B| ∣AB∣=∣A∣∣B∣
行列式 ∣ A ∣ |A| ∣A∣的各个元素的代数余子式 A i j A_{ij} Aij构成的如下矩阵,
A ∗ = [ A 11 A 21 . . . A n 1 A 12 A 22 . . . A n 2 . . . . . . . . . . . . A 1 n A 2 n . . . A n n ] A*=\begin{bmatrix} A_{11}&A_{21}&...&A_{n1} \\ A_{12}&A_{22}&...&A_{n2} \\ ...&...&...&... \\ A_{1n}&A_{2n}&...&A_{nn} \\ \end{bmatrix} A∗=⎣ ⎡A11A12...A1nA21A22...A2n............An1An2...Ann⎦ ⎤
矩阵 A ∗ A* A∗称为矩阵A的 伴随矩阵。简称伴随阵。
矩阵 A A A与它的伴随矩阵 A ∗ A* A∗满足:
A A ∗ = A ∗ A = ∣ A ∣ E AA*=A*A=|A|E AA∗=A∗A=∣A∣E
对等式:
[ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a m 1 a m 2 . . . a m n ] × [ x 1 x 2 . . . x n ] = [ y 1 y 2 . . . y n ] \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} &... & a_{2n}\\ ...&... &...&... \\ a_{m1}&a_{m2}&...&a_{mn} \end{bmatrix}×\begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n} \\ \end{bmatrix}=\begin{bmatrix} y_{1} \\ y_{2} \\ ... \\ y_{n} \\ \end{bmatrix} ⎣ ⎡a11a21...am1a12a22...am2............a1na2n...amn⎦ ⎤×⎣ ⎡x1x2...xn⎦ ⎤=⎣ ⎡y1y2...yn⎦ ⎤
如果将其看作是一个对 X i j X_{ij} Xij所在矩阵的变换过程,这样的变换被称作从变量 [ x 1 , x 2 , . . . , x n ] [x_1, x_2,...,x_n] [x1,x2,...,xn]到变量 [ y 1 , y 2 , . . . , y n ] [y_1, y_2,...,y_n] [y1,y2,...,yn]的 线性变换。其中 a i j a_{ij} aij是常数。
其中, a i j a_{ij} aij所构成的矩阵被称为 系数矩阵。
矩阵的线性变换在实际应用中是非常重要的。
系数矩阵确定,变换关系就确定。
下边给出几个典型示例:
①对角矩阵对 [ x 1 , x 2 , . . . x n ] [x_1,x_2,...x_n] [x1,x2,...xn]的线性变换
[ λ 1 0 . . . 0 0 λ 2 . . . 0 . . . . . . . . . . . . 0 0 . . . λ n ] × [ x 1 x 2 . . . x n ] = [ λ 1 x 1 λ 2 x 2 . . . λ n x n ] \begin{bmatrix} \lambda_{1} & 0 & ... & 0 \\ 0 & \lambda_{2} &... & 0\\ ... & ... &...&... \\ 0 & 0 &...& \lambda_n \end{bmatrix}×\begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n} \\ \end{bmatrix}=\begin{bmatrix} \lambda_{1}x_1 \\ \lambda_{2}x_2 \\ ... \\ \lambda_{n}x_n \\ \end{bmatrix} ⎣ ⎡λ10...00λ2...0............00...λn⎦ ⎤×⎣ ⎡x1x2...xn⎦ ⎤=⎣ ⎡λ1x1λ2x2...λnxn⎦ ⎤
②单位矩阵对应的线性变换叫做恒等变换。(单位矩阵的矩阵乘法中的作用类似于1)
[ 1 0 . . . 0 0 1 . . . 0 . . . . . . . . . . . . 0 0 . . . 1 ] × [ x 1 x 2 . . . x n ] = [ x 1 x 2 . . . x n ] \begin{bmatrix} 1 & 0 & ... & 0 \\ 0 & 1 &... & 0\\ ... & ... &...&... \\ 0 & 0 &...& 1 \end{bmatrix}×\begin{bmatrix} x_{1} \\ x_{2} \\ ... \\ x_{n} \\ \end{bmatrix}=\begin{bmatrix} x_1 \\ x_2 \\ ... \\ x_n \\ \end{bmatrix} ⎣ ⎡10...001...0............00...1⎦ ⎤×⎣ ⎡x1x2...xn⎦ ⎤=⎣ ⎡x1x2...xn⎦ ⎤
③把向量 A = [ x y ] A=\begin{bmatrix}x & y\end{bmatrix} A=[xy]沿x轴正方向旋转 φ \varphi φ度。得到向量 B = [ X Y ] B=\begin{bmatrix}X & Y\end{bmatrix} B=[XY]
[ c o s φ − s i n φ s i n φ c o s φ ] × [ x y ] = [ X Y ] \begin{bmatrix} cos \varphi & -sin \varphi \\ sin \varphi & cos \varphi\\ \end{bmatrix}× \begin{bmatrix} x \\ y \\ \end{bmatrix}=\begin{bmatrix} X \\ Y \\ \end{bmatrix} [cosφsinφ−sinφcosφ]×[xy]=[XY]
这也是PCA降维算法的核心思想的一部分。
假设A是有两个特征的样本集,以三个样本为例,则表达式如下:
[ c o s φ − s i n φ s i n φ c o s φ ] × [ x 1 x 2 x 3 y 1 y 2 y 3 ] = [ X 1 X 2 X 3 Y 1 Y 2 Y 3 ] \begin{bmatrix} cos \varphi & -sin \varphi \\ sin \varphi & cos \varphi\\ \end{bmatrix}× \begin{bmatrix} x_1 & x_2 & x_3\\ y_1 & y_2 & y_3\\ \end{bmatrix}=\begin{bmatrix} X_1 & X_2 & X_3\\ Y_1 & Y_2 & Y_3\\ \end{bmatrix} [cosφsinφ−sinφcosφ]×[x1y1x2y2x3y3]=[X1Y1X2Y2X3Y3]
对n阶矩阵A,如果存在n阶矩阵B,使 A B = B A = E AB=BA=E AB=BA=E,则称矩阵A是可逆的。矩阵B是矩阵A的逆矩阵。简称逆阵。
如果矩阵A是可逆的,那么A的逆矩阵是唯一的唯一的。
矩阵A的逆矩阵可以记作 A − 1 A^{-1} A−1。
定理一
若矩阵A可逆,则 ∣ A ∣ ≠ 0 |A|≠0 ∣A∣=0。
定理二
如果 ∣ A ∣ ≠ 0 |A|≠0 ∣A∣=0,则矩阵A可逆,且
A − 1 = 1 ∣ A ∣ A ∗ A^{-1}=\frac{1}{|A|}A* A−1=∣A∣1A∗
当|A|=0时,称为奇异矩阵,否则称为非奇异矩阵。也就是说,奇异矩阵是非可逆矩阵,而非奇异矩阵据说可逆矩阵。所以可逆矩阵的充分必要条件是, ∣ A ∣ ≠ 0 |A|≠0 ∣A∣=0。
所以若A可逆,则A满足:
① ( A − 1 ) − 1 = A (A^{-1})^-1=A (A−1)−1=A
② ( λ A ) − 1 = 1 λ A − 1 (\lambda A)^{-1}=\frac{1}{\lambda}A^{-1} (λA)−1=λ1A−1
③ ( A B ) − 1 = B − 1 A − 1 (AB)^{-1}=B^{-1}A^{-1} (AB)−1=B−1A−1
对有n个未知数和n个线性方程的线性方程组:
a 11 x 1 + a 12 x 2 + . . . + a 1 n x n = b 1 a_{11}x_{1}+a_{12}x_2+...+a_{1n}x_n=b_1 a11x1+a12x2+...+a1nxn=b1
a 21 x 1 + a 22 x 2 + . . . + a 2 n x n = b 2 a_{21}x_1+a_{22}x_2+...+a_{2n}x_n=b_{2} a21x1+a22x2+...+a2nxn=b2
. . . ... ...
a n 1 x 1 + a n 2 x 2 + . . . + a n n x n = b n a_{n1}x_1+a_{n2}x_2+...+a_{nn}x_n=b_{n} an1x1+an2x2+...+annxn=bn
克拉默法则:
如果其系数矩阵A的行列式的值不为0,即
∣ A ∣ = ∣ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a n 1 a n 2 . . . a n n ∣ ≠ 0 |A|= \begin{vmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} &... & a_{2n}\\ ...&... &...&... \\ a_{n1}&a_{n2}&...&a_{nn} \end{vmatrix}≠0 ∣A∣=∣ ∣a11a21...an1a12a22...an2............a1na2n...ann∣ ∣=0
则方程组有唯一解:
x j = ∣ A j ∣ ∣ A ∣ x_j=\frac{|A_j|}{|A|} xj=∣A∣∣Aj∣
其中A_j是系数矩阵A中第j列用方程组右端的常数项代替后得到的n阶矩阵。
对于行数和列数较多的矩阵,可以使用分块法将大矩阵分割为小矩阵。每一个小矩阵称为A的 子块,以子块为元素的矩阵称为分块矩阵。分块的方式自由多样。具体不再过多赘述。
可以使用numpy库的mat()方法创建简单矩阵。
创建矩阵时,参数可以采用字符串形式传入,数据之间用空格隔开,行之间用引号隔开。
也可以将numpy数组转化为矩阵。
import numpy as np
# 1.创建一个2×2的矩阵
a1 = np.mat("1 2;3 4")
print(a1)
print("==========================")
# 2.创建一个3×3的矩阵
a2 = np.mat("1 2 3;4 5 6;7 8 9")
print(a2)
print("==========================")
# 3.使用numpy数组创建矩阵
a3 = np.mat(np.random.randint(1, 100, size=(5, 5)))
print(a3)
print("==========================")
print(type(a1))
print(type(a2))
print(type(a3))
创建全零矩阵和全一矩阵的代码如下:
# 全零矩阵
m = np.mat(np.zeros((5, 5)))
print(m)
# 全一矩阵
n = np.mat(np.ones((4, 5), dtype='i8'))
print(n)
创建对角矩阵和单位矩阵的代码如下:
# 对角矩阵
a = [1, 2, 3, 4, 5]
m = np.mat(np.diag(a))
print(m)
print("==================================")
# 单位矩阵
n = np.mat(np.eye(5, dtype='i8'))
print(n)
m1 = np.mat([[3, 4], [6, 12], [9, 20]])
print(m1)
print("=======================")
print(m1 + 2)
print("=======================")
print(m1 - 2)
print("=======================")
print(m1 * 2)
print("=======================")
print(m1 / 2)
同型矩阵才能相加,第一个矩阵的列数等于第二个矩阵的行数才能相乘,这一点一定要遵守。如果不是同型矩阵而相加,也有可能不会报错,比如m1+[[3,4]]此处要格外留意。
m1 = np.mat([[3, 4], [6, 12], [9, 20]])
m2 = np.mat([[3, 4], [6, 12]])
print("==========m1===========:")
print(m1)
print("==========m2===========:")
print(m2)
print("======= m1 + m1 =======:")
print(m1 + m1)
print("======= m1 * m2 =======:")
print(m1 * m2)
# 矩阵转置
m = np.mat([[3, 4], [6, 12], [9, 20]])
print(m)
print("====================")
print(m.T)
m = np.mat("1 3 3;4 5 6;7 12 9")
print(m)
print("===========逆矩阵==========")
print(m.I)
本次分享就到这里,小啾感谢您的关注与支持!
꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ꧔ꦿ