• 主页
  • 杂谈
所有文章

  • 主页
  • 杂谈

一个程序员的数学素养(3)线性数学

2018-12-22

一、概论

线性代数,实用,普适性强,比高数更难。

一个问题,一旦无法用线性代数解决的,可能就是无法解决的。非线性的容易进入混沌领域,尽量把非线性问题转换为线性问题。

  • 狭义相对论,洛伦兹变换
  • 电磁场张量
  • 量子力学

二、行列式

定义

n阶行列式,是所有取自不同行不同列的n个元素的乘积的代数和。用τ(j1j2…jn)表示该排列的逆序数,当偶排列时为正。

∣a11a12⋯a1na21a22⋯a2n⋮⋮⋮an1an2⋯ann∣=∑j1j2⋯jn(−1)τ(j1j2⋯jn)a1j1a2j2⋯anjn\begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{vmatrix} = \sum_{j_1j_2 \cdots j_n}(-1)^{\tau (j_1j_2 \cdots j_n)}a_{1j_1}a_{2j_2} \cdots a_{nj_n} ​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​​a​11​​​a​21​​​⋮​a​n1​​​​​​a​12​​​a​22​​​⋮​a​n2​​​​​⋯​⋯​​⋯​​​a​1n​​​a​2n​​​⋮​a​nn​​​​​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​=∑​j​1​​j​2​​⋯j​n​​​​(−1)​τ(j​1​​j​2​​⋯j​n​​)​​a​1j​1​​​​a​2j​2​​​​⋯a​nj​n​​​​

行列式性质

  • 转置后值不变
  • 两行(列)互换位置,值变号
  • 某行(列)有公因子k可提出行列式记号外
  • 某行(列)是两个元素的和,可以拆成两个行列式之和
  • 某行(列)的k倍加到另一行(列),值不变
  • 值等于它的任何一行(列)元素,与其对应的代数余子式乘积之和

常用公式

1、上下三角形行列式的值等于主对角线元素的乘积

∣a11a12⋯a1na22⋯a2n⋱⋮ann∣=∣a11a21a22⋮⋮⋱an1an2⋯ann∣=a1j1a2j2⋯anjn \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ & a_{22} & \cdots & a_{2n} \\ & & \ddots & \vdots \\ & & & a_{nn} \\ \end{vmatrix}= \begin{vmatrix} a_{11} & & & \\ a_{21} & a_{22} & & \\ \vdots & \vdots & \ddots & \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{vmatrix}= a_{1j_1}a_{2j_2} \cdots a_{nj_n} ​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​​a​11​​​​​​​​​a​12​​​a​22​​​​​​​⋯​⋯​⋱​​​​a​1n​​​a​2n​​​⋮​a​nn​​​​​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​=​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​​a​11​​​a​21​​​⋮​a​n1​​​​​​​a​22​​​⋮​a​n2​​​​​​​⋱​⋯​​​​​​a​nn​​​​​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​=a​1j​1​​​​a​2j​2​​​​⋯a​nj​n​​​​

2、特殊的拉普拉斯展开式

如果A和B分别是m和n阶矩阵,有

∣A∗OB∣=∣AO∗B∣=∣A∣∣B∣ \begin{vmatrix} A & * \\ O & B \\ \end{vmatrix}= \begin{vmatrix} A & O \\ * & B \\ \end{vmatrix}=|A||B| ​∣​∣​∣​∣​∣​∣​​​A​O​​​​∗​B​​​∣​∣​∣​∣​∣​∣​​=​∣​∣​∣​∣​∣​∣​​​A​∗​​​​O​B​​​∣​∣​∣​∣​∣​∣​​=∣A∣∣B∣

克莱姆法则(Cramer)

含有n个未知数的n个线性方程组,

{a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a2nxn=b2......an1x1+an2x2+...+annxn=bn\begin{cases} a_{11}x_1 + a_{12}x_2 + ... +a_{1n}x_n = b_1 \\ a_{21}x_1 + a_{22}x_2 + ... +a_{2n}x_n = b_2 \\ ...... \\ a_{n1}x_1 + a_{n2}x_2 + ... +a_{nn}x_n = b_n \\ \end{cases}​⎩​⎪​⎪​⎪​⎪​⎪​⎪​⎨​⎪​⎪​⎪​⎪​⎪​⎪​⎧​​​a​11​​x​1​​+a​12​​x​2​​+...+a​1n​​x​n​​=b​1​​​a​21​​x​1​​+a​22​​x​2​​+...+a​2n​​x​n​​=b​2​​​......​a​n1​​x​1​​+a​n2​​x​2​​+...+a​nn​​x​n​​=b​n​​​​​

若线性方程组的系数行列式不为0,

D=∣a11a12⋯a1na21a22⋯a2n⋮⋮⋮an1an2⋯ann∣≠0D=\begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{vmatrix} \neq 0D=​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​​a​11​​​a​21​​​⋮​a​n1​​​​​​a​12​​​a​22​​​⋮​a​n2​​​​​⋯​⋯​​⋯​​​a​1n​​​a​2n​​​⋮​a​nn​​​​​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​≠0

则它的解可以用n阶行列式表示

x1=D1D,x2=D2D,...,xn=DnD,x_1=\dfrac{D_1}{D},x_2=\dfrac{D_2}{D},...,x_n=\dfrac{D_n}{D},x​1​​=​D​​D​1​​​​,x​2​​=​D​​D​2​​​​,...,x​n​​=​D​​D​n​​​​,

D(j)是将D中的第j列元素换成方程组右端的常数项得到的行列式,即

Dj=∣a11⋯a1,j−1b1a1,j+1⋯a1na21⋯a2,j−1b2a2,j+1⋯a2n⋮⋮⋮⋮⋮an1⋯an,j−1bnan,j+1⋯ann∣D_j=\begin{vmatrix} a_{11} & \cdots & a_{1,j-1} & b_1 & a_{1,j+1} & \cdots & a_{1n} \\ a_{21} & \cdots & a_{2,j-1} & b_2 & a_{2,j+1} & \cdots & a_{2n} \\ \vdots & & \vdots & \vdots & \vdots & & \vdots \\ a_{n1} & \cdots & a_{n,j-1} & b_n & a_{n,j+1} & \cdots & a_{nn} \\ \end{vmatrix}D​j​​=​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​​a​11​​​a​21​​​⋮​a​n1​​​​​​⋯​⋯​​⋯​​​a​1,j−1​​​a​2,j−1​​​⋮​a​n,j−1​​​​​b​1​​​b​2​​​⋮​b​n​​​​​a​1,j+1​​​a​2,j+1​​​⋮​a​n,j+1​​​​​⋯​⋯​​⋯​​​a​1n​​​a​2n​​​⋮​a​nn​​​​​∣​∣​∣​∣​∣​∣​∣​∣​∣​∣​​

三、矩阵

定义

由m×n个数排成m行n列的数表,称为m行n列矩阵。

A=[a11a12⋯a1na21a22⋯a2n⋮⋮⋮am1am2⋯amn]A=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}A=​⎣​⎢​⎢​⎢​⎢​⎡​​​a​11​​​a​21​​​⋮​a​m1​​​​​​a​12​​​a​22​​​⋮​a​m2​​​​​⋯​⋯​​⋯​​​a​1n​​​a​2n​​​⋮​a​mn​​​​​⎦​⎥​⎥​⎥​⎥​⎤​​

其中,aija_ija​i​​j表示矩阵第i行第j列的元素,称为矩阵A的(i,j)元。

特殊矩阵

  • 只有一行元素,称为行矩阵
  • 只有一列元素,称为列矩阵
  • 元素都为0,称为零矩阵
  • 行数和列数n相同,称为n阶方阵
  • n阶方阵主对角线外的元素全部为0,称为对角方阵,如对角线上元素全部为1,称为单位矩阵。

矩阵的运算

设矩阵A=(aij)m×s,B=(bij)s×nA=(a_{ij})_{m \times s},B=(b_{ij})_{s \times n}A=(a​ij​​)​m×s​​,B=(b​ij​​)​s×n​​,则规定矩阵A与矩阵B的乘积是一个m*n的矩阵C=(cij)m×nC=(c_{ij})_{m \times n}C=(c​ij​​)​m×n​​,其中

cij=ai1b1j+ai2b2j+⋯+aisbsj=∑k=1saikbkj(i=1,2,...,m;j=1,2,...,n)c_{ij}=a_{i1}b_{1j}+a_{i2}b_{2j}+ \cdots + a_{is}b_{sj}= \sum_{k=1}^s a_{ik}b_{kj} (i=1,2,...,m;j=1,2,...,n)c​ij​​=a​i1​​b​1j​​+a​i2​​b​2j​​+⋯+a​is​​b​sj​​=∑​k=1​s​​a​ik​​b​kj​​(i=1,2,...,m;j=1,2,...,n)
  • 加法是交换律和结合律
  • 数和矩阵相乘有结合律、分配律
  • 矩阵相乘,只有当左矩阵的列数等于右矩阵的行数时才能相乘。没有交换律,有结合律

矩阵的转置

将m×n的矩阵A=(aij)m×nA=(a_{ij})_{m \times n}A=(a​ij​​)​m×n​​的行换成同序数的列得到的一个n×m矩阵,称为A的转置矩阵,记作ATA^TA​T​​

有以下规律:
1、(AT)T=A(A^T)^T=A(A​T​​)​T​​=A

2、(A+B)T=AT+BT(A+B)^T=A^T+B^T(A+B)​T​​=A​T​​+B​T​​

3、(λA)T=λAT(\lambda A)^T=\lambda A^T(λA)​T​​=λA​T​​

4、(AB)T=BTAT(AB)^T=B^T A^T(AB)​T​​=B​T​​A​T​​

方阵的行列式

由n阶方阵A的元素构成的行列式,称为方阵A的行列式,记为|A|。

运算规律如下:

1、∣AT∣=∣A∣|A^T|=|A|∣A​T​​∣=∣A∣

2、∣λT∣=λn∣A∣|\lambda ^T|= \lambda^n |A|∣λ​T​​∣=λ​n​​∣A∣

3、∣AB∣=∣A∣∣B∣|AB|= |A||B|∣AB∣=∣A∣∣B∣

当方阵的行列式|A|不等于0,称A为非奇异矩阵,否则是奇异矩阵。奇异矩阵的秩不是满秩。

逆矩阵和伴随矩阵

设A为n阶矩阵,若存在另一个n阶矩阵B,使得: AB=BA=E(单位矩阵),则我们称B是A的逆矩阵,而A则被称为可逆矩阵。

设A为n阶矩阵,记

A∗=[A11A21⋯An1A12A22⋯An2⋮⋮⋮a1na2n⋯ann]A^*=\begin{bmatrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & & \vdots \\ a_{1n} & a_{2n} & \cdots & a_{nn} \\ \end{bmatrix}A​∗​​=​⎣​⎢​⎢​⎢​⎢​⎡​​​A​11​​​A​12​​​⋮​a​1n​​​​​​A​21​​​A​22​​​⋮​a​2n​​​​​⋯​⋯​​⋯​​​A​n1​​​A​n2​​​⋮​a​nn​​​​​⎦​⎥​⎥​⎥​⎥​⎤​​

其中,

AijA_{ij}A​ij​​是|A|的元素aija_{ij}a​ij​​的代数余子式,A∗A^*A​∗​​称为A的伴随矩阵。

有AA∗=ATA=∣A∣EAA^*=A^T A=|A|EAA​∗​​=A​T​​A=∣A∣E,则n阶方阵A可逆的充分必要条件是|A|不等于0,且有A−1=1∣A∣A∗A^{-1}=\dfrac{1}{|A|}A^*A​−1​​=​∣A∣​​1​​A​∗​​

奇异矩阵不可逆。

矩阵的秩

矩阵中的最大的不相关的向量的个数,就叫秩。

设在m×n的矩阵A中,任取k行k列(k<=min{m,n}),位于这些行列交叉处的k^2个元素按照原来次序构成的k阶行列式,称为A的k阶子式。A中有不等于0的r阶子式D,且所有的r+1阶子式(存在的话)全为0,则D称为矩阵A的最高阶非0子式,数r称为矩阵A的秩,记作R(A)。

矩阵的初等变换

有3种变换称为矩阵的初等行(列)变换,初等变换是可逆的

  • 对调矩阵的两行(列)
  • 某一行(列)所有元素乘以数k
  • 把某一行(列)所有元素的k倍加到另一行(列)对应元素上去

矩阵A经过有限次初等行(列)变换变成矩阵B,则称矩阵A与矩阵B行(列)等价。经过有限次行变换或列变换,则称矩阵A与矩阵B等价,记作A~B。

初等矩阵:

由单位矩阵E经过一次初等变换得到的方阵称为初等矩阵。

相关定理:

  • 设A是一个m×n的矩阵,对A施行一次初等行变换,相当于用相应的m阶初等矩阵左乘A。对A施行一次初等列变换,相当于用相应的n阶初等矩阵右乘A。
  • 方阵A可逆的充分必要条件是A通过初等行(列)变换可以变成E。
  • 对于方阵A,若(A,E)通过初等行变换可变成 (E,X),则A可逆,且A的逆矩阵为X。

线性方程组的解

实质上是消元法可解线性方程组。

利用系数矩阵和增广矩阵的秩的关系,可以方便的讨论线性方程组是否有解,以及有解时是唯一解还是无穷多解等问题。

定理1:有n元非齐次线性方程组Ax=b,系数矩阵为A,增广矩阵为(A,b)。

  • 无解的充分必要条件是R(A) < R(A,b)
  • 有唯一解的充分必要条件是R(A) = R(A,b) = n
  • 有无穷多解的充分必要条件是R(A) = R(A,b) < n

定理2:n元齐次线性方程组Ax=0,

  • 有非零解的充分必要条件是R(A)<n
  • 只有零解的充分必要条件是R(A)=n

四、向量组

n个有序的数组成的数组称为n维向量,把n个分量写成一列的形式,称为n维列向量。

a=(a1a2⋯an)a=\begin{pmatrix} a_1 \\ a_2 \\ \cdots \\ a_n \end{pmatrix}a=​⎝​⎜​⎜​⎛​​​a​1​​​a​2​​​⋯​a​n​​​​​⎠​⎟​⎟​⎞​​

n维行向量:

aT=(a1,a2,⋯,an)a^T =(a_1,a_2, \cdots ,a_n)a​T​​=(a​1​​,a​2​​,⋯,a​n​​)

五、线性空间

  • 线性空间+范数定义=线性赋范空间
  • 线性赋范空间+完备性=Banach空间(巴拿赫空间)
  • 线性空间+内积=内积空间
  • 内积空间+完备性=Hilbert空间(希尔伯特空间)
  • Hilbert空间+拓宽范数定义=索伯列夫空间

线性空间的8条法则:

设V是一个非空集合,P是一个域。

  • α+β=β+α,对任意α,β∈V(交换律)
  • α+(β+γ)=(α+β)+γ,对任意α,β,γ∈V(结合律)
  • 存在一个元素0∈V,对一切α∈V有α+0=α,元素0称为V的零元(零元)
  • 对任一α∈V,都存在β∈V使α+β=0,β称为α的负元素,记为-α(逆元)
  • 对P中单位元1,有1α=α(α∈V)(数乘单位元)
  • 对任意k,l∈P,α∈V有(kl)α=k(lα)(数乘结合律)
  • 对任意k,l∈P,α∈V有(k+l)α=kα+lα(数乘分配律)
  • 对任意k∈P,α,β∈V有k(α+β)=kα+kβ

则称V为域P上的一个线性空间,或向量空间。V中元素称为向量,V的零元称为零向量,P称为线性空间的基域.当P是实数域时,V称为实线性空间.当P是复数域时,V称为复线性空间。

函数f(x)是线性空间。

加法 e a b c
e e a b c
a a a e a
b b e b e
c c a e c

傅里叶变换:

g(k)=∫−∞+∞f(x)e−ikxdxg(k) = \int_{-\infty}^{+\infty} f(x)e^{-ikx}dx g(k)=∫​−∞​+∞​​f(x)e​−ikx​​dx

可逆:

f(x)=12π∫−∞+∞g(k)eikxdkf(x) = \dfrac{1}{2\pi} \int_{-\infty}^{+\infty} g(k)e^{ikx}dkf(x)=​2π​​1​​∫​−∞​+∞​​g(k)e​ikx​​dk

离散傅里叶变换(Discrete Fourier Transform,缩写为DFT)

  • 数学
一个程序员的数学素养(4)概率论
一个程序员的数学素养(2)高等数学
© 2023 iherr 京ICP备20013600号-1
Hexo Theme Yilia
  • 所有文章

tag:

  • App
  • 架构
  • UI
  • iOS
  • Android
  • Docker
  • Git
  • HTML5
  • CSS3
  • HTTP
  • JavaScript
  • Java
  • JVM
  • Mac
  • Linux
  • Maven
  • Python
  • Nginx
  • RTMP
  • Numpy
  • OpenResty
  • Pandas
  • Matplotlib
  • 爬虫
  • SpringBoot
  • SpringMVC
  • 源码
  • Redis
  • MyBatis
  • SpringCloud
  • 数学
  • Vue
  • 杂谈
  • MSA
  • Node
  • Jenkins
  • ELK
  • RPC
  • MQ
  • 招聘
  • ElasticSearch
  • 数据库
  • 机器学习
  • MySql
  • 算法
  • 设计模式
  • 正则
  • 音视频
  • FFmpeg

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true