Sargent數量經濟學(15-1):線性代數(1)

2021-02-19 宏觀經濟研學會

許文立,安徽大學,xuweny87@163.com

許坤,中國人民大學,kunxu2014@126.com

第二部分  工具與技術

 

線性代數

概述

線性代數是經濟學需要學習的、最有用的應用數學分支之一

例如,經濟和金融中的許多應用問題需要解決線性方程組,如

或者更一般地,

這裡的目標就是給定,解出

在考慮這些問題時,至少要考慮以下一些問題

·        解存在嗎?

·        實際上有很多解,如果是,我們應該如何解釋它們?

·        如果解不存在,是否有最佳的「近似」解呢?

·        如果解存在,我們應該如何計算呢?

這些是由線性代數解決的主題

在本講中,我們將介紹線性和矩陣代數的基本原理,同時考慮理論和計算

本講的一些內容與Numpy有一些重複

注意,本講更為理論,並且包含將在應用中使用的背景材料

向量

長度為n的向量僅僅是n個數的序列(或者數組,或者元組),我們可以寫成

我們會按照要求將這些序列寫成行向量或列向量

(以後,當我們希望執行某些矩陣運算時,就有必要區分兩者)

所有n維向量的集合由表示

例如,是平面,而中的一個向量僅僅是平面是上的一個點

一般,向量用圖形表示為從原點到點的箭頭

下圖以這種方式表示三個向量

如果你有興趣,可以查看生成該圖的Python代碼,https://github.com/QuantEcon/QuantEcon.lectures.code/blob/master/linear_algebra/vecs.py

向量運算

最常用的兩種向量運算是加法和標量乘法,我們現在描述

定義,當我們讓兩個向量相加時,我們讓它們的每個元素相加

標量乘法是一個數lamda與一個向量x相乘的運算,

標量乘法如下圖所示

在Python中,向量可以表示為列表或元組,例如,x = (2, 4, 6),但更常用的表示為NumPy數組(https://lectures.quantecon.org/py/numpy.html#numpy-array)

NumPy數組的一個優點是標量乘法和加法具有非常自然的語法

內積和範數

向量x,y的內積定義為

如果兩個向量的內積為零,稱為正交

向量x的範數表示其「長度」(即,其距離零向量的距離),被定義為

表達式被看作x和y之間的距離

繼續看前面的例子,內積和範數可以採用如下代碼計算

張成(Span)

中給出一組向量,很自然地想到可以通過執行線性運算創建新向量

以這種方式創建的新向量被稱為A的線性組合

特別地,的線性組合,如果

在這種情況下,值被稱為線性組合的係數

A的線性組合的集合被稱為A的張成

下圖顯示了的張成

該張成是通過這兩點和原點的二維平面

產生該圖的代碼下載地址https://github.com/QuantEcon/QuantEcon.lectures.code/blob/master/linear_algebra/3dvec.py

示例

如果A只包含一個向量,那麼它的張成就是a1的數量乘積,這是通過a1和原點的唯一直線

如果由R^3的經典單位向量組成,也就是

那麼,A的張成就是R^3中的所有元素 ,因為對於任何,我們可以寫

現在考慮

如果是這些向量的任意線性組合,那麼,

因此A0無法張成R^3中的所有向量集

線性無關

我們將看到,通常希望找到具有相對較大張成的向量族,使得許多向量可以由幾個向量的線性運算描述

我們所需要的的條件被稱為線性無關性

具體地,向量的集合被說成是

·        線性相關,如果一些A的子集與A具有相同的張成

·        線性無關,如果它不是線性相關的

換句話說,如果沒有向量冗餘,則一組向量是線性無關的,否則是線性相關的

為了說明這個想法,回憶一下,展示向量的張成的圖,即通過原點的平面

如果我們給出第三個向量a3,並形成集合,則該集合是

·        線性相關,如果a3位於平面中

·        否則,線性無關

作為概念的另一個例證,由於R^n可以被n個向量張成,任何m>n個向量的集合肯定是線性相關的

以下語句等同於線性無關

1.    A中的向量不能由其他元素的線性組合構成

2.    如果,那麼,

(第一個表達式中的零是R^n的原點)

唯一的表示

關於線性無關向量的集合的另一個好處是,張成中的每個元素都有一個唯一的表達式來作為這些向量的線性組合

換句話說,如果是線性無關的,且

那麼沒有其他係數序列可以得到相同的向量y

的確,如果我們也有,那麼

線性無關意味著對於所有的i,

矩陣

矩陣是組織用於線性運算的數據的整潔方式

一個矩陣是n行、k列的矩形數組A:

通常,矩陣中的數字表示線性方程組中的係數,如本講座開始時所討論的

顯而易見,如果n=1或者k=1,那麼,矩陣A也被稱為向量

在前一種情況下,A被稱為行向量,而後者稱為列向量

如果n = k ,則A 稱為方陣

aji與aij交換形成的矩陣被稱為A的轉置,表示為

如果A = A',則A 稱為對稱矩陣

對於方陣A ,形成aii的第i個元素被稱為主對角線

A 被稱為對角陣,如果唯一非零項都在主對角線上

如果除對角線之外,主對角線上的每個元素等於1,則A 稱為單位陣,並用I表示

矩陣運算

就像向量一樣,矩陣也定義了一些代數運算

數量乘法和加法是向量的直接推廣:

在後一種情況下,矩陣必須具有相同的行列,才能使運算有意義

矩陣乘法的規則是上述討論的內積的推廣,旨在使乘法與基本的線性運算相適應

如果A和B是兩個矩陣,則它們的乘積AB是A的第i行和B的第j列的內積組成的第i,j個元素

有很多教程,可以幫助你可視化此運算,如http://www.mathsisfun.com/algebra/matrix-multiplying.html,或者維基百科的討論(https://en.wikipedia.org/wiki/Matrix_multiplication)

如果A是n*k, B是j*m,那麼,要讓A*B,我們需要k=j,且得到的AB矩陣是n*m

也許是最重要的特例,考慮n*k的矩陣A 乘k*1的列向量x

根據前面的規則,我們得到一個n*1的列向量

注意

AB和BA通常不一樣

另一個重要的特例是單位矩陣

如果A是n*k, I是k*k的單位矩陣,那麼AI = A

如果I是n*n的單位矩陣,則IA = A

NumPy中的矩陣

NumPy數組也被用作矩陣,對於所有的標準矩陣運算,其具有快速、有效的函數和方法[1]

您可以從元組(或列表列表)的元組中來手動創建它們,如下所示

該shape屬性是一個給出行和列數目的元組-更多的討論,參看https://lectures.quantecon.org/py/numpy.html#numpy-shape-dim

為了得到A轉置,使用A.transpose()或更簡單地,A.T

有許多方便的函數,用於創建常用矩陣(零矩陣,單位陣,等等) - 見https://lectures.quantecon.org/py/numpy.html#creating-arrays

由於默認情況下元素執行操作,因此標量乘法和加法具有非常自然的語法

要乘以矩陣,我們使用 np.dot

特別地,np.dot(A, B)是矩陣乘法,而A * B是元素乘法

更多的討論,參見https://lectures.quantecon.org/py/numpy.html#numpy-matrix-multiplication

矩陣映射

每個n*k矩陣A都可以視為與函數相同,函數把映射到

這些函數具有特殊的性質:它們是線性的

一個函數被稱為線性的,如果,對於所有和所有標量alfa,beta,我們有

你可以驗證,當b是零向量時,函數成立,而b為非零向量時則不成立

事實上,眾所周知地是若且唯若存在一個矩陣A使得所有x都滿足時,f是線性的 。

(未完待續……)

相關焦點

  • 《線性代數應該這樣學》解讀「1」
    來了老弟應用到線性代數學習上,也是一樣的操作。線性代數偏重於理解,很抽象,很雜,很繁,很煩。「線性代數好難」共搜索到2400000個簡單地說就是,這不是一系列很嚴謹正確但是看不懂的文章。國內教科書大多從行列式講起,國外則不是,Sheldon Axler的《Linear Algebra Done Right》(中文譯名「線性代數應該這樣學」)完全拋棄了矩陣和行列式的概念,深入到最本質的向量空間,講的更清楚。
  • 線性代數的非主流經典名作:《線性代數應該這樣學》
    本書是公認的闡述線性代數的經典佳作。從線性代數基礎講起,無需更多數學預備知識。拋棄晦澀難懂的行列式,從向量空間和線性映射出發描述線性算子。包含561道習題和大量示例,提高學生理解和熟練運用線性代數知識的能力並闡明線性代數的主要思想。對術語、結論、證明思路、提及的數學家做了注釋,增加行文趣味性。
  • 人工智慧之線性代數
    線性代數是代數學的一個分支,主要處理線性問題。線性問題是指數學對象之間的關係是以一次形式來表達的。線性代數誕生於求解線性方程組。行列式、矩陣和向量是處理線性問題的有力工具。線性代數與人工智慧的聯繫:1)神經網絡中的所有參數都被存儲在矩陣中;線性代數使矩陣運算變得更加快捷簡便,尤其是在GPU上訓練模型時,因為GPU可以並行地以向量和矩陣運算。2)圖像在計算中被表示為按序排列的像素數組。3)視頻遊戲使用龐大的矩陣來產生令人炫目的遊戲體驗。
  • 為什麼學習線性代數?
    簡短的回答就是:        (1)我們所處的世界、宇宙太複雜了,很多現象都無法理解,更談不上用數學去描述;        (2)有一些符合特定條件的複雜問題,可以轉化為簡單的線性問題,線性問題就完全可以理解、完全可以被數學所描述(怎麼把複雜問題轉為線性問題是別的學科要解決的,比如說微積分);        (3)線性代數就是研究怎麼解決線性問題的
  • 如何學好線性代數?
    哈爾莫斯在回憶錄《我要做數學家》( I Want to Be a Mathematician )談到他第一次學習線性代數的悲慘遭遇[1]:代數課很難,我讀得很搓火。…當我說搓火,我是真的生氣。Brahana… 不知道如何說清楚,我們的教材是 Bcher 的書(我認為寫得一團糟),我花在這個科目的多數時間裡,我的情緒惱火到憤怒。…不知怎麼的,我的線性代數導論最後倖存下來。
  • 【線性代數】挑戰線性代數——是非題解(3)
    線性代數是非題解題11.
  • 線性代數重要,選對教材更重要:同濟版《線性代數》引發激烈爭議
    如今已經畢業多年,沒想到最近在知乎上看到一篇文章《《線性代數》(同濟版)——教科書中的恥辱柱》,點讚量快突破五千。對於這篇文章,大家有時間可以讀一下,看看是不是同意作者的觀點。線性代數真的很重要,這是很多工程技術人員走上工作崗位的最大感受。好多算法都用到線性代數的知識,就比如現在非常熱門的深度學習,它的底層實現方式用到好多線性代數方面的知識。
  • 線性代數應該這樣學
    引言線性代數是以解線性方程組為出發點,主要研究線性空間及其上的線性變換.考慮如下的線性方程組: 我們引入矩陣有了線性運算和乘法運算,上述線性方程組就可以分別表示為向量形式和矩陣形式:線性代數主要是圍繞著上述兩種形式來求解線性方程組的.1. 矩陣形式我們已通過矩陣乘法將線性方程組表示為矩陣形式
  • 《世紀雲圖·2017張宇線性代數9講》圖書
    噹噹購買連結點擊進入【教材名稱】世紀雲圖2017張宇線性代數9講(2017張宇考研系列叢書+全新正版圖書+張宇考研數學學習包用書)【作者】張宇主編【
  • 線性代數學習的核心——從雞兔同籠到線性方程組
    假設雞兔訓練有素,吹哨則抬腿,那麼一聲哨響,20條腿抬起,又一聲哨響,20條腿抬起,只有2隻腳的可憐的雞們,已經一屁股坐地上、兩腳朝天了,地上還剩餘的10條腿,全是兔子的,故5隻兔子,另有15隻雞。比起這個萌系的方法,孫子算經就比較殘忍了,屠夫刷刷25刀,把每隻雞和兔子的腿都砍掉了一半,獨腳雞和雙腿兔當然還是20個頭,腿卻只有25個了,獨腳雞一個腦袋一條腿,一樣多,每隻雙腿兔卻是2條腿1個兔頭,腿比頭多1,那麼自然有5隻兔子。其他方法,不一一列舉了。
  • 2016考研數學:線性代數解題技巧
    >>2016考研考前終極預測題及答案解析匯總(各科目)   線性代數考研數學中佔有重要的地位,多以計算題為主,證明題為輔。以下是總結的線性代數解題技巧,以供大家參考。
  • 線性變換——線性代數的本質(二)
    1、先說說變換:其實你可以將變換理解為函數。函數是我們再熟悉不過的東西了:接收數值,一頓內部操作,輸出結果。(自動腦補成動畫形式)2、再說說線性:所謂線性變換,只需要滿足兩點即可:1、變換前後原點必須保持固定。
  • 學好線性代數,我推薦這本書|展卷
    我將阿克斯勒的這本書鄭重推薦給所有想重新從幾何的觀點看待線性代數的朋友,所有想從零開始學習線性代數的朋友。該書繼承和發揚了哈爾莫斯《有限維向量空間》的幾何化特色,以幾何引代數,以概念指導計算!它會告訴你,線性代數不僅僅是矩陣論,或者更恰當地說,從幾何的觀點看,線性代數和矩陣論原來可以很簡單!
  • 深度學習和機器學習的線性代數入門
    正確理解機器學習和深度學習的概念,掌握以下這些數學領域至關重要:機器學習和深度學習中的線性代數在機器學習中,很多情況下需要向量化處理,為此,掌握線性代數的知識至關重要。對於機器學習中典型的分類或回歸問題,通過最小化實際值與預測值差異進行處理,該過程就用到線性代數。通過線性代數可以處理大量數據,可以這麼說,「線性代數是數據科學的基本數學。」
  • 線性代數2015考研暑期複習思路
    考研數學主要考查三科:高等數學、線性代數、概率論與數理統計,三門課程所佔的分值比例也不一樣,總體來說高等數學佔考研數學的大部分比例,而線性代數不管數幾所佔的分值比例均是22%。雖然線代只佔22%的分值,但是它的複習確有一定的難度,這是因為線性代數這門學科不僅知識點多、概念多、定理多、符號多、運算規律多,而且各章節的內容也是相互縱橫交錯的,知識點之間的聯繫非常緊密。因此,廣大考生在暑期複習線性代數的時候應該將重點放在對基本概念的理解上,做到掌握基本定理的條件、結論及其應用、各種運算規律及基本題型的計算方法等。
  • 考研數學線性代數七大重點考點
    考研線性代數這門學科大體上可以分為以下幾個部分:行列式、矩陣、線性方程組、向量、特徵值與特徵向量、相似與相似對角化、二次型等。本文整理了「考研數學線性代數七大重點考點」的文章,一起學習一下吧! 一、學科工具 線代前幾個部分我們稱之為學科工具,包括:行列式、矩陣、秩。這一部分考點通常情況下是作為做後續解答題的工具而存在的,當然也可能會直接考查,以選擇題的形式單獨出現。
  • 機器學習中的線性代數:關於常用操作的新手指南
    如果你也跟本文作者一樣,正在探索深度學習又困於相關數學概念,那麼一定要讀下去,這是一篇介紹深度學習中最常用線性代數操作的新手指南。在深度學習中,線性代數是一個非常有用的數學工具,提供同時操作多組數值的方法。
  • 2021考研:線性代數怎麼複習?
    1.綜合掌握「一條主線,兩種運算,三個工具」   複習過程中,綜合掌握「一條主線,兩種運算,三個工具」。一條主線是解線性方程組,線代概念非常多而且相互聯繫,但線代貫穿的主線求方程組的解,只要將方程組的解的概念和一般方法理解透徹,再回過頭看前面的內容就非常簡單。
  • 線性代數的直觀指南 第一部分
    英文網址: betterexplained.com/articles/linear-algebra-guide/儘管我已經聽過線性代數這門課程,但我的知識僅包括「矩陣、行列式和特徵什麼東東之類的」. 為什麼會這樣呢?好的,讓我們試試這種線代傳統授課形式:把課程命名為線性代數,但關注點卻是矩陣與向量。
  • 這是一份文科生都能看懂的線性代數簡介
    線性代數的概念對於理解機器學習背後的原理非常重要,尤其是在深度學習領域中。它可以幫助我們更好地理解算法內部到底是怎麼運行的,藉此,我們就能夠更好的做出決策。所以,如果你真的希望了解機器學習具體算法,就不可避免需要精通這些線性代數的概念。這篇文章中,我們將向你介紹一些機器學習中涉及的關鍵線性代數知識。