back to index
Linear Algebra Lecture 2: System of Linear Equations

link |
禮拜三的時候講了什麼呢?禮拜三我們講說線性代數這一堂課,我們要學的就是分析線性的系統。
link |
接下來要告訴大家的是,其實線性的系統,你好像覺得聽起來很陌生。
link |
也許你過去沒有聽過線性系統這個東西,但是這個linear system其實它可以有另外一個表示的方式,這個表示的方式你一定知道,你一定在國中高中的時候學過。
link |
這個東西它的英文叫做System of Linear Equations,我們先來講一下什麼是System of Linear Equations,這個東西如果用英文表示的話,你可能一下子想不起來它是什麼,但它的中文就是多元一次的連立方程式。
link |
這個多元一次的連立方程式,我們國中高中的時候就已經學過了。舉例來說,你常常會在國中高中的時候,你常常會需要解這個問題。
link |
我們這邊有一個方程式,這個方程式它是兩倍的s1加三倍的s2加五倍的s3等於5,這個s1,s2,s3叫做variable,這個2,3,5,這個s1,s2,s3的倍數它叫做coefficient,這個等號右邊的5它是一個constant term。
link |
像這樣子兩倍s1加三倍s2加五倍s3等於5的多元一次的方程式,你們在國高中的時候就已經學過了。
link |
如果我們有一大堆的多元一次的方程式,我們就得到一個多元一次的連立方程式,那接下來會問你的問題就是說,給你這個多元一次的連立方程式,它英文是給你這個system of linear equation,那你能不能夠把s1,s2,s3找出來?
link |
我相信你一定知道怎麼做,我們就不要浪費時間告訴你怎麼做,你會用一個消序法把每一個variable的數值找出來,這個就是system of linear equation。
link |
我們可以把剛才的多元一次的連立方程式把這個system of linear equation寫得更general一點,這邊是一個比較一般化的更通用的寫法,在這個寫法裡面我們有n個變數,有n個variable,x1到xn,總共有n個equation。
link |
這n個equation每一個都有一個constant term,這邊寫成b1,b2到bn,在這n個equation裡面,每一個variable都有它的一個coefficient,如果是在第一個equation裡面的第一個variable,x1的coefficient,我們就寫做a11。
link |
這個就是給大家解釋一下notation怎麼表示的,a11的意思是說它是第一個equation的第一個variable它的coefficient,第一個equation的第二個variable的coefficient就寫成a12,一次類推。
link |
a21就是第二個equation的第一個variable的coefficient,a22就是第二個equation的第二個variable的coefficient,再一次類推。所以一個system of linear equation,in general你可以把它寫成這個樣子。
link |
在這個課裡面,這個n跟n這個equation的數目還有變數的數目才會是很大的,我知道在國高中的時候,通常你這個n最多就3,n最多就3,因為超過3你大概算不出來。
link |
在這門課裡面,我們要討論的就是n跟n比較大的時候應該要怎麼處理,會用你國高中的時候沒有學過的觀點來看待這個問題。
link |
在繼續深入講這個system of linear equation之前,我們再來講一些terminology,這些terminology你國高中的時候其實也知道了,只是那個時候你學的可能是中文,所以我們現在來講一下這些terminology英文的版本長的是怎麼樣,確定以後在課堂上我們用的詞彙是一樣的。
link |
如果我們手上有一個function f,這個function會有一個定義域,定義域的英文叫做domain,定義域是什麼意思呢?定義域是說所有可以當作這個function f的input東西的集合就叫做定義域。
link |
所有可以當作f的input的集合就是定義域。這個function的輸出它會落在對應域裡面,對應域的英文是code domain,那個v1帶到function f裡面會得到f,v1,v2帶到function f裡面會得到f,v2,所有的function的輸出都會落在對應域裡面。
link |
所以對應域的意思就是what may possible come out of function f,function f可能出現的output所呈的集合就是對應域。
link |
還有一個東西叫做執域,它的英文是reg,執域的意思就是說那些function真正可以輸出的東西的集合,這邊我就寫說what actually come out of function f,這個function真正可以輸出的集合叫做執域。
link |
通常同學們會比較困惑的點就是code domain跟reg這個對應域跟執域有什麼樣的不同呢?首先這個執域它一定比對應域還要小,這個執域一定是包含在對應域裡面的。
link |
我們這邊就簡單地舉個例子,我今天忘了帶手寫板,所以我發現當我沒有帶手寫板的時候,我就必須要用兩隻手,但我今天沒有麥克風,後面的其實也是聽得到的,所以應該是ok。
link |
舉例來說,有一個很簡單的function是y等於x平方,那它的定義域是什麼呢?它的定義域就是所有的real number,其實定義域是我們自己決定的,我們可以決定說這個function我們要輸入什麼樣的東西。
link |
那我們就說所有我們想要輸入的東西都是real number,所以這個function它的定義域是real number,我這邊想要寫個r,但它不太好看,就當作是個r。
link |
然後這個對應域是什麼呢?對應域的意思,我們來試著讓大家了解一下對應域跟執域的不同。
link |
對應域的意思就是你不假思索地覺得這個function的output會是什麼,讓大家了解嘛,就是我們不要分析這個function的內涵,你不假思索地想一下它的output應該是什麼。
link |
y等於x平方,輸入是real number,輸出是時數,那我們就說輸出y顯然也一定是個時數,那這個就是我們的對應域。反正你今天輸出不管是什麼東西,一定是落在這個時數的範圍之內,那我們就說這個東西叫做對應域。
link |
但是如果你仔細思考了一下這個function的內涵以後發現說,y等於x平方,y一定都大於等於0,那這樣子這個執域其實只包含了0跟所有的正數。
link |
所以這個執域是比所有的real number還小的,你應該寫成是所有的positive real number,我們寫成r+,所有的positive real number跟0所成的集合是我們的執域。
link |
所以希望大家這樣可以了解對應域跟執域之間的差異。
link |
接下來還要講兩個名詞,一個是one-to-one,一個是until,one-to-one它的翻譯是一對一,one-to-one的意思就是說現在所有在domain裡面的object丟到這個function裡面,得到一個在code domain裡面的輸出,這些輸出都是不一樣的。
link |
也就是說沒有兩個input,它們有一樣的output,這個叫做one-to-one。
link |
而有另外一個名詞叫做until,那until它的翻譯,中文翻譯是硬程,until是什麼意思呢?until是說當你的range等於你的code domain的時候叫做until,也就是說你先不假死守的定義出了code domain以後,發現說現在你的function output其實是可以涵蓋整個code domain的。
link |
code domain裡面的每一個object,function都有可能可以output得出來,這個時候你的code domain等於range,那我們說這個function它是一個until的function。
link |
那如果是在一對一的情況下,如果是在one-to-one的情況下,我們知道說在一對一的情況下,我們知道說不管是一對一還是硬程,不管是one-to-one還是until,這個range一定是code domain的一個subset,
link |
所以你的range一定都比code domain還要小。在一對一的時候,我們不知道說code domain是跟range一樣大,還是說會比range還要小,但是我們其實可以知道一件事,知道什麼事呢?知道說這個domain跟你的range是一樣大的。
link |
很合理嘛,因為當然這邊講一樣大是一個很模糊的概念,之後我們會講得更清楚說兩個set它們是一樣大到底是什麼意思,因為這個domain裡面它可能有無窮多個element,它有無窮多個成員,它有無窮多個element,這個range裡面也有無窮多個element,
link |
但是這個domain跟range之間的關係是一對一的,每一個在domain裡面的element都有一個在range中對應的element,所以顯然domain跟range是一樣大的,但我們之後會更詳細的跟大家說明說這邊所謂的一樣大到底是什麼意思。
link |
那在這個onTue的這種function非常直覺的,其實就是根據它的定義,它的code domain跟range是一樣大的,其實就是它的code domain跟range是equivalent的。
link |
好,那接下來就進入linear system,那我們上次已經講過linear system它就是有兩個property,有兩個特質,那哪兩個特質呢?這邊非常快的跟大家複習一下,我們知道說一個function它就是要有一個input x,有一個output y,
link |
那一個linear的function或者是一個linear的system,那意思就是說首先如果我們把輸入乘上k倍,輸出也會乘上k倍,這是線性的系統的第一個特徵。
link |
那線性系統的第二個特徵是說,如果我們今天輸入x1,它的輸出會是y1,如果我們今天輸入x2,它的輸出會是y2,那輸入x1加x2,它的輸出就應該是y1和y2,這個y1加y2,這個是我們上次說過的東西。
link |
那我們也說過說linear system在電機系裡面有非常非常多的應用,你至少有兩門必修課,電路學和信號系統都會用到linear system。
link |
那在繼續講linear system之前,為了要知道大家是不是真的了解linear system的概念,因為很多人對linear system的想像就是有一條直線,它是斜的,那這個叫做linear system。
link |
其實不是這樣,我們今天所舉兩個function,你看看說它們是不是linear system。
link |
第一個function是,這個function的功用就是做微分,你輸入一個訊號f,輸入一個function f,這個derivative,這個藍色的block,它是一個function,
link |
但它可以吃另外一個function當作input,它吃一個function f當作input,它會輸出另外一個function,它會輸出的function是輸入的這個function f的微分,也就是f'.
link |
接下來要問你的就是說,這一個derivative,會做微分的這個function,它是不是一個linear system呢?它是不是一個線性的系統呢?它是不是一個線性的function呢?
link |
這邊舉一個更具體的例子,假設輸入的function是x',那輸出的function會是x'做微分,也就是兩倍的x,也就是說你輸入一個這樣子的訊號,這是x',這是x',那你的輸出是什麼呢?
link |
你的輸出是兩倍的x,大概長得像這樣,大概長得像這樣,你輸入這個東西,輸出這個東西,那顯然要把這一個曲線壓成一條直線顯然是一個很複雜的process,但是它是不是線性的呢?
link |
它是不是線性的呢?或假設你輸入是別的,假設你輸入是三倍的x,三倍的x,三倍的x,它可能長這樣,那輸出是什麼呢?
link |
輸出就是3,輸出會變成一個常數,輸出的function會長這樣,我想要畫一條水平的線,但是沒有非常平,就當作它是很水平的,你覺得它是線性的嗎?
link |
仔細想一下,不要再想什麼線性就是一條斜直線這種東西,想一下線性的定義,它符合線性的兩個定義嗎?
link |
input跟output的關係符合線性的兩個定義嗎?那你覺得這是一個線性的function的同學舉手一下,手放下,你覺得它不是一個線性的function的同學舉手一下,沒有人覺得它不是線性的,沒錯,它確實是一個線性的function。
link |
所以微分感覺好像很複雜,但它其實是線性的,再來我們講積分,我們現在輸入一個function,我們先講一個output,有一個function它的工作就是做積分,
link |
然後這個function它吃一個function當作輸入,它會輸出一個數值,這個數值是什麼?這個數值是把輸入的function f從a積分到b得到一個數值,這個數值就是現在這個會做積分的function的數值。
link |
舉例來說,假設你的輸入是x平方,那你現在的輸出就是把x平方從a積分到b,這個是大一微積分學過的,是什麼呢?是三分之一的b三方減a三方。
link |
或是你可以從另外一個角度來講說,我們現在輸入一個function,它長這樣,然後這個地方是a,這個地方是b,然後所謂的積分就是計算a到b之間的面積的和,把它的面積算出來。
link |
這個就是這邊的輸出,所以這個積分你也可以想成是,今天這個function的工作就是算輸入的這個東西,它的a到b之間的面積的總和,就是它的輸出。
link |
好,那現在問題來了,它是不是一個linear的function呢?積分這件事情很複雜,它把輸入的一個隨著時間變化的信號,它把輸入的一個function變成一個數值,它是不是線性的呢?
link |
你想想看,它是不是符合線性的那兩個定義呢?你三秒鐘的時間想一下,你覺得積分這件事也是線性的,同學舉手一下。好,把手放下來,你覺得積分不是線性的,同學舉手一下。
link |
好,沒有人舉手,所以沒錯,積分也是線性的。所以這個時候你就不會覺得奇怪說,為什麼我們上週講說,其實在電路學那一門課裡面,我們所學到的所有的電路其實都是線性的。
link |
因為就算是你的電感電容它可以做積分這件事,但是積分、微分,它們也是線性的。好,那接下來我們要講的就是說,一個線性的系統,假設我們有一個線性的系統。
link |
那事實上在我們這一門課裡面,通常我們在分析線性的系統的時候,我們都假設它的輸入就是一個向量。那向量是什麼,我們下一堂課會再跟大家簡短地說明一下。但是因為我知道說,我們在高中的時候其實已經學過向量這個東西了,所以我相信你知道它是什麼。
link |
假設這個linear的系統,它的輸入是一個n-微的向量,n-微的向量就是說它裡面有n個element x1, x2到xn,那它的輸出是一個m-微的向量,它的輸出是一個m-微的向量。
link |
我們通常今天在這一門課裡面,通常我們所分析的線性系統,我們都假設說它的輸入是一個n-微的向量,它的輸出是一個m-微的向量,它的input domain是所有n-微向量的集合,它的call domain是所有m-微向量的集合。
link |
那你可能會覺得說,這樣子會不會很侷限呢?就是我們只能夠輸入向量、輸出向量。但是在往後的課程裡會告訴你說,事實上這個世界上很多東西都是向量,連一個function它都可以是一個向量,只是你過去不知道而已。
link |
所以這個分析其實非常的general,可以apply到非常非常多的地方,這個我們之後再講。總之有一個linear的function,它輸入是一個向量,輸出是一個向量,事實上這個linear的function,你就可以把它寫成一個system of linear equation。
link |
那反過來講比較容易,就是一個system of linear equation,如果你把它的x當作是這個system的input,把x當作是這個system的input,把b當作是這個system的output,你把這些variable當作是linear system的input,你把它的constant term當作是這個system的output,
link |
那這個system of linear equation,它顯然是一個linear的system,因為你只要把這些輸入都乘上k倍,都乘上k倍,都乘上k倍,輸出顯然會乘上k倍,對不對,輸入乘上k倍,每一個x都乘上k倍,輸出的每一個b顯然都會乘上k倍,所以它符合線性系統的第一個特徵。
link |
第二個特徵,這個你就自己回去想一下,這個是trivial,不需要證明,你一眼看就知道說,一個system of linear equation,它是一個linear system。
link |
但是反過來講,比較需要想一下,一個linear system,你一定可以把它寫成system of linear equation嗎?一個linear system,它一定有一個對應的system of linear equation嗎?這就是我們下一頁投影片要講的。
link |
好,那下一頁投影片要告訴你的就是說,一個linear system,它一定可以寫成一個system of linear equation,然後接下來呢,假設你知道要怎麼分析一個system of linear equation,你就知道怎麼分析一個linear system,因為一個linear system跟它一定有一個對應的system of linear equation。
link |
接下來就是說明說,給你一個linear system,為什麼它一定有一個對應的system of linear equation?我們現在有一個linear system,我們不知道它長什麼樣子,它是一個黑盒子,我們還不知道它裡面的equation長什麼樣子。
link |
好,那現在我們對這個linear system輸入一個向量,這個向量只有第一維是1,其他維度都是0,這種只有一個維度是1,其他維度都是0的向量,我們叫它standard vector,如果翻成中文,你可能可以翻譯成標準的向量,它叫standard vector。
link |
我們輸入一個standard vector,它第一維是1,其他維都是0,它的輸出,它會給我們一組輸出,你輸入一個東西,一個system總是要給你一組輸出,雖然我們不知道它裡面長什麼樣子,但是我們就丟一組測試資料進去,看看它會輸出什麼,丟11000進去,它就輸出這一排數字。
link |
然後接下來,我們再丟010000進去,它又產生另外一組數字,我們再丟0010000進去,一直丟到0000,只有最後一維是1,其他都是0的向量,把它丟進去,它這個linear system會有一組輸出。
link |
假設我們丟進了這n個standard vector以後,我們就可以得到這n個輸出,那這n個輸出,從這n個輸出,我們其實就可以判斷說這一個function,這一個linear system,它的equation長什麼樣子。
link |
怎麼說呢?我們已經知道說,輸入10000,它的輸出是這樣,根據線性系統的特性,如果你把輸入乘上k倍,輸出就會乘上k倍,所以我們現在把輸入乘上x1倍。
link |
你把輸入的這個vector乘上x1倍,就變成x1後面都是0,那輸出怎麼辦呢?輸入乘上x1倍,那輸出當然就直接乘上x1倍。
link |
所以本來輸入10000,輸出是a11,a21到an1,那這邊的輸出就變成a11x1,a21x1,一直到an1x1。
link |
那同理呢,我們現在把這個vector乘上x2,那它的輸出也會乘上x2,我們把這個vector乘上xn,它的輸出也會乘上xn。
link |
這是用到線性系統的第一個特性,input乘上k倍,output乘上k倍。
link |
接下來我們說,線性系統如果把輸入通通加起來,會等於原來的輸出通通加起來。
link |
也就是說,現在我們把第一個這個vector,x1後面都是0,跟第二個這個vector,0x2後面都是0,一直加到最後,只有最後一位是x1,其他都是0。
link |
把這些vector通通都加起來,我這邊是加的意思,我希望你知道我在畫什麼,這個都是加的意思。
link |
好,把它們通通加起來,你得到的向量是不是就是x1,x2到xn呢?對不對,把它全部加起來就是x1,x2到xn。
link |
那輸出應該是什麼呢?輸出就是原來的這些輸出的總和,就是你把這些輸入加起來,得到的輸出就是這些輸出加起來。
link |
這些輸出加起來,這些輸出加起來,這些輸出加起來是什麼樣子呢?
link |
這些輸出加起來就是下面這個式子,對不對?
link |
這邊你有第一個你輸入x1的時候得到的輸出,它在這邊。
link |
然後這邊你有輸入x2的時候得到的輸出,它在這邊。
link |
這邊你有輸入xn的時候得到的輸出,它在這邊。
link |
把它們通通加起來就是當你x1到xn同時輸入的時候的輸出。
link |
那所以現在我們知道什麼?我們說linear system,假設我們定義說輸出的第一位就是b1,輸出的第二位就是b2,輸出的第n位就是bn。
link |
那我們又知道說它的輸出,第一位的輸出其實就是a11x1加a12x2一直加到a1nxn,這項會等於b1。
link |
a21x1加a22x2加到a2nxn,它會等於b2,那其實它就是一個system of linear equation。
link |
所以今天我們這個投影片讓你學到的事情是說,今天一個linear system,它一定可以寫成一個system of linear equation。
link |
所以之後我們通常在分析的時候,我們就直接告訴你說,我有一個system of linear equation,那我們要分析它,我們要知道它有沒有解等等,那其實我們在分析的就是一個linear system。