《機器學習數學基礎》補充資料:求解線性方程組的克拉默法則

《機器學習數學基礎》中并沒有將解線性方程組作為重點,只是在第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=[11?23?45?] ,線性方程

[ 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} [11?23?45?] ?x1?x2?x3?? ?=[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 ?x1?x2?x3?? ?= ?000? ?, ?21?1? ?, ?42?2? ?,?

可以將上述解寫成:

[ 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} ?x1?x2?x3?? ?=α ?21?1? ?(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} [11?23?45?] ?x1?x2?x3?? ?=[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 ?x1?x2?x3?? ?= ?210? ?, ?001? ?, ?42?1? ?,?

這些點的集合是一條不過原點的直線。即 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(u?v)=0

u ? v \pmb{u}-\pmb{v} u?v 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} u?v 的方向必然在直線 l 2 l_2 l2? 的方向上(或者在直線 l 2 l_2 l2? 上,或者在于 l 2 l_2 l2? 平行的直線上)。

又因為 u ? v \pmb{u}-\pmb{v} u?v 也是 A x = 0 \pmb{Ax}=\pmb{0} Ax=0 的解,所以 u ? v \pmb{u}-\pmb{v} u?v 在過原點的直線 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)=[a1????ai?1??b?ai+1????an??]

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=[e1????en??]

以列向量 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[e1????x???en??]

參考“對矩陣乘法深入理解”中以列為單元進行矩陣乘法,上式可以進一步變換:

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)?=[Ae1????Ax???Aen??]=[a1????b???an??]=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 ?1111?x1?x2?x3?x4??0000?0000? ?=x2? ?100?01)?001? ?=x1??1=x2?

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70168.shtml
英文地址,請注明出處:http://en.pswp.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.因代碼原因需在后臺進行多次重定向接口,最后跳…