当前位置: 首页 > news >正文

《机器学习数学基础》补充资料:求解线性方程组的克拉默法则

《机器学习数学基础》中并没有将解线性方程组作为重点,只是在第2章2.4.2节做了比较完整的概述。这是因为,如果用程序求解线性方程组,相对于高等数学教材中强调的手工求解,要简单得多了。

本文是关于线性方程组的拓展,供对此有兴趣的读者阅读。

1. 线性方程组的解位于一条直线

不失一般性,这里讨论三维空间的情况,对于多维空间,可以由此外推,毕竟三维空间便于想象和作图说明。

设矩阵 A = [ 1 2 4 1 3 5 ] \pmb{A}=\begin{bmatrix}1&2&4\\1&3&5\end{bmatrix} A=[112345] ,线性方程

[ 1 2 4 1 3 5 ] [ x 1 x 2 x 3 ] = [ 0 0 ] (1.1) \begin{bmatrix}1&2&4\\1&3&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix} \tag{1.1} [112345] x1x2x3 =[00](1.1)

的解是:

[ x 1 x 2 x 3 ] = [ 0 0 0 ] , [ 2 1 − 1 ] , [ 4 2 − 2 ] , ⋯ \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix},\begin{bmatrix}2\\1\\-1\end{bmatrix},\begin{bmatrix}4\\2\\-2\end{bmatrix},\cdots x1x2x3 = 000 , 211 , 422 ,

可以将上述解写成:

[ x 1 x 2 x 3 ] = α [ 2 1 − 1 ] (1.2) \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\alpha\begin{bmatrix}2\\1\\-1\end{bmatrix} \tag{1.2} x1x2x3 =α 211 (1.2)

其中 α \alpha α 为任意数。

很显然,(1.1)式是一条通过坐标系原点的直线。推而广之,可以说 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集是一条过原点的直线(记作: l 1 l_1 l1 )。

如果是非齐次线性方程组,例如:

[ 1 2 4 1 3 5 ] [ x 1 x 2 x 3 ] = [ 4 5 ] (1.3) \begin{bmatrix}1&2&4\\1&3&5\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}4\\5\end{bmatrix} \tag{1.3} [112345] x1x2x3 =[45](1.3)

解为:

[ x 1 x 2 x 3 ] = [ 2 1 0 ] , [ 0 0 1 ] , [ 4 2 − 1 ] , ⋯ \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}2\\1\\0\end{bmatrix},\begin{bmatrix}0\\0\\1\end{bmatrix},\begin{bmatrix}4\\2\\-1\end{bmatrix},\cdots x1x2x3 = 210 , 001 , 421 ,

这些点的集合是一条不过原点的直线。即 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解集是一条不过原点的直线(记作: l 2 l_2 l2 )。并且,这条直线与 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集所在直线平行。对此结论证明如下:

u \pmb{u} u v \pmb{v} v A x = b \pmb{Ax}=\pmb{b} Ax=b 的两个解,则:

A u = b A v = b \begin{split}&\pmb{Au}=\pmb{b}\\&\pmb{Av}=\pmb{b}\end{split} Au=bAv=b

上面二式相减,得:

A ( u − v ) = 0 \pmb{A}(\pmb{u}-\pmb{v})=\pmb{0} A(uv)=0

u − v \pmb{u}-\pmb{v} uv A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的一个解。

u \pmb{u} u v \pmb{v} v A x = b \pmb{Ax}=\pmb{b} Ax=b 解集对应的直线上( l 2 l_2 l2 )的两个点,则 u − v \pmb{u}-\pmb{v} uv 的方向必然在直线 l 2 l_2 l2 的方向上(或者在直线 l 2 l_2 l2 上,或者在于 l 2 l_2 l2 平行的直线上)。

又因为 u − v \pmb{u}-\pmb{v} uv 也是 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解,所以 u − v \pmb{u}-\pmb{v} uv 在过原点的直线 l 1 l_1 l1 上。

因此, l 1 l_1 l1 平行于 l 2 l_2 l2 ,即 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解集所在直线不过原点,且平行于过原点的 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解集所在直线。

2. 克拉默法则

对《机器学习数学基础》第2章2.4.2节中克拉默法则进行证明。

克拉默法则(Cramer’s rule)利用行列式计算 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解,其中 A \pmb{A} A n × n n\times n n×n 方阵。

由于克拉默法则的运行效率不如高斯消元法,所以不能用于大数量方程的线性方程组,通常只用于理论推导 [ 2 ] ^{[2]} [2] ,从这个角度看,此法则除了具有理论意义之外,在计算上完全可以不用

下面的证明来自于参考文献[2],根据需要做了适当修改。

克拉默法则

n n n 阶方阵 A \pmb{A} A n n n 维向量 b \pmb{b} b ,将 A \pmb{A} A 的第 i i i 列以 b \pmb{b} b 替换,并记作 A i ( b ) \pmb{A}_i(\pmb{b}) Ai(b) ,用列向量表示为:

A i ( b ) = [ a 1 ⋯ a i − 1 b a i + 1 ⋯ a n ] \pmb{A}_i(\pmb{b})=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{a}_{i-1}&\pmb{b}&\pmb{a}_{i+1}&\cdots&\pmb{a}_n\end{bmatrix} Ai(b)=[a1ai1bai+1an]

A \pmb{A} A 可逆,即 ∣ A ∣ ≠ 0 |\pmb{A}|\ne0 A=0 ,则 A x = b \pmb{Ax}=\pmb{b} Ax=b 的解:

x i = ∣ A i ( b ) ∣ ∣ A ∣ , ( i = 1 , 2 , ⋯   , n ) \pmb{x_i}=\frac{|\pmb{A}_i(\pmb{b})|}{|\pmb{A}|},(i=1,2,\cdots,n) xi=AAi(b),(i=1,2,,n)

证明

将原方程 A x = b \pmb{Ax}=\pmb{b} Ax=b 转化为等价的 A X = B \pmb{AX}=\pmb{B} AX=B ,其中 X , B \pmb{X},\pmb{B} X,B 都是 n × n n\times n n×n 矩阵,将单位矩阵以列向量的形式表示为: I = [ e 1 ⋯ e n ] \pmb{I}=\begin{bmatrix}\pmb{e}_1&\cdots&\pmb{e}_n\end{bmatrix} I=[e1en]

以列向量 x \pmb{x} x 取代 I \pmb{I} I 的第 i i i 列,再左乘 A \pmb{A} A

A I i ( x ) = A [ e 1 ⋯ x ⋯ e n ] \pmb{AI}_i(\pmb{x})=\pmb{A}\begin{bmatrix}\pmb{e}_1&\cdots&\pmb{x}&\cdots&\pmb{e}_n\end{bmatrix} AIi(x)=A[e1xen]

参考“对矩阵乘法深入理解”中以列为单元进行矩阵乘法,上式可以进一步变换:

A I i ( x ) = [ A e 1 ⋯ A x ⋯ A e n ] = [ a 1 ⋯ b ⋯ a n ] = A i ( b ) \begin{split}\pmb{AI}_i(\pmb{x})&=\begin{bmatrix}\pmb{A}\pmb{e}_1&\cdots&\pmb{A}\pmb{x}&\cdots&\pmb{A}\pmb{e}_n\end{bmatrix}\\&=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{b}&\cdots&\pmb{a}_n\end{bmatrix}\\&=\pmb{A}_i(\pmb{b})\end{split} AIi(x)=[Ae1AxAen]=[a1ban]=Ai(b)

上式即为 A X = B \pmb{AX}=\pmb{B} AX=B ,其中 X = I i ( x ) , B = A i ( b ) \pmb{X}=\pmb{I}_i(\pmb{x}), \pmb{B}=\pmb{A}_i(\pmb{b}) X=Ii(x),B=Ai(b)

利用矩阵乘积的行列式性质,得:

∣ A X ∣ = ∣ A ∣ ∣ X ∣ = ∣ A ∣ ∣ I i ( x ) ∣ = ∣ A i ( b ) ∣ |\pmb{AX}|=|\pmb{A}||\pmb{X}|=|\pmb{A}||\pmb{I}_i(\pmb{x})|=|\pmb{A}_i(\pmb{b})| AX=A∣∣X=A∣∣Ii(x)=Ai(b)

以余子式展开计算行列式,得: ∣ I i ( x ) ∣ = x i |\pmb{I}_i(\pmb{x})|=x_i Ii(x)=xi (参阅[3]) ,所以, ∣ A ∣ x i = ∣ A i ( b ) ∣ |\pmb{A}|x_i=|\pmb{A}_i(\pmb{b})| Axi=Ai(b)

∣ A ∣ ≠ 0 |\pmb{A}|\ne0 A=0 ,则:

x i = ∣ A i ( b ) ∣ ∣ A ∣ x_i=\frac{|\pmb{A}_i(\pmb{b})|}{|\pmb{A}|} xi=AAi(b)

3. 存在性与唯一性

矩阵 A \pmb{A} A m × n m\times n m×n ,对于任意 m m m 维的非零向量 b \pmb{b} b ,线性方程组 A x = b \pmb{Ax}=\pmb{b} Ax=b 解的唯一性和存在性讨论 [ 4 ] ^{[4]} [4]

存在性

A x = b \pmb{Ax}=\pmb{b} Ax=b 有解,当且仅当 b T y = 0 \pmb{b}^T\pmb{y}=0 bTy=0 ,其中 y \pmb{y} y 为满足 A T y = 0 \pmb{A}^T\pmb{y}=\pmb0 ATy=0 的任何向量。

或曰:

b \pmb{b} b 正交于左零空间 N ( A T ) N(\pmb{A}^T) N(AT) ,则 A x = b \pmb{Ax}=\pmb{b} Ax=b 有解,反之亦然。

唯一性

A x = b \pmb{Ax}=\pmb{b} Ax=b 有唯一解(若解存在),当且仅当 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 有唯一解 x = 0 \pmb{x}=\pmb{0} x=0

或曰:

若矩阵 A \pmb{A} A 零空间 N ( A ) N(\pmb{A}) N(A) 仅含零向量,则 A x = b \pmb{Ax}=\pmb{b} Ax=b 有唯一解,反之亦然。

参考文献

[1]. https://ccjou.wordpress.com/2009/03/20/axb-和-ax0-的解集合有什麼關係?/

[2]. https://ccjou.wordpress.com/2009/11/10/克拉瑪公式的證明/

[3]. 对 ∣ I i ( x ) ∣ = x i |\pmb{I}_i(\pmb{x})|=x_i Ii(x)=xi ,以 4 × 4 4\times4 4×4 矩阵为例,当 i = 2 i=2 i=2 时:

∣ 1 x 1 0 0 1 x 2 0 0 1 x 3 0 0 1 x 4 0 0 ∣ = x 2 ∣ 1 0 0 0 1 0 0 ) 1 ∣ = x 1 ⋅ 1 = x 2 \begin{vmatrix}1&x_1&0&0\\1&x_2&0&0\\1&x_3&0&0\\1&x_4&0&0\end{vmatrix}=x_2\begin{vmatrix}1&0&0\\0&1&0\\0&)&1\end{vmatrix}=x_1\cdot1=x_2 1111x1x2x3x400000000 =x2 10001)001 =x11=x2

[4]. https://ccjou.wordpress.com/2011/06/07/線性方程解的存在性與唯一性/

相关文章:

  • JAVA EE初阶 - 预备知识(三)
  • 用自定义注解实现Excel数据导入中的枚举值校验
  • 第25周JavaSpringboot实战-电商项目 2.数据库准备和项目初始化
  • Dify本地部署过程问题
  • openGauss 6.0.0 RC1数据库日常运维
  • AllData数据中台核心菜单十三:数据湖平台
  • 【大模型】硅基流动对接DeepSeek使用详解
  • Jenkins+maven+gitlab+shell 实现项目自动化部署
  • 聚铭网络入围2025年度江苏省政府采购信息安全设备协议供货名单
  • 汽车通信未来新趋势:Eclipse uProtocol
  • 如何使用DeepSeek + PlantUML/Mermaid 生成专业图表
  • mysql查询判断函数,类似decode
  • SQL 注入攻击详解[基础篇]:Web 应用程序安全漏洞与防御策略
  • 【算法】快排
  • Go 自动升级依赖版本
  • 网络安全“挂图作战“及其场景
  • Go入门之数组与切片
  • 【基础架构篇八】《DeepSeek异构计算:CPU/GPU/TPU协同加速方案》
  • 基于Spring Boot的社区居民健康管理平台的设计与实现
  • 【Vue3】Vue 3 中列表排序的优化技巧
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • “三德子”赵亮直播间卖“德子土鸡”,外包装商标实为“德子土”
  • 60岁济南石化设计院党总支书记、应急管理专家李有臣病逝
  • 印巴冲突升级,巴防长称已击落5架印度战机
  • 呼和浩特65户业主被一房两卖,十年诉讼却难胜
  • 巴基斯坦军方:印度导弹袭击已造成至少3死14伤