數學學習如此容易:用Python計算特徵值和特徵向量

2020-11-30 python大大

什麼是NumPy?

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協作者共同開發,2005 年,Travis Oliphant 在 Numeric 中結合了另一個同性質的程序庫 Numarray 的特色,並加入了其它擴展而開發了 NumPy。NumPy 為開放原始碼並且由許多協作者共同維護開發。

NumPy 是一個運行速度非常快的數學庫,主要用於數組計算,包含:

一個強大的N維數組對象 ndarray廣播功能函數整合 C/C++/Fortran 代碼的工具線性代數、傅立葉變換、隨機數生成等功能特徵值和特徵向量的定義

設A是n階方陣,如果數λ和n維非零列向量x使關係式Ax=λx成立,那麼這樣的數λ稱為矩陣A特徵值,非零向量x稱為A的對應於特徵值λ的特徵向量。式Ax=λx也可寫成( A-λE)X=0。這是n個未知數n個方程的齊次線性方程組,它有非零解的充分必要條件是係數行列式| A-λE|=0。

特徵值 是方程式Ax=ax的標量解(scalar solutions),其中A是一個二維矩陣,而x是一維向量。 特徵向量 實際上就是表示特徵值的向量。

提示:

特徵值和特徵向量都是基本的數學概念,並且常用於一些重要的算法中,如 主成分分析(PCA) 算法。PCA可以極大地簡化大規模數據集的分析過程。

用NumPy進行計算

計算特徵值時,可以求助於numpy.linalg程序包提供的eigvals()子例程。函數eig()的返回值是一個元組,其元素為特徵值和特徵向量。

可以用子程序包numpy.linalg的eigvals()和eig()函數來獲得矩陣的特徵值和特徵向量,並通過dot()函數(詳見本書對應的eigenvalues.py文件)來驗算結果。

import numpy as npA = np.mat("3 -2;1 0")print "A\n", Aprint "Eigenvalues", np.linalg.eigvals(A)eigenvalues, eigenvectors = np.linalg.eig(A)print "First tuple of eig", eigenvaluesprint "Second tuple of eig\n", eigenvectorsfor i in range(len(eigenvalues)):print "Left", np.dot(A, eigenvectors[:,i])   print "Right", eigenvalues[i] * eigenvectors[:,i]   print下面來計算一個矩陣的特徵值。

1.創建矩陣。

下列代碼將創建一個矩陣:

A = np.mat("3 -2;1 0")print "A\n", A下面的矩陣即剛才創建的矩陣。

<pre><code><strong>A[[ 3 -2][ 1  0]] </strong></code></pre>2.利用e``ig()函數計算特徵值。

這時,我們可以使用eig()子例程:

print "Eigenvalues", np.linalg.eigvals(A)該矩陣的特徵值如下:

Eigenvalues [ 2.  1.] 3.利用eig()``函數取得特徵值和特徵向量。

利用eig()函數,可以得到特徵值和特徵向量。注意,該函數返回的是一個元組,其第一個元素是特徵值,第二個元素為相應的eigenvectors,其以面向列的方式 排列:

eigenvalues, eigenvectors = np.linalg.eig(A)print "First tuple of eig", eigenvaluesprint "Second tuple of eig\n", eigenvectors特徵值eigenvalues和特徵向量eigenvectors的值為:

First tuple of eig [ 2.  1.]Second tuple of eig[[ 0.89442719  0.70710678][ 0.4472136   0.70710678]] 4.驗算結果。

通過dot()函數計算特徵值方程式Ax = ax兩邊的值,就可以對結果進行驗算:

for i in range(len(eigenvalues)):print "Left", np.dot(A, eigenvectors[:,i])   print "Right", eigenvalues[i] * eigenvectors[:,i]   print輸出內容如下所示:

Left [[ 1.78885438][ 0.89442719]]Right [[ 1.78885438] [ 0.89442719]]Left [[ 0.70710678] [ 0.70710678]]Right [[ 0.70710678] [ 0.70710678]]

相關焦點

  • 2015考研數學大綱解析:特徵值和特徵向量學習方法指導
    2014年9月13日,2015考研數學大綱已經發布。正如所料,與2014相比,2015年考研數學考試大綱考試內容沒有實質性變化。當然,特徵值和特徵向量部分也沒有發生變化。下面我以特徵值和特徵向量為例,深度解析考研數學大綱,希望對大家的學習有所幫助。
  • 特徵值和特徵向量的幾何意義、計算及其性質
    一、特徵值和特徵向量的幾何意義特徵值和特徵向量確實有很明確的幾何意義
  • 2018考研數學線代特徵值特徵向量
    考研數學:考研數學複習先了解考察特點,命題趨勢,再對症下藥的複習,這樣才能提升效率。本文為廣大考生整理2018考研數學線代特徵值特徵向量,更多考研數學怎麼複習、考研數學題型、考研數學大綱、考數學試題等備考資料,歡迎訪問北京研究生招生信息網。
  • 特徵值和特徵向量計算證明題
    >求n階矩陣 的特徵值與特徵向量 因為A可逆, 所以 為 的特徵值, 對應的特徵向量也是(1, 1,>的公共特徵向量, 對應的特徵值為 .): ; 因為有三個不同的特徵值, 所以對應的特徵向量線性無關, 所以A
  • Python求解特徵向量和拉普拉斯矩陣
    學過線性代數和深度學習先關的一定知道特徵向量和拉普拉斯矩陣,這兩者是很多模型的基礎,有著很重要的地位,那用python要怎麼實現呢?numpy和scipy兩個庫中模塊中都提供了線性代數的庫linalg,scipy更全面些。
  • 2020考研數學線性代數重點內容與常見題型:特徵值與特徵向量
    2020考研已經進入暑期尾聲,暑期考研複習對於整個考研複習階段來說非常關鍵,關於考研數學大家複習的怎麼樣了?在考研數學中,線性代數相對來說是比較簡單的學科,下面就大家整理了線性代數重點內容與常見題型,希望能幫助大家更好的複習!  特徵值、特徵向量是線性代數的重點內容,是考研的重點之一,題多分值大。
  • 線性代數-5.4方陣的特徵值與特徵向量
    ,它和上面的表達式可能相等也可能互為相反數,但這不影響特徵值的計算.的特徵值和特徵向量的特徵值和特徵向量課堂索引:22 第五章 5.4特徵值與特徵向量5.4.4例題45.課堂索引:22 第五章 5.4特徵值與特徵向量5.4.4例題34.
  • 特徵值和特徵向量的物理意義,振動離不開它
    知道它的數學公式,但卻找不出它的幾何含義,教科書裡沒有真正地把這一概念從各種角度實例化地進行講解,只是一天到晚地列公式玩理論——有個屁用啊。根據特徵向量數學公式定義,矩陣乘以一個向量的結果仍是同維數的一個向量,因此,矩陣乘法對應了一個變換,把一個向量變成同維數的另一個向量,那麼變換的效果是什麼呢?
  • 線性代數的本質:特徵向量與特徵值
    spm_id_from=333.788.videocard.0本篇來講一下線性代數中非常重要的一個概念:特徵向量/特徵值。接下來簡單介紹一下特徵值和特徵向量的計算方法,首先根據剛才的介紹,一個矩陣A的特徵向量,在經過這個矩陣所代表的線性變換之後,沒有偏離其所張成的直線,而只是發生了伸縮或方向改變,所以首先可以寫出下面的式子
  • 2013考研數學衝刺複習:矩陣的特徵值與特徵向量講解
    矩陣的特徵值與特徵向量問題是考研數學中一常考點,然而在最後衝刺這一階段,同學們在做真題和模擬題《考研數學絕對考場最後八套題》時對這一考點還存在一些疑惑,對此,文都考研數學的輔導老師特撰此文講解矩陣的特徵值與特徵向量問題,助同學們考研成功。
  • 矩陣的特徵值與特徵向量
    ,也稱v為特徵值λ對應的特徵向量。求解特徵值和特徵向量的步驟如下:(1) 計算特徵多項式|A-λE|;(2) 求|A-λE|=0的所有根,即A的所有特徵值;(3) 對每個特徵值λ0,求解齊次線性方程組
  • 特徵值和特徵向量知識點小結
    相對於向量與線性方程組部分來說,本章不是線性代數這門課的理論重點,但卻是一個考試重點,歷年考研真題都有相關題目,而且最有可能是綜合性的大題。  特徵值和特徵向量之所以會得到如此青睞,大概是因為解決相關題目要用到線代中的大量內容--即有行列式、矩陣又有線性方程組和線性相關,"牽一髮而動全身";著重考察這樣的知識點,在保證了考察面廣的同時又有較大的出題靈活性。
  • 矩陣的瑰寶:深入挖掘特徵值和特徵向量,直觀地看抽象概念
    特徵值和特徵向量可能看起來是很抽象的概念,但它們在你周圍的世界中扮演著不可或缺的角色。因為一切都是由數據定義的,矩陣是處理數據的最佳工具,而它們又是矩陣中的瑰寶,可以揭示矩陣的性質。理解特徵值和特徵向量是什麼,如何推導它們,以及它們的應用,對于欣賞矩陣之美,以及更廣泛地理解數據和數學在世界中扮演的角色,都是不可或缺的。
  • 圖說冪法求特徵值和特徵向量
    冪法是一種計算矩陣主特徵值及對應特徵向量的迭代方法。
  • 數學學習如此容易:用Python學習線性代數
    還在為學習數學而發愁嗎?看完這篇文章,希望Python能幫助你消滅數學恐懼症。用NumPy進行線性代數運算線性代數是數學的一個重要分支,比如,我們可以使用線性代數來解決線性回歸問題。子程序包numpy.linalg提供了許多線性代數例程,我們可以用它來計算矩陣的逆、計算特徵值、求解線性方程或計算行列式等。對於NumPy來說,矩陣可以用ndarray的一個子類來表示。
  • 矩陣特徵值與特徵向量的幾何意義
    即, 如果對於數 λ,存在一個 n 維非零列向量X(即 X∈Rn 且 X≠0),使得AX= λX則稱數 λ 為矩陣 A 的一個特徵值, X 稱為矩陣 A 對應於 λ 的特徵向量。在線性代數中,研究線性變換就是研究相應的矩陣 A,矩陣 A 的特徵向量和特徵值是線性變換研究的重要內容。
  • 【特徵向量新解法】數學天才陶哲軒和三位物理學家的新發現
    特徵向量和特徵值的幾何本質,其實就是:空間矢量的旋轉和縮放。線性變換 A 對於特徵空間只起到「擴張(或者壓縮)」的作用(擴張後還是同樣的特徵空間)求解特徵向量計算特徵多項式→求解特徵值→求解齊次線性方程組,得出特徵向量。
  • 「特徵向量新公式」不能改變數學,但也許能改變你的解題方法
    這篇文章將把正在讀這篇文章的人看成非數學系的理工科考研黨(或者相應水平),用一個簡單的例子來解讀這個公式到底在說啥。首先,你都是考研黨了,一定會複習線性代數這門課程的內容。知道矩陣、特徵值、特徵向量概念。陶哲軒的這個公式就是針對埃爾米特矩陣求特徵值的公式。什麼不知道什麼是埃爾米特矩陣?
  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。
  • 「神龍考研」考研數學考前預測重點題型之特徵值和特徵向量
    矩陣的特徵值和特徵向量是線性代數重要的基礎理論之一,這部分主要給出了矩陣特徵值和特徵向量的定義、性質和求法,討論了相似矩陣的概念、性質及相似對角化的條件,得出了矩陣相似對角化的方法. 實對稱矩陣的對角化是用正交變換化二次型為標準形的基礎.