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

《机器学习数学基础》中并没有将解线性方程组作为重点,只是在第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/線性方程解的存在性與唯一性/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/70168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins介绍

什么是Jenkins Jenkins 是一个开源的自动化服务器,主要用于持续集成和持续交付(CI/CD)。它帮助开发团队自动化构建、测试和部署软件,从而提高开发效率和软件质量。 如果一个系统是前后端分离的开发模式,在集成阶段会需…

module ‘cv2.dnn‘ has no attribute ‘DictValue‘解决办法

module ‘cv2.dnn‘ has no attribute ‘DictValue‘解决办法 pip install opencv-python4.7.0.72 -i https://pypi.tuna.tsinghua.edu.cn/simple 测试: python -c"import cv2"

【全栈】SprintBoot+vue3迷你商城-细节解析(2):分页

【全栈】SprintBootvue3迷你商城-细节解析(2):分页 往期的文章都在这里啦,大家有兴趣可以看一下 后端部分: 【全栈】SprintBootvue3迷你商城(1) 【全栈】SprintBootvue3迷你商城(…

kubeadm拉起的k8s集群证书过期的做法集群已奔溃也可以解决

kubeadm拉起的k8s集群证书过期的做法 这个是很久之前遇到的了,今天有空(心血来潮)就都回忆回忆写在这里为爱发光,部分内容来自arch先生(死党)的帮助。有时候有很多部门提了建k8s的需求,有些是临…

Webpack 基础入门

一、Webpack 是什么 Webpack 是一款现代 JavaScript 应用程序的静态模块打包工具。在 Web 开发中,我们的项目会包含各种类型的文件,如 JavaScript、CSS、图片等。Webpack 可以将这些文件打包成一个或多个文件,以便在浏览器中高效加载。它就像…

torchsparse安装过程的问题

1、项目要求torchsparse githttps://github.com/mit-han-lab/torchsparse.gitv1.4.0 2、torch1.8.1cu111 nvcc--version:11.1 这个版本的cuda匹配的gcc、g经常是7.5。设置为7.5. (这个gcc、g版本修改不一定,可以先进行后面的&#xff0c…

嵌入式音视频开发(二)ffmpeg音视频同步

系列文章目录 嵌入式音视频开发(零)移植ffmpeg及推流测试 嵌入式音视频开发(一)ffmpeg框架及内核解析 嵌入式音视频开发(二)ffmpeg音视频同步 嵌入式音视频开发(三)直播协议及编码器…

iOS App的启动与优化

App的启动流程 App启动分为冷启动和热启动 冷启动:从0开始启动App热启动:App已经在内存中,但是后台还挂着,再次点击图标启动App。 一般对App启动的优化都是针对冷启动。 App冷启动可分为三个阶段: dyld&#xff1a…

oppo,汤臣倍健,康冠科技25届春招内推

oppo,汤臣倍健,康冠科技25届春招内推 ①康冠科技25届春招 【职位】算法、软件、硬件、技术,结构设计,供应链,产品,职能,商务 【一键内推】https://sourl.cn/2Mm9Lk 【内推码】EVBM88 ②汤臣倍健…

centos 9 时间同步服务

在 CentOS 9 中,默认的时间同步服务是 chrony,而不是传统的 ntpd。 因此,建议使用 chrony 来配置和管理时间同步。 以下是使用 chrony 配置 NTP 服务的步骤: 1. 安装 chrony 首先,确保系统已安装 chrony。 在 CentOS…

解锁 Python 导入系统:从基础到进阶的深度指南

本文全面解读 Python 导入系统,从导入机制的基础概念,如模块、包的导入方式,到查找、加载模块的详细过程,再到导入系统的高级特性和应用场景,通过丰富示例、直观图表和对比分析,助你深入理解并熟练运用导入…

DDoS技术解析

这里是Themberfue 今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。 DoS 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。1996年9月6日,世界第三古老的网络服务提供…

docker安装kafka,并通过springboot快速集成kafka

目录 一、docker安装和配置Kafka 1.拉取 Zookeeper 的 Docker 镜像 2.运行 Zookeeper 容器 3.拉取 Kafka 的 Docker 镜像 4.运行 Kafka 容器 5.下载 Kafdrop 6.运行 Kafdrop 7.如果docker pull wurstmeister/zookeeper或docker pull wurstmeister/kafka下载很慢&#x…

C++ 与 Java 的对比分析:除法运算中的错误处理

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: Java 文章目录 💯前言💯C中的除法错误处理💯Java中的除法错误处理💯C与Java错误处理的对比💯错误处理的优化和实践💯小结 💯前言 在…

LLM之循环神经网络(RNN)

在人工智能的领域中,神经网络是推动技术发展的核心力量。今天,让我们深入探讨循环神经网络(RNN) 一、神经网络基础 (1)什么是神经网络 神经网络,又称人工神经网络,其设计灵感源于人…

SQL sever数据导入导出实验

1.创建数据库TCP-H (1)右键“数据库”,点击“新建数据库”即可 (2)用sql语言创建,此处以创建数据库DB_test为例,代码如下: use master;go--检查在当前服务器系统中的所有数据里面…

让编程变成一种享受-明基RD320U显示器

引言 作为一名有着多年JAVA开发经验的从业者,在工作过程中,显示器的重要性不言而喻。它不仅是我们与代码交互的窗口,更是影响工作效率和体验的关键因素。在多年的编程生涯中,我遇到过各种各样的问题。比如,在进行代码…

计算机网络(涵盖OSI,TCP/IP,交换机,路由器,局域网)

一、网络通信基础 (一)网络通信的概念 网络通信是指终端设备之间通过计算机网络进行的信息传递与交流。它类似于现实生活中的物品传递过程:数据(物品)被封装成报文(包裹),通过网络…

图像处理篇---基本OpenMV图像处理

文章目录 前言1. 灰度化(Grayscale)2. 二值化(Thresholding)3. 掩膜(Mask)4. 腐蚀(Erosion)5. 膨胀(Dilation)6. 缩放(Scaling)7. 旋转…

SpringMVC重定向接口,参数暴露在url中解决方案!RedirectAttributes

OK,首先描述下业务场景,终端数量限制登录 1.首先访问项目login的get接口 2.输入账号密码点击登录后,会请求login的POST接口 3.后台对终端数量逻辑处理不允许登录跳回到登录页面 4.因代码原因需在后台进行多次重定向接口,最后跳…