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

《机器学习数学基础》中并没有将解线性方程组作为重点,只是在第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.rhkb.cn/news/20593.html

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

相关文章

力扣 买卖股票的最佳时机

贪心算法典型例题。 题目 做过股票交易的都知道,想获取最大利润,就得从最低点买入,最高点卖出。这题刚好可以用暴力,一个数组中找到最大的数跟最小的数,然后注意一下最小的数在最大的数前面即可。从一个数组中选两个数…

idea无法联网,离线安装插件

插件地址:https://plugins.jetbrains.com/ JetBrains Marketplace 如果无法进入,可以试试 配置hosts 3.163.125.103 plugins.jetbrains.com ip 变了,可以查询个最新的: https://tool.chinaz.com/speedtest/plugins.jetbrai…

【Spring详解一】Spring整体架构和环境搭建

一、Spring整体架构和环境搭建 1.1 Spring的整体架构 Spring框架是一个分层架构,包含一系列功能要素,被分为大约20个模块 Spring核心容器:包含Core、Bean、Context、Expression Language模块 Core :其他组件的基本核心&#xff…

Spring Boot 定时任务:轻松实现任务自动化

在现代应用开发中,定时任务是一个常见的需求。比如,我们可能需要定时清理过期数据、定时发送邮件通知等。 操作流程 开启定时任务注解 在启动类添加注解EnableScheduling 设置时间(固定时间间隔) 使用 Scheduled 注解创建定时…

DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)

DeepSeek官网 目前阶段,DeepSeek R1是不能直接生成图片的,但可以通过优化文本后转换为SVG或HTML代码,再保存为图片。另外,Janus-Pro是DeepSeek的多模态模型,支持文生图,但需要本地部署或者使用第三方工具。…

燧光 XimmerseMR SDK接入Unity

官网SDK文档连接: RhinoX Unity XR SDK 一:下载SDK 下载链接:RhinoX Unity XR SDK 二:打开Unity项目,添加Package 1、先添加XR Core Utilties包和XR Interaction Toolkit包 2、导 2、再导入下载好的燧光SDK 三&…

vue学习笔记

结合目录,点击阅读 文章目录 案例1:第一行vue代码App.vue引入Person.vue案例:改变变量的值案例:改变对象属性值案例:toRefs进行解包案例:给名字首字母大写案例:监视变量值的变化案例&#xff1…

初学PADS使用技巧笔记(也许会继续更新)

操作意图:网上找某个芯片封装又不想自己画,再加上没经验,怎么办? 就以AC-DC芯片PN8036为例,打开嘉立创的的DFM,打开立创商城,输入PN8036,点击数据手册,然后点击直接打开…

解锁机器学习核心算法 | 随机森林算法:机器学习的超强武器

一、引言 在机器学习的广阔领域中,算法的选择犹如为一场冒险挑选趁手的武器,至关重要。面对海量的数据和复杂的任务,合适的算法能够化繁为简,精准地挖掘出数据背后隐藏的模式与价值。机器学习领域有十大核心算法,而随…

LeetCode每日精进:225.用队列实现栈

题目链接:225.用队列实现栈 题目描述: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x…

二.数据治理流程架构

1、数据治理流程架构核心思想: 该图描绘了一个以数据标准规范体系为核心,大数据生命周期管理为主线,数据资源中心为依托,并辅以数据质量管理和大数据安全与隐私管理的数据治理流程架构。它旨在通过规范化的流程和技术手段&#x…

java_使用Spring Cloud Gateway + nacos实现跨域访问

Spring Cloud Gateway简介 Spring cloud gateway是spring官方基于Spring 5.0、Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生…

Linux中安装open-webui报sqlite版本低的解决办法

almalinux中安装好open-webui,启动服务时报如下错: RuntimeError: [91mYour system has an unsupported version of sqlite3. Chroma requires sqlite3 > 3.35.0.[0m [94mPlease visit https://docs.trychr…

基于SpringBoot+Vue的老年人体检管理系统的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【AI视频】Runway注册、基本设置、主界面详解

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AI视频 | Runway 文章目录 💯前言💯Runway的正确启动方式推荐使用Google Chrome打开Chrome翻译 💯Runway的注册💯My Account(我的账户)General&a…

大数据的特点

高速、多样性、大量、低价值密度 大数据的应用场景 视频推荐,电商推荐,零售,金融 发展脉络 1.单机时代 2.大数据时代-分布式处理 Hadoop的优势 高可靠性、高拓展性、高效性、 高容错性

P8752 [蓝桥杯 2021 省 B2] 特殊年份——string提取索引转换为值

这里写目录标题 链接题目代码大佬解答string提取索引转换为值 链接 P8752 [蓝桥杯 2021 省 B2] 特殊年份 题目 代码 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <math.h> #include <queue&g…

使用SHOW PROCESSLIST和SHOW ENGINE INNODB STATUS排查mysql锁等待问题

现象&#xff1a; mysql 查某表一直不能结束&#xff0c;查别的表没有问题。已知之前刚刚alter此表想把它的一个字段长度增长&#xff0c;但是这个操作一直没有结束。现在应该怎么办? 方案: 使用 SHOW PROCESSLIST; 查看当前所有活动的SQL线程&#xff0c;找出是否有长时间…

Unity UI个人总结

个人总结&#xff0c;太简单的直接跳过。 一、缩放模式 1.固定像素大小 就是设置一个100x100的方框&#xff0c;在1920x1080像素下在屏幕中长度占比1/19&#xff0c;在3840x2160&#xff0c;方框在屏幕中长度占比1/38。也就是像素长款不变&#xff0c;在屏幕中占比发生变化 2.…

Jmeter如何计算TPS

1.在jmeter中计算出接口请求的个数 1175 1172 1172 174 200 416 384 1174 5867 2.计算接口平均响应时间 计算每个接口的请求次数乘以平均响应时间&#xff0c;所有接口相加&#xff0c;然后除以所有接口的数量总和&#xff0c;得到接口的平均响应时间 (1175*18191172*…