线性代数的学习和整理14: 线性方程组求解的3种方法,重点讲矩阵函数求解

目录


0 写在前面的一些内容

0.1 学习心得:

  • 在学习过程中,确实会遇到不懂得,像我这种喜欢追问的,遇到不懂的问题,还会继续追问挖起一串。但是这时候就要想到“学而不思则罔,思维不学则殆”。不要因此偏离了主要方向和过于浪费时间
  • 应该,先了解,知识里现在的内容是“怎么样的”也就是“怎么展开的,这个逻辑梳理清楚”,学到一定阶段了再回头去思考之前没搞懂的问题。
  • 弄清楚了“怎么是这样” ,再去思考“为什么”,后来再回头看有疑问的效率会高很多。这也是一种分步骤思考问题的严密逻辑问题
  • 从哲学上说,人的思考绝对不可能从绝对的起源点开始,只能是在一些相对的中间节点出发,当做起点起推导

0.2 参考其他书籍总结的知识点,对照学习

1 线性方程组求解

1.1 常见的线性方程组如下

如下图的线性方程组,如何求解呢?

\left\{\begin{matrix} a11*x1+a12*x2 =b1\\ a21*x1+a22*x2 =b2\\ a31*x1+a32*x2 =b3 \end{matrix}\right.

或者可以变形为这样

\left\{\begin{matrix} a11*x1+a12*x2 -b1 =0\\ a21*x1+a22*x2 -b2 =0\\ a31*x1+a32*x2-b3 =0\end{matrix}\right.

1.2 记住常见的 矩阵函数的维数的关系

  • Ax=y
  • 记住常见的 矩阵函数的维数的关系,对于理解矩阵函数求解很重要
  • 矩阵Am*n, 而Xn*1=[x1,x2….xn] ,bm*1=[b1,b2….bm]
  1. 矩阵A是 m*n(有可能没满秩)
  2. 自变量X的维度是n,         Xn*1=[x1,x2….xn]
  3. 因变量y(或b)维度是m ,Ym*1= bm*1=[b1,b2….bm]
  • \begin{bmatrix} a11 &a12&...&a1n\\ a21 &a22&...&a2n\\ ... &...&...&...\\ am1 &am2&...&amn\end{bmatrix} * \begin{bmatrix} x1\\ x2 \\ ... \\ xn \end{bmatrix} = \begin{bmatrix} b1\\ b2\\ ...\\ bm \end{bmatrix}

1.3  需要求解的方程组和矩阵的对应关系,需要先厘清

1.3.1 如果只需要求解x,是类 Ax=b的形式

  • Ax=b
  • 因为这里只是   多个一元方程组,所以可以这么算
  • 要注意,矩阵Am*n  * 列向量Xn*1得到的是 b m*1的列向量
  • 其中列向量X的维度是n
  • 而 列向量b 的维度是m
  • \begin{bmatrix} a11 &a12&...&a1n\\ a21 &a22&...&a2n\\ ... &...&...&...\\ am1 &am2&...&amn\end{bmatrix} * \begin{bmatrix} x1\\ x2 \\ ... \\ xn \end{bmatrix} = \begin{bmatrix} b1\\ b2\\ ...\\ bm \end{bmatrix}
  • \left\{\begin{matrix} a11*x1+a12*x2 =b1\\ a21*x1+a22*x2 =b2\\ a31*x1+a32*x2 =b3 \end{matrix}\right.
  •  x1,x2 但是 b1,b2,b3

1.3.2   如果是x,y的联立方程组,是类 Ax=y的形式

  • Ax=y
  • 因为联立二元方程组,需要 同样多的x和y
  • 必须要求矩阵是A nn,也就是矩阵A必须是方阵
  • 要注意,矩阵Ann  * 列向量Xn1得到的是 b n1的列向量
  • 其中列向量X的维度是n
  • 而 列向量y/b的维度是n
  • \begin{bmatrix} a11 &a12&...&a1n\\ a21 &a22&...&a2n\\ ... &...&...&...\\ an1 &an2&...&ann\end{bmatrix} * \begin{bmatrix} x1\\ x2 \\ ... \\ xn \end{bmatrix} = \begin{bmatrix} b1\\ b2\\ ...\\ bn \end{bmatrix}
  • \left\{\begin{matrix} a11*x1+a12*x2+a13*x3 =y1\\ a21*x1+a22*x2+a23*x3 =y2\\ a31*x1+a32*x2+a33*x3 =y3 \end{matrix}\right.
  •  x1,x2,x3 同时 y1,y2,y3

1.4 方程组的解的可能有这几种情况:

  • 无解
  • 有解
  1. 无数解
  2. 唯一解

1.5 线性方程组的解的几何情况(用3元线性方程组举例)

比如3元线性方程组,其解其实就是这3根直线的交点,就是解

  • 无解的情况
  1. 无解: 三线平行
  2. 无解:三线不相交于一点
  • 有解
  1. 有唯一解:三线相交于一点
  2. 有无数解:三条线重叠

2  线性方程组的多种解法(至少这里有3种)

  • 消元法求解
  • 行列式求解
  • 矩阵函数求解

2.1 方法1:消元法/高斯消元法

  • 消元法,就是普遍知道的解方程的方法
  • 问题是,当线性方程组的变量元越多,方程组越多,就会越复杂。。。

2.2 方法2:根据克拉默法则用行列式求解

理论上根据克拉默法则,下面这些都可以直接用克拉默法则求解

  • 2阶的线性方程组
  • 3阶的线性方程组
  • 4阶的线性方程组 
  • …..
  • 但是实际上,高阶的行列式求解也够复杂。。。

2.3 还一个扩展问题:如果方程组太多了,比变量还多怎么办?

我们解题时,往往是方程组和变量元,刚刚好一样多,但是现实中,往往不是信息太少,就是信息太多

  • 如果信息太少,如方程组里的方程数量太少:无法求解
  • 如果信息太多,方程组里的方程数量多于变量,甚至远多于,该怎么办?
  1. 这可能就需要用到线性回归了, y=ax+b+ε 
  2. 因为信息量太多,能求出很多组解开,但是不能求准确解,而是要求近似解
  3. 而让ε 足够小,就可以求出尽量最近似的解

2.4 有没有更简便的求解方程组的解的方法呢?

答案是有的

2.4.1 可以快速确定是否有解,解的个数

  • 提前给结论,具体的内容在下面
  • 对于线性方程组 Ax=b,如果系数矩阵A和秩 = 增广矩阵B(B=A|b)的秩,也就是rank(A) =rank(B)那么就有解
  • 对于线性方程组 Ax=b,如果系数矩阵A和秩 = 增广矩阵B(B=A|b)的秩,并且
  1. rank(A) =rank(B)=n ,就有唯一解
  2. rank(A) =rank(B)<n ,就有无数解

2.4.2 还可以解出具体的解

  • 详细见下面的内容

3 线性方程组用矩阵函数求解

3.1 线性方程组转化为矩阵函数形式

线性方程组可以转化为矩阵函数形式

  • step1: \left\{\begin{matrix} a11*x1+a12*x2 =b1\\ a21*x1+a22*x2 =b2 \end{matrix}\right.   
  • step2: 矩阵函数  A*x=y   (或者Ax=b)
  • step3: \begin{bmatrix} a12 & a22 \\ a21 & a22 \end{bmatrix} * x = \begin{bmatrix} b1 \\ b2 \end{bmatrix}
  • step4: \begin{bmatrix} a12 & a22 \\ a21 & a22 \end{bmatrix} * \begin{bmatrix} x1 \\ x2 \end{bmatrix} = \begin{bmatrix} b1 \\ b2 \end{bmatrix}

3.2 如何从矩阵的角度看,是否有解?

3.2.1 从函数和映射的角度看解的情况

  • 是否有解:就是 Ax=b (或者Ax=y),是否有x与b对应(映射),即b落入了x的值域
  • 解的个数:就是 Ax=b (或者Ax=y),有多少个x与b对应
  • 解的集合:就是 Ax=b中,与b对应的具体的x是哪些

3.2.2 那么从矩阵函数的角度看呢

矩阵函数 Ax=y

  1. 那么定义域就是x的取值范围
  2. 值域=y=Ax
  3. 定理:矩阵函数Ax=y, 当定义域是自然定义域时,值域(就是y=Ax)就是Ax的列空间

 所以

  • 如果b(y) 落在Ax的形成的向量空间内,那就有解,否则无解

定理:矩阵函数Ax=y, 当定义域是自然定义域时,值域(就是y=Ax)就是Ax的列空间

Ax=矩阵左乘它所有可以进行左乘的向量,所得的结果组成的集合

因为Ax=y, 因为是  x 左乘A,所以A是基(A的列向量是基,比如c1,c2),而Ax 就是x经过A线性变换后形成的新的向量组(比如d1,d2)=也就是A的列向量(c1,c2)的线性组合,一定会落在A的列向量(c1,c2)构成的向量空间里。

而Ax=y作为值域,其实就是Ax的列向量,也就是 方程组的解就是Ax的列向量

  • 一个矩阵A(m×n)的值域空间(列空间)是R^m的子空间,
  • 是A的列向量组所有线性组合的集合。
  • 该空间维数dim Col A等于A的秩Rank(A)。

3.2.3 怎么判断 b 落在Ax的形成的向量空间内呢?

定理

有解的判断

  • 对于线性方程组 Ax=b,如果系数矩阵A和秩 = 增广矩阵B(B=A|b)的秩,也就是rank(A) =rank(B)那么就有解
  • Ax=y
  • 矩阵Am*n, 而Xn*1=[x1,x2….xn] ,bm*1=[b1,b2….bm]
  • \begin{bmatrix} a11 &a12&...&a1n\\ a21 &a22&...&a2n\\ ... &...&...&...\\ am1 &am2&...&amn\end{bmatrix} * \begin{bmatrix} x1\\ x2 \\ ... \\ xn \end{bmatrix} = \begin{bmatrix} b1\\ b2\\ ...\\ bm \end{bmatrix}
  • rank(x) =n   单个一维向量,不存在线性相关问题所以 n 代表定义域X的秩
  • rank(b)=m   单个一维向量,不存在线性相关问题
  • 因此,A的零空间 rank(A)<=min(m,n) ,rank(A) 代表值域的秩,因为值域 rank(b)=m其实被rank(A) 所决定。但是值域的秩,为啥不直接用 rank(b) 呢?
  • 而 rank(null(A)) 实际就是 rank(Ax=0),所以 rank(null(A))<=min(m,n)

解的个数的判断

  • 对于线性方程组 Ax=b,如果系数矩阵A和秩 = 增广矩阵B(B=A|b)的秩,并且
  • 如果A是m*n的矩阵,其中n是X的秩。
  • m,n 的相对大小不定,m (> or < or =) n
  1. rank(A) =rank(A|b)=n (n=rank(X)=A满秩时列向量个数) ,就有唯一解 
  2. rank(A) =rank(A|b)<n (n=rank(X)=A满秩时列向量个数),就有无数解

满秩矩阵有唯一解

 

4 齐次线性方程组 & 非齐次线性方程组

4.1 线性方程组分类

齐次线性方程组 Ax=0

\left\{\begin{matrix} a11*x1+a12*x2 =0\\ a21*x1+a22*x2 =0\\ a31*x1+a32*x2 =0 \end{matrix}\right.

非齐次线性方程组  Ax=b

\left\{\begin{matrix} a11*x1+a12*x2 =b1\\ a21*x1+a22*x2 =b2\\ a31*x1+a32*x2 =b3 \end{matrix}\right.

4.2 零空间 null(A)

齐次线性方程组 Ax=0,其实就对应了 零空间 null(A)

  • 零空间是在线性映射(即矩阵)的背景下出现的,指:像为零的原像空间,即{x| Ax=0}。
  • 数学中,一个算子 A 的零空间是方程 Av = 0 的所有解 v 的集合。它也叫做 A 的,核空间。
  • 如果算子是在向量空间上的线性算子,零空间就是线性子空间。因此零空间是向量空间

5 齐次线性方程组 Ax=0 求解

5.1 用矩阵方法求解

Ax=\left\{\begin{matrix} a11*x1+a12*x2 =0\\ a21*x1+a22*x2 =0\end{matrix}\right.

具体举个例子,下面是具体计算步骤

  1. A*x=0
  2. \left\{\begin{matrix} 1*x1+1*x2 =0\\ 1*x1+1*x2 =0\end{matrix}\right.
  3. \left\{\begin{matrix} x1+x2 =0\\ x1+x2 =0\end{matrix}\right.
  4. \begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix} * \begin{bmatrix} x1\\ x2 \end{bmatrix} = \begin{bmatrix} 0\\ 0 \end{bmatrix}
  5. A=\begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix}  ,   b=0 = \begin{bmatrix} 0\\ 0 \end{bmatrix}
  6. B=(A|0)=\begin{bmatrix} 1 &1 &|0 \\ 1 & 1& |0 \end{bmatrix}
  7. 线性变换  B=(A|0)=\begin{bmatrix} 1 &1 &|0 \\ 0 & 0& |0 \end{bmatrix}
  8. \left\{\begin{matrix} x1+x2 =0\\ 0+0 =0\end{matrix}\right.
  9. \left\{\begin{matrix} x1 =-x2\\ 0=0\end{matrix}\right.
  10. \left\{\begin{matrix} x1 =-x2\\ x2=x2\end{matrix}\right.
  11. \left\{\begin{matrix} x1 =-x2\\x2=x2\end{matrix}\right.\rightarrow \begin{bmatrix} x1 \\ x2 \end{bmatrix} = \begin{bmatrix} -x2 \\ x2 \end{bmatrix}\rightarrow x=\begin{bmatrix} x1 \\ x2 \end{bmatrix} = \begin{bmatrix} -x2 \\ x2 \end{bmatrix}
  12. x本身展开就是(x1,x2)\rightarrow x = \begin{bmatrix} -x2 \\ x2 \end{bmatrix}\rightarrow x = x2 \begin{bmatrix} -1 \\ 1 \end{bmatrix}
  13. 令k=x2\rightarrow x = k \begin{bmatrix} -1 \\ 1 \end{bmatrix}
  14. 向量 \begin{bmatrix} -1 \\ 1 \end{bmatrix} 是一个点,但是x = k \begin{bmatrix} -1 \\ 1 \end{bmatrix} 就是一条用k来线性变换(伸缩这个列向量)最终形成的1条直线,在二维图会等价于 x2=-x1(或y=-x)的一条直线
  15. 因为k是实数,因此,解集就是\begin{bmatrix} -1 \\ 1 \end{bmatrix} 张成的张成空间,这里本质是一条线。
  16. 所以有无数个解 x = k \begin{bmatrix} -1 \\ 1 \end{bmatrix} ,k \rightarrow R

5.2 如果直接用解方程的方法求解

  1. A*x=0
  2. \left\{\begin{matrix} 1*x1+1*x2 =0\\ 1*x1+1*x2 =0\end{matrix}\right.
  3. \left\{\begin{matrix} x1+x2 =0\\ x1+x2 =0\end{matrix}\right.
  4. x1+x2 =0
  5. 得到的答案也是一样的
  6. 但是方程组比较多比较复杂的时候,矩阵求起来可能方便点吧?

6 非齐次线性方程组 Ax=b 求解

6.1 用矩阵方法求解

解法类似

比如求解

  1. A*x=b
  2. \left\{\begin{matrix} 1*x1+1*x2 =b1\\ 1*x1+1*x2 =b2\end{matrix}\right.
  3. \left\{\begin{matrix} x1+x2 =b1\\ x1+x2 =b2\end{matrix}\right.
  4. 具体例子 \left\{\begin{matrix} x1+x2 =2\\ x1+x2 =2\end{matrix}\right.
  5. \begin{bmatrix} 1 &1 \\ 1 & 1 \end{bmatrix} * \begin{bmatrix} x1\\ x2 \end{bmatrix} = \begin{bmatrix} 2\\ 2 \end{bmatrix}
  6. 。。。。解法类似,省略
  7. \rightarrow x = \begin{bmatrix}0 \\ 2 \end{bmatrix}+k \begin{bmatrix} -1 \\ 1 \end{bmatrix} ,其中 \begin{bmatrix}0 \\ 2 \end{bmatrix}  是 特解,而 k \begin{bmatrix} -1 \\ 1 \end{bmatrix}是零空间null(A)
  8. 零空间null(A) 就是类这个非齐次线性方程组对应的齐次线性方程组的解
  9. 从几何上就是把k \begin{bmatrix} -1 \\ 1 \end{bmatrix} 平移了\begin{bmatrix}0 \\ 2 \end{bmatrix} 的距离
  10. 解集就是过特解\begin{bmatrix}0 \\ 2 \end{bmatrix} 且与零空间平行的一条直线

6.2 如果直接用解方程的方法求解

  1. A*x=b
  2. \left\{\begin{matrix} 1*x1+1*x2 =b1\\ 1*x1+1*x2 =b2\end{matrix}\right.
  3. \left\{\begin{matrix} x1+x2 =b1\\ x1+x2 =b2\end{matrix}\right.
  4. \left\{\begin{matrix} x1+x2 =2\\ x1+x2 =2\end{matrix}\right.
  5. x1+x2 =2
  6. 得到的答案也是一样的
  7. 但是方程组比较多比较复杂的时候,矩阵求起来可能方便点吧?

7 秩零定理

  • Ax=y
  • 矩阵Am*n, 而Xn*1=[x1,x2….xn] ,bm*1=[b1,b2….bm]
  • \begin{bmatrix} a11 &a12&...&a1n\\ a21 &a22&...&a2n\\ ... &...&...&...\\ am1 &am2&...&amn\end{bmatrix} * \begin{bmatrix} x1\\ x2 \\ ... \\ xn \end{bmatrix} = \begin{bmatrix} b1\\ b2\\ ...\\ bm \end{bmatrix}
  1. rank(x) =n   单个一维向量,不存在线性相关问题,所以 n 代表定义域X的秩
  2. rank(b)=m   单个一维向量,不存在线性相关问题
  3. 因此,A的零空间 rank(A)<=min(m,n) ,rank(A) 代表值域的秩,因为值域 rank(b)=m其实被rank(A) 所决定。但是值域的秩,为啥不直接用 rank(b) 呢?
  4. 而 rank(null(A)) 实际就是 rank(Ax=0),所以 rank(null(A))<=min(m,n)

形式1

  • rank(值域)+rank(null(A)) = rank(定义域)
  • rank(A)+rank(null(A))=n

形式2

  • rank(定义域)>=rank(值域)
  • rank(定义域)-rank(null(A))=rank(值域)
  • n-rank(null(A))=rank(A)

版权声明:本文为博主作者:奔跑的犀牛先生原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/xuemanqianshan/article/details/132522056

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2024年2月19日
下一篇 2024年2月19日

相关推荐