非科班程式設計師才不知道的線性系統
害怕並不代表沒有勇氣,真正的行動才是最重要的。一個人究竟是英雄還是懦夫,由行動決定。 -《創業維艱》
此手記基於慕課網liuyubobobo老師的,感謝老師
線性系統
- 線性系統:未知數只能是一次方項
- 消元法
- 一個方程的左右兩邊同時乘以一個常數
- 一個方程加(減)另一個方程
- 交換兩個方程的位置
- 使用矩陣來消元(高斯消元):
- 構建增廣矩陣。其實,未知數的表示並沒有意義,反而我們透過列數來表示未知數的個數,而行數代表線性系統有幾個方程
- 第n行的第n個元素叫做主元(pivot),將主元化為1
- 當主元沒有值時,我們可以交換行的位置來去掉這個約束。(通常是和當前主元位置最大的行來交換,這樣可以儘量小的避免誤差)
- 當求出一個未知值時,我們透過回代或者時高斯約旦消元法來求的剩下的值
- Gauss-Jordan Elimination
- 前向過程(從上到下)
- 1.選擇最上的主元,化為1
- 2.主元下面的所有行減去主元所在行的某個倍數,使得主元下面所有元素都為0
- 後向過程(從下到上)
- 1.選擇最下的主元
- 2.主元上面的所有行減去主元所在行的某個倍數,使得主元上面所有元素都為0
- 本質:尋找一系列初等矩陣E,使得:Ep·…·E3·E2·E1·A=rref(A)
- 前向過程(從上到下)
結構
-
行最簡形式 reduced row echelon form(RREF)
- 階梯型矩陣
- 全零行必須在最下面
- 非零行的第一個元素(主元)為1
- 主元所在列的其他元素均為0
- 階梯型矩陣
- n個未知數有n個方程,才可能有唯一解
- 方程組個數小於未知數個數,一定沒有唯一解
當然,對於行最簡形式,係數矩陣的非零行不可能大於未知數個數,這樣的話,就可以去除無解的情況
又因為行最簡形式,係數矩陣的非零行等於未知數個數:一定有唯一解
更一般的高斯約旦消元-案例
齊次線性方程組
- 肯定有解
- 最後一列肯定永遠為零
- 最後一列肯定永遠為零,解的過程可以只對係數矩陣做操作
求矩陣的逆
- 對於一個方陣來說,它的逆不可能有無數解。要麼有,要麼沒有
- 係數矩陣化為行最簡形式時有0行時無解
- 如果一個方陣A有右逆B,則B也是A的左逆,即B是A的逆
初等矩陣
- 初等矩陣是指由單位矩陣經過一次三種矩陣初等變換得到的矩陣。通常記做E
矩陣的某一行乘以一個常數
矩陣的一行加(減)另一行
交換矩陣的兩行
-
初等矩陣對單位矩陣進行一次初等變換得到,因為初等變換是可逆的,所以初等矩陣是可逆的
-
使用求解A的逆該方法和直接使用高斯消元法來求解的過程的時間複雜度大體上是一致的。
-
但是如果在A不變,b會變化的條件下,大大加快計算速度
-
對於方陣A(以下命題全部等價)
-
矩陣A可逆(A是非奇異矩陣) -> 矩陣A不可逆(A是奇異矩陣) ,存在零行
-
線性系統Ax=0只有唯一解,x=0
-
rref(A)=I
-
A可以表示成一系列初等矩陣的乘積
-
Ax=b只有唯一解
矩陣的LU分解
提高計算效率為目的。
在解Ax=b的過程中,LU分解:O(0.5n3)
L·U·x=b
設Ux=y,L·y=b,O(n2)求出y,U·x=y,O(n2)求出x
在解Ax=b的過程中,LU分解:O(0.5n3)+2O(n2),求逆:O(2n3)+ O(n^2)
LU分解可以用於非方陣
-
將矩陣A分解為A=L·U
-
L:Lower Triangle Matrix 下三角矩陣
-
U:Upper Triangle Matrix 上三角矩陣
-
矩陣可以進行LU分解的條件:
- 對A進行高斯消元的過程,不需要交換兩行的位置,不過可以透過PLU分解實現
PLU
另一種情況
- 繼續高斯消元,需要交換矩陣的兩列
- 初等變換隻能交換矩陣的兩行
- 交換矩陣的兩列,需要右乘以置換矩陣
線性組合
向量的兩個最基本的運算構建了線性代數中最重要的一個概念:線性組合
- 三維空間中的任何一個向量都是其三個標準單位向量的一個線性組合
- 矩陣和向量的乘法,可以看做是矩陣的列向量的一個線性組合
線性相關
- 任何一個向量都不可以表示成其他向量的線性組合。
生成空間
- 若m個向量生成n維空間,m最小為n
- e1,e2也是二維空間的基;u,v也是二維空間的基。他們應該具有同樣的性質!
- 在二維空間,任何一個向量(或者是點)都可以表示成e1,e2的線性組合。
- 在二維空間,任何一個向量(或者是點)都可以表示成u和v的線性組合!且表示方法唯一。
- 推廣:在n維空間,如果給定一組基。
- 推廣:任何一個向量(或者是點)都可以表示成這組基的線性組合!
空間
- 空間是一個集合
- 歐幾里得空間是有序實數元組的集合
- (6,66)屬於二維歐幾里得空間; R^2
- (3.14,0,sqrt(2))屬於三維歐幾里得空間;R^3
- 歐幾里得空間是點集;是起點為原點的向量集合,屬於向量空間
-
向量空間:一個集合,集合中的元素可以定義兩種運算:加法和數量乘法,使得滿足十條性質。
- 對於一個向量空間V
- 如果u,v都屬於V,則u+v屬於V
- 如果u屬於V,k是一個實數,則ku屬於V
- 在數學上,被稱為封閉(closure)
- 向量空間十條定理
- 加法交換律:u+v=v+u
- 加法結合律:(u+v)+w=u+(v+w)
- 存在O屬於向量空間,使得u+O=u
- 對於每一個u存在-u,使得u+(-u)=O
- 如果u屬於V,k是一個實數,則ku 屬於V
- 數量乘結合律:(kc)u=k(cu)
- 數量乘分配律:k(u+V)=ku+kv
- 數量乘分配律:(k+c)u=ku+cu
- 1*u = u
- 對於一個向量空間V
廣義向量空間
- 為了區別,通常把非歐幾里得空間的向量空間,稱為廣義向量空間。
- 所有的多項式,構成一個向量空間。
- 加法:多項式加法;數量乘法:多項式乘以一個數
- 加法:多項式加法;數量乘法:多項式乘以一個數
- 所有的n階方陣,構成一個向量空間。
- 所有的m*n的矩陣,構成一個向量空間。
- 加法:矩陣加法;數量乘法:矩陣數量乘法。
- 加法:矩陣加法;數量乘法:矩陣數量乘法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2819789/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 非科班程式設計師才不知道的矩陣Matrix程式設計師矩陣
- 非科班程式設計師和科班程式設計師的差距到底在哪裡?程式設計師
- 一位非科班阿里程式設計師的 CTO 之路阿里程式設計師
- 自控原理中的線性系統和非線性系統
- 非科班出身的Web前端程式設計師,從這三個方面來提升自己Web前端程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- 讓程式設計師崩潰的瞬間(非程式設計師勿入)程式設計師
- 好與壞的程式設計師:如何評價程式設計師的水平才算客觀?程式設計師
- 程式設計師:全棧的痛你不知道程式設計師全棧
- 程式設計師做自己的產品 “線上客服系統” 之:種子使用者的重要性程式設計師
- 40個只有程式設計師才看得懂的段子程式設計師
- 程式設計師你是如何解決軟體系統的易排錯性?程式設計師
- Linux系統——程式設計師跳槽必備Linux程式設計師
- 華瑞IT學校|非科班出身零基礎能學好程式設計嗎程式設計
- 程式設計師都不知道的5種將死的程式語言程式設計師
- 目前最系統的程式設計師未來職業規劃路線,請收藏程式設計師
- 程式設計與線性代數程式設計
- 程式設計師不得不知道的 API 介面常識程式設計師API
- 一個專為程式設計師設計的精緻 Java 部落格系統程式設計師Java
- 月入多少的java程式設計師才可以養得起成都小甜甜?Java程式設計師
- 只有爛程式設計師才相信世界是由技術驅動的程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- (Python程式設計 | 系統程式設計 | 並行系統工具 | 程式退出)Python程式設計並行
- 系統程式設計程式設計
- 系統架構設計師學習(二)系統架構設計師緒論架構
- 自學程式設計和計算機科班出身的差別在哪?程式設計計算機
- 程式設計師的打怪升級之路,程式設計師未來職業規劃全路線程式設計師
- 二三線城市的程式設計師如何走向高薪?程式設計師高薪
- 還不知道這個原則的程式設計師,要小心了程式設計師
- 只有程式設計師才懂的高考卷,你能拿滿分嗎?程式設計師
- 寫了很久,這是一份最適合/貼切普通大眾/科班/非科班的『學習路線』
- 好程式設計師Java教程分享如何系統的學習Java程式設計師Java
- 程式設計師喜歡Linux系統的原因是什麼?程式設計師Linux
- 【2020Java最新學習路線】寫了很久,這是一份最適合普通大眾、科班、非科班的路線Java
- 程式設計師的線性代數教程!Jupyter 程式碼和視訊可能更適合你程式設計師
- 什麼才算是真正的程式設計能力?程式設計
- Java常見的系統屬性值及如何通過Java程式設計獲得系統屬性值Java程式設計
- 嵌入式系統設計師