NumPy 學習筆記二

一、用NumPy進行線性代數運算【numpy.linalg包】

1、用NumPy求矩陣的逆

(1) 創建一個矩陣【np.mat()函數】

(2) 求矩陣的逆【np.linalg.inv()函數】

(3) 乘法檢驗

相乘結果發現,得到的是一個單位矩陣,但是還存在一些小誤差,要獲取誤差,可如下操作

2、用NumPy求解線性方程組【使用np.linalg的solve()求解類似Ax=b線性方程組】

(1)創建矩陣A和數組b

(2)求解線性方程組(np.linalg.solve())

(3) 使用dot()函數進行驗算

3、用NumPy計算特徵值和特徵向量

特徵值是方程式Ax=ax的標量解,其中A爲一個二維矩陣,而x是一維向量,x是特徵值a對應的特徵向量

(1)數學上的求解示例:

(2)使用numpy.linalg包求解

1)創建矩陣

2)使用eigvals()函數求解特徵值

3)使用eig()函數獲取特徵值與特徵向量【返回兩個值,第一個元素爲特徵值,第二個爲特徵向量】

4)驗算求解的結果

由上述結果可知,左邊A*x與右邊a*x是相等的,說明求解無誤。

二、NumPy隨機數

隨機數常用於蒙特卡洛法、隨機積分等方面。真正的隨機數很難得到,一般實際獲取的是僞隨機數。大部分情況下,僞隨機數滿足我們的需求。對於NumPy,與隨機數有關的函數在random子程序包中。NumPy核心的隨機數發生器是基於梅森算法而來的。

1、用二項分佈進行博弈

每次運行程序結果都不同,若要總是得到相同的結果,則需給NumPy的隨機數子程序包中的binomial()函數的一個種子值.

2、正態分佈採樣

(1) 一維正態分佈即標準正態分佈定義【百度百科】

(2)使用NumPy的random子模塊的normal()函數,將正態分佈以直觀的形勢圖示出來

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章