Numpy入門學習之(二)linalg庫----向量范數、矩陣范數、行列式、矩陣逆、冪


轉自:https://blog.csdn.net/qq_30138291/article/details/76327051

 

老師課堂總結,請勿轉載

Numpy中的核心線性代數工具

numpy.linalg模塊包含線性代數的函數。使用這個模塊,我們可以計算逆矩陣、求特征值、解線性方程組以及求解行列式等。

求解矩陣的范數

在實數域中,數的大小和兩個數之間的距離是通過絕對值來度量 的。在解析幾何中,向量的大小和兩個向量之差的大小是 “長度 ” 和 “ 距 離 ”的概念來度量的。為了對矩陣運算進行數值分析,我們需要對向量 和矩陣的 “大小 ”引進某種度量。范數是絕對值概念的自然推廣。

"范數 "是對向量和矩陣的一種度量,實際上是二維和三維 向量長度概念的一種推廣.

向量范數

范數理論的一個小推論告訴我們:ℓ1≥ℓ2≥ℓ∞

矩陣的范數

范數匯總

轉載地址http://blog.csdn.net/u011361880/article/details/73527229

矩陣行列式

方陣的逆矩陣

伴隨矩陣

逆矩陣運算性質

代碼

 

  1.  
    # -*- coding: utf-8 -*-
  2.  
    """
  3.  
    Created on Sat Jul 29 15:33:39 2017
  4.  
     
  5.  
    @author: Administrator
  6.  
    """
  7.  
     
  8.  
    import numpy as np
  9.  
     
  10.  
    print( "###########向量范數#########")
  11.  
    print( "向量為:",[1,5,6,3,-1])
  12.  
    print( "1范數:",np.linalg.norm([1,5,6,3,-1],ord = 1),"向量元素絕對值之和")
  13.  
    print( "2范數:",np.linalg.norm([1,5,6,3,-1],ord = 2),"向量元素絕對值的平方和再開方")
  14.  
    print( "無窮范數:",np.linalg.norm([1,5,6,3,-1],ord = np.inf),"所有向量元素絕對值中的最大值")
  15.  
     
  16.  
    print( "###########矩陣范數#########")
  17.  
    a = np.arange( 12).reshape(3,4)
  18.  
    print( "矩陣a為:")
  19.  
    print(a)
  20.  
    print( "F范數",np.linalg.norm(a,ord = 'fro'),"矩陣元素絕對值的平方和再開平方")
  21.  
    print( "1范數",np.linalg.norm(a,ord = 1),"列和范數,即所有矩陣列向量絕對值之和的最大值")
  22.  
    print( "2范數",np.linalg.norm(a,ord = 2),"譜范數,即ATA矩陣的最大特征值的開平方")
  23.  
    print( "無窮范數",np.linalg.norm(a,ord = np.inf),"行和范數,即所有矩陣行向量絕對值之和的最大值")
  24.  
     
  25.  
     
  26.  
    print( "###########行列式#########")
  27.  
    a = np.arange( 1,17).reshape(4,-1)
  28.  
    print( "矩陣a為")
  29.  
    print(a)
  30.  
    print( "a的行列式為:",np.linalg.det(a))
  31.  
     
  32.  
    print( "###########逆矩陣np.linalg.inv()#########")
  33.  
    a = np.array([[ 1,-1],[1,1]])
  34.  
    b = np.array([[ 1/2,1/2],[-1/2,1/2]])
  35.  
    print( "矩陣相乘為單位矩陣E:")
  36.  
    print(np.dot(a,b))
  37.  
     
  38.  
    print( "###########伴隨矩陣#########")
  39.  
    print(a)
  40.  
    det_a = np.linalg.det(a)
  41.  
    print( "a的行列式為:",det_a)
  42.  
    inv_a = np.linalg.inv(a) ####求a的逆矩陣
  43.  
    print( "a的逆矩陣為:",inv_a)
  44.  
    print( "a的伴隨矩陣為:")
  45.  
    bansui = det_a*inv_a
  46.  
    print(bansui)
  47.  
    print( "驗證:",np.dot(bansui,a))
  48.  
     
  49.  
    print( "###########A與A逆行列式#########")
  50.  
    a = np.random.rand( 5,5)
  51.  
    inv_a = np.linalg.inv(a)
  52.  
    det_a = np.linalg.det(a)
  53.  
    det_inv_a = np.linalg.det(inv_a)
  54.  
    print(det_a*det_inv_a)
  55.  
     
  56.  
    print( "###########矩陣的冪matrix_power()#########")
  57.  
    a = np.random.rand( 3,3)
  58.  
    print(a)
  59.  
    print(np.linalg.matrix_power(a, 2))
  60.  
     
  61.  
    print( "###########求解AXB=C?#########")
  62.  
    a = np.array([[ 1,2,3],[2,2,1],[3,4,3]])
  63.  
    b = np.array([[ 2,1],[5,3]])
  64.  
    c = np.array([[ 1,3],[2,0],[3,1]])
  65.  
    det_a = np.linalg.det(a)
  66.  
    det_b = np.linalg.det(b)
  67.  
    inv_a = np.linalg.inv(a)
  68.  
    inv_b = np.linalg.inv(b)
  69.  
    if det_a != 0:
  70.  
    if det_b !=0:
  71.  
    x = np.dot(np.dot(inv_a,c),inv_b)
  72.  
    print(x)
  1.  
    ###########向量范數#########
  2.  
    向量為: [ 1, 5, 6, 3, -1]
  3.  
    1范數: 16.0 向量元素絕對值之和
  4.  
    2范數: 8.48528137424 向量元素絕對值的平方和再開方
  5.  
    無窮范數: 6.0 所有向量元素絕對值中的最大值
  6.  
    ###########矩陣范數#########
  7.  
    矩陣a為:
  8.  
    [[ 0 1 2 3]
  9.  
    [ 4 5 6 7]
  10.  
    [ 8 9 10 11]]
  11.  
    F范數 22.4944437584 矩陣元素絕對值的平方和再開平方
  12.  
    1范數 21.0 列和范數,即所有矩陣列向量絕對值之和的最大值
  13.  
    2范數 22.4092981633 譜范數,即ATA矩陣的最大特征值的開平方
  14.  
    無窮范數 38.0 行和范數,即所有矩陣行向量絕對值之和的最大值
  15.  
    ###########行列式#########
  16.  
    矩陣a為
  17.  
    [[ 1 2 3 4]
  18.  
    [ 5 6 7 8]
  19.  
    [ 9 10 11 12]
  20.  
    [ 13 14 15 16]]
  21.  
    a的行列式為: 4.73316543133e-30
  22.  
    ###########逆矩陣np.linalg.inv()#########
  23.  
    矩陣相乘為單位矩陣E:
  24.  
    [[ 1. 0.]
  25.  
    [ 0. 1.]]
  26.  
    ###########伴隨矩陣#########
  27.  
    [[ 1 -1]
  28.  
    [ 1 1]]
  29.  
    a的行列式為: 2.0
  30.  
    a的逆矩陣為: [[ 0.5 0.5]
  31.  
    [ -0.5 0.5]]
  32.  
    a的伴隨矩陣為:
  33.  
    [[ 1. 1.]
  34.  
    [ -1. 1.]]
  35.  
    驗證: [[ 2. 0.]
  36.  
    [ 0. 2.]]
  37.  
    ###########A與A逆行列式#########
  38.  
    1.0
  39.  
    ###########矩陣的冪matrix_power()#########
  40.  
    [[ 0.66673632 0.24542188 0.24331174]
  41.  
    [ 0.81223569 0.41511886 0.20157493]
  42.  
    [ 0.07107783 0.64497704 0.29675985]]
  43.  
    [[ 0.66117181 0.42244142 0.28390083]
  44.  
    [ 0.89304891 0.50167529 0.34112338]
  45.  
    [ 0.59235659 0.47658948 0.23537168]]
  46.  
    ###########求解AXB=C?#########
  47.  
    [[ -2. 1.]
  48.  
    [ 10. -4.]
  49.  
    [ -10. 4.]]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM