01线性方程组

线性方程组?

线性方程
a 1 x 1 + a 2 x 2 + a 3 x 3 + ⋯ + a n x n = b a_1x_1+a_2x_2+a_3x_3+\cdots+a_nx_n = b a1x1+a2x2+a3x3++anxn=b
其中的x不能是其他任何形式,如幂函数和指数函数或者带根号,都不行

线性方程组
{ 1 × x 1 − 2 × x 2 + 1 × x 3 = 0 0 × x 1 + 1 × x 2 − 4 × x 3 = 4 0 × x 1 + 0 × x 2 − 1 × x 3 = 3 \begin{cases} 1\times x_1 &- \quad 2\times x_2 &+ \quad 1\times x_3 &= 0\\ 0 \times x_1 &+ \quad 1\times x_2 &- \quad 4\times x_3 &=4\\ 0\times x_1 &+ \quad 0\times x_2 &- \quad 1\times x_3 &=3 \end{cases} 1×x10×x10×x12×x2+1×x2+0×x2+1×x34×x31×x3=0=4=3
为了让他们能够排版整齐===》发展为矩阵,用这种格式

  1. 若有解 : 线性相关
  2. 若无解 :线性无关

发展为系数矩阵:
[ 1 − 2 1 0 1 − 4 0 0 1 ] \begin{bmatrix} 1&-2&1\\ 0&1&-4\\ 0&0&1 \end{bmatrix} 100210141
发展为增广矩阵
[ 1 − 2 1 0 0 1 − 4 4 0 0 1 3 ] \begin{bmatrix} 1&-2&1&0\\ 0&1&-4&4\\ 0&0&1&3 \end{bmatrix} 100210141043
比系数矩阵多了一列,即方程的右边常数

如何求解?

基本高斯消元法(顺序高斯消元法)

可以这么理解:

第一行是x1,要让第一行的第一列和第四列有值,其他为0

第二行是x2,要让第二行的第二列和第四列有值,其他为0

第三行是x3,要让第三行的第三列和第四列有值,其他为0

第四列就是代表现在这个xn的值。

我们将xn称之为主元,即完成高斯消元法之后的非零元素

我们将主元所在的列称之为主元列

关于高斯消元法的详细教程,位于

线性代数及其应用》笔记01.线性方程组.ipynb

呈阶梯状分布

如下,下三角已经完成了,高斯消元法已经完成
[ 1 − 2 1 0 0 1 − 4 4 0 0 1 3 ] \begin{bmatrix} 1&-2&1&0\\ 0&1&-4&4\\ 0&0&1&3 \end{bmatrix} 100210141043
但是它的上三角还未完成,以下是解决方案:

反向操作(回代简化)

  • 从第 3 行回代,将非零值简化为对角线上的单位矩阵形式。

  • 消除第 2 行第 3 列:
    第 2 行变为:
    Row 2 = Row 2 − ( − 4 ) ⋅ Row 3 \text{Row}_2 = \text{Row}_2 - (-4) \cdot \text{Row}_3 Row2=Row2(4)Row3
    即:
    [ 0 1 0 16 ] \begin{bmatrix} 0 & 1 & 0 & 16 \end{bmatrix} [01016]

  • 消除第 1 行第 3 列:
    第 1 行变为:
    Row 1 = Row 1 − Row 3 \text{Row}_1 = \text{Row}_1 - \text{Row}_3 Row1=Row1Row3
    即:
    [ 1 − 2 0 − 3 ] \begin{bmatrix} 1 & -2 & 0 & -3 \end{bmatrix} [1203]

  • 消除第 1 行第 2 列:
    第 1 行变为:
    Row 1 = Row 1 + 2 ⋅ Row 2 \text{Row}_1 = \text{Row}_1 + 2 \cdot \text{Row}_2 Row1=Row1+2Row2
    即:
    [ 1 0 0 29 ] \begin{bmatrix} 1 & 0 & 0 & 29 \end{bmatrix} [10029]

  1. 最终的行最简矩阵

[ 1 0 0 − 3 0 1 0 16 0 0 1 3 ] \begin{bmatrix} 1 & 0 & 0 & -3 \\ 0 & 1 & 0 & 16 \\ 0 & 0 & 1 & 3 \end{bmatrix} 1000100013163

回带,因为此时右下角的主元除了主元列外都为零,因而而已逐一向上回带,得出答案.

思想

  • (倍加变换) 把某一行换成它本身与另一行的倍数的和
  • (对换变换) 把两行对换
  • (倍乘变换) 把某一行的所有元素乘以同一个非零数
列元高斯消元法

因为在计算机中,当矩阵变大,基本高斯消元法的精度就会变的很低,浮点数运算中因误差累积带来的精度问题。

注意,高斯消元法都是从第一列开始消的。即格式化第一列之后才到第二列,因而我们无须关注行的前后关系。

思想

  • 在每一列中选择绝对值最大的数作为主元,然后再进行基本高斯消元法。
全主元消除法

思想

  • 在所有非零元素中选择绝对值最大的数作为主元,然后进行列和行的替换(如到第一行第一列),接着在基本高斯消元法

列主元与全主元对比

特性列主元消元法全主元消元法
主元选择范围当前列当前子矩阵
是否交换列
数值稳定性更高
操作复杂度较低较高
应用场景一般数值计算场景病态矩阵、高精度场景
拓展高斯-约当消元法
初始矩阵

给定增广矩阵:
[ 2 1 − 1 8 − 3 − 1 2 − 11 − 2 1 2 − 3 ] \begin{bmatrix} 2 & 1 & -1 & 8 \\ -3 & -1 & 2 & -11 \\ -2 & 1 & 2 & -3 \end{bmatrix} 2321111228113
每一列的目标是:让主对角线上为 1,并将主元所在列的其他元素化为 0


第 1 步:第 1 列的主元归一化
  1. 第 1 行的第 1 列是主元。为了让主元为 1,我们将 第 1 行除以 2
    R 1 → R 1 2 R_1 \to \frac{R_1}{2} R12R1

    得到:
    [ 1 0.5 − 0.5 4 − 3 − 1 2 − 11 − 2 1 2 − 3 ] \begin{bmatrix} 1 & 0.5 & -0.5 & 4 \\ -3 & -1 & 2 & -11 \\ -2 & 1 & 2 & -3 \end{bmatrix} 1320.5110.5224113

  2. 用第 1 行消去第 2 行和第 3 行的第 1 列元素:

    • 第 2 行: R 2 → R 2 + 3 ⋅ R 1 R_2 \to R_2 + 3 \cdot R_1 R2R2+3R1
    • 第 3 行: R 3 → R 3 + 2 ⋅ R 1 R_3 \to R_3 + 2 \cdot R_1 R3R3+2R1

    计算后:
    [ 1 0.5 − 0.5 4 0 0.5 0.5 1 0 2 1 5 ] \begin{bmatrix} 1 & 0.5 & -0.5 & 4 \\ 0 & 0.5 & 0.5 & 1 \\ 0 & 2 & 1 & 5 \end{bmatrix} 1000.50.520.50.51415


第 2 步:第 2 列的主元归一化
  1. 第 2 行的第 2 列是主元。为了让主元为 1,我们将 第 2 行除以 0.5
    R 2 → R 2 0.5 R_2 \to \frac{R_2}{0.5} R20.5R2

    得到:
    [ 1 0.5 − 0.5 4 0 1 1 2 0 2 1 5 ] \begin{bmatrix} 1 & 0.5 & -0.5 & 4 \\ 0 & 1 & 1 & 2 \\ 0 & 2 & 1 & 5 \end{bmatrix} 1000.5120.511425

  2. 用第 2 行消去第 3 行和第 1 行的第 2 列元素:

    • 第 1 行: R 1 → R 1 − 0.5 ⋅ R 2 R_1 \to R_1 - 0.5 \cdot R_2 R1R10.5R2
    • 第 3 行: R 3 → R 3 − 2 ⋅ R 2 R_3 \to R_3 - 2 \cdot R_2 R3R32R2

    计算后:
    [ 1 0 − 1 3 0 1 1 2 0 0 − 1 1 ] \begin{bmatrix} 1 & 0 & -1 & 3 \\ 0 & 1 & 1 & 2 \\ 0 & 0 & -1 & 1 \end{bmatrix} 100010111321


第 3 步:第 3 列的主元归一化
  1. 第 3 行的第 3 列是主元。为了让主元为 1,我们将 第 3 行除以 -1
    R 3 → R 3 − 1 R_3 \to \frac{R_3}{-1} R31R3

    得到:
    [ 1 0 − 1 3 0 1 1 2 0 0 1 − 1 ] \begin{bmatrix} 1 & 0 & -1 & 3 \\ 0 & 1 & 1 & 2 \\ 0 & 0 & 1 & -1 \end{bmatrix} 100010111321

  2. 用第 3 行消去第 1 行和第 2 行的第 3 列元素:

    • 第 1 行: R 1 → R 1 + R 3 R_1 \to R_1 + R_3 R1R1+R3
    • 第 2 行: R 2 → R 2 − R 3 R_2 \to R_2 - R_3 R2R2R3

    计算后:
    [ 1 0 0 2 0 1 0 3 0 0 1 − 1 ] \begin{bmatrix} 1 & 0 & 0 & 2 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & -1 \end{bmatrix} 100010001231


行最简形式和解

此时矩阵已经化为行最简形式:
[ 1 0 0 2 0 1 0 3 0 0 1 − 1 ] \begin{bmatrix} 1 & 0 & 0 & 2 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & -1 \end{bmatrix} 100010001231

对应的解为:
x = 2 ,   y = 3 ,   z = − 1 x = 2, \ y = 3, \ z = -1 x=2, y=3, z=1

克拉默法则

克拉默法则(Cramer’s Rule)是一种利用行列式来解线性方程组的方法,适用于系数矩阵为方阵且行列式不为零的情况。


基本思想

对于一个 n × n n \times n n×n 的线性方程组:

A ⋅ X = B A \cdot X = B AX=B

其中:

  • A A A 是系数矩阵:
    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix} A= a11a21an1a12a22an2a1na2nann

  • X X X 是未知向量:
    X = [ x 1 x 2 ⋮ x n ] X = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} X= x1x2xn

  • B B B 是常数列向量:
    B = [ b 1 b 2 ⋮ b n ] B = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} B= b1b2bn

克拉默法则的核心思想是:

  • x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn 的值时,将系数矩阵 A A A 的对应列替换为常数向量 B B B,然后通过行列式计算解。

公式如下:

x i = det ⁡ ( A i ) det ⁡ ( A ) , i = 1 , 2 , … , n x_i = \frac{\det(A_i)}{\det(A)}, \quad i = 1, 2, \dots, n xi=det(A)det(Ai),i=1,2,,n

其中:

  • det ⁡ ( A ) \det(A) det(A) 是系数矩阵 A A A 的行列式。
  • det ⁡ ( A i ) \det(A_i) det(Ai) 是将 A A A 的第 i i i 列替换为常数向量 B B B 后的新矩阵的行列式。

公式展开

1. 行列式公式

标准公式:
det ⁡ ( A ) = ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ∣ \det(A) = \begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{vmatrix} det(A)= a11a21an1a12a22an2a1na2nann

2. 替换后的矩阵

若求 x i x_i xi,将 A A A 的第 i i i 列替换为常数列向量 B B B
A i = [ a 11 a 12 ⋯ b 1 ⋯ a 1 n a 21 a 22 ⋯ b 2 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ b n ⋯ a n n ] A_i = \begin{bmatrix} a_{11} & a_{12} & \cdots & b_1 & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & b_2 & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & b_n & \cdots & a_{nn} \end{bmatrix} Ai= a11a21an1a12a22an2b1b2bna1na2nann


克拉默法则的适用条件

  1. 系数矩阵 A A A 必须是 方阵 n × n n \times n n×n 矩阵)。
  2. 系数矩阵 A A A 的行列式 det ⁡ ( A ) ≠ 0 \det(A) \neq 0 det(A)=0,即 A A A 是非奇异矩阵。

如果不满足这些条件,则克拉默法则不适用,线性方程组可能无解或有无穷多个解。


克拉默法则的计算过程示例

示例:二元方程组

解以下方程组:
2 x + y = 5 x − y = 1 2x + y = 5 \\ x - y = 1 2x+y=5xy=1

步骤 1:写出系数矩阵和常数向量
A = [ 2 1 1 − 1 ] , B = [ 5 1 ] A = \begin{bmatrix} 2 & 1 \\ 1 & -1 \end{bmatrix}, \quad B = \begin{bmatrix} 5 \\ 1 \end{bmatrix} A=[2111],B=[51]

步骤 2:计算 det ⁡ ( A ) \det(A) det(A)
det ⁡ ( A ) = ∣ 2 1 1 − 1 ∣ = ( 2 ) ( − 1 ) − ( 1 ) ( 1 ) = − 2 − 1 = − 3 \det(A) = \begin{vmatrix} 2 & 1 \\ 1 & -1 \end{vmatrix} = (2)(-1) - (1)(1) = -2 - 1 = -3 det(A)= 2111 =(2)(1)(1)(1)=21=3

步骤 3:构造替换矩阵

  • 替换第 1 列求 x 1 x_1 x1 的矩阵:
    A 1 = [ 5 1 1 − 1 ] A_1 = \begin{bmatrix} 5 & 1 \\ 1 & -1 \end{bmatrix} A1=[5111]
    行列式为:
    det ⁡ ( A 1 ) = ∣ 5 1 1 − 1 ∣ = ( 5 ) ( − 1 ) − ( 1 ) ( 1 ) = − 5 − 1 = − 6 \det(A_1) = \begin{vmatrix} 5 & 1 \\ 1 & -1 \end{vmatrix} = (5)(-1) - (1)(1) = -5 - 1 = -6 det(A1)= 5111 =(5)(1)(1)(1)=51=6

  • 替换第 2 列求 x 2 x_2 x2 的矩阵:
    A 2 = [ 2 5 1 1 ] A_2 = \begin{bmatrix} 2 & 5 \\ 1 & 1 \end{bmatrix} A2=[2151]
    行列式为:
    det ⁡ ( A 2 ) = ∣ 2 5 1 1 ∣ = ( 2 ) ( 1 ) − ( 5 ) ( 1 ) = 2 − 5 = − 3 \det(A_2) = \begin{vmatrix} 2 & 5 \\ 1 & 1 \end{vmatrix} = (2)(1) - (5)(1) = 2 - 5 = -3 det(A2)= 2151 =(2)(1)(5)(1)=25=3

步骤 4:求解
x 1 = det ⁡ ( A 1 ) det ⁡ ( A ) = − 6 − 3 = 2 , x 2 = det ⁡ ( A 2 ) det ⁡ ( A ) = − 3 − 3 = 1 x_1 = \frac{\det(A_1)}{\det(A)} = \frac{-6}{-3} = 2, \quad x_2 = \frac{\det(A_2)}{\det(A)} = \frac{-3}{-3} = 1 x1=det(A)det(A1)=36=2,x2=det(A)det(A2)=33=1


克拉默法则的优缺点

优点
  1. 概念直观:克拉默法则直接利用行列式来计算变量,解的表达式明确。
  2. 适合手工计算:对于 2x2 或 3x3 的小型方程组,用克拉默法则求解较快且直观。
缺点
  1. 不适合大规模矩阵:行列式的计算复杂度较高,克拉默法则在 n ≥ 4 n \geq 4 n4 时效率低。
  2. 需满足特定条件:只有方阵且行列式非零时才能使用,无法处理病态矩阵或奇异矩阵。
  3. 对数值误差敏感:特别是在浮点数计算中,行列式的计算可能带来较大误差。

总结

  • 克拉默法则适用于 小型线性方程组,特别是 n = 2 n = 2 n=2 n = 3 n = 3 n=3 时,可以快速求解。
  • 方法基于行列式计算解,逻辑简单且公式直观。
  • 对于更复杂的系统(大规模矩阵或不满足条件的方程组),推荐使用高斯消元法或矩阵分解方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值