BLAS庫學習

BLAS(Basic Linear Algebra Subprograms)

1. 整個庫可以分爲三個部分

  • Level 1 向量與向量操作
  • Level 2 矩陣與向量操作
  • Level 3 矩陣與矩陣操作

2. 部分名詞解釋

  • ABC - 矩陣 (matrices)
  • DD~L~D~R~ - 對角矩陣(diagonal matrices)
  • H - Householder 矩陣,行列式 = 1
  • J - 對稱三對角線矩陣 (symmetric tridiagonal matrix)
  • P - 互換矩陣(permutation matrix)
  • T - 三角矩陣(triangular matrix)
  • op(A) - 表示 A,或者A^T^ 或者 A^H^
  • transpose - 表示 A^T^
  • conjugate-transpose - 表示 A^H^

  • u,v,w,x,y.x - 向量 (vectors)

3. 方法名中的前綴

  • S - 單精度 (float)
  • D - 雙精度 (double precision)
  • C - 複數 (complex)
  • Z - 雙精度複數(complex * 16 或者 double complex)

4. 方法名中的關鍵字

  • GB - 一般帶狀矩陣(general band)
  • GE - 普通矩陣(general)
  • HB - (complex) Hermitian band
  • HE - (complex) Hermitian 埃爾米特矩陣(厄米矩陣/自伴隨矩陣)
  • HP - (complex) Hermitian , packed storage 壓縮儲存Hermitian矩陣
  • SB - (real) symmetric band 對稱帶狀矩陣
  • SP - symmetric , packed storage 對稱壓縮存儲矩陣
  • SY - symmetric 對稱矩陣
  • TB - triangular band 三角帶狀矩陣
  • TP - triangular ,packed storage 三角壓縮矩陣
  • TR - triangular 三角或者擬三角矩陣
  • US - unstructured sparse 雜亂稀疏矩陣

5. 具體操作

[文檔](http://www.netlib.org/blas/blasqr.pdf)

6. 基礎知識

6.1.數與向量相乘

  • 數k 與向量 a = (a , b , c )相乘,結果 k x a = (ka , kb , kc)

6.2. 向量與向量相乘(Vector)

  • 設向量 a = (x~1~ , x~2~ , x~3~), b = (y~1~ , y~2~ , y~3~);
    1. 點乘(Dot Product) \內積;結果爲標量(Scalar) ;點積爲0兩個向量垂直。當兩向量平行時,點積有最大值 \
      a · b = x~1~y~1~ + x~2~y~2~ + x~3~y~3~
    2. 叉乘(cross product)\外積;結果是個向量 \
      a x b = ( x~1~y~1~ , x~2~y~2~ , x~3~y~3~ )
    3. 加法;兩個向量相加,結果仍然是一個向量 \
      a + b = (x~1~ + y~1~, x~2~ + y~2~ , x~3~ + y~3~)

6.3 矩陣(Matrix)與向量(Vector)相乘

  • 設矩陣A = |{a , b}, { c , d}| , 向量 a = (x,y)
    1. 矩陣與向量乘法,結果爲向量 \
      A x a = (ax + by,cx + dy)
    2. 矩陣A左乘向量a,此時a當作列向量處理\
      A x a = (ax + by , cx + dy)
    3. 矩陣A右乘向量a,則 a 被作爲行向量處理\
      a x A = (ax + cy , bx + cy)
    4. 矩陣A 左,右都乘 a 得出一個標量.\
      a x A x a = x (ax + cy) + y (bx + cy)

6.4 矩陣與矩陣相乘

  • 矩陣 A~m,n~ = |{a,b},{c,d}|,矩陣B~j,k~ =|{1,2},{3,4}|;只有矩陣A的列數n與矩陣B的行數j相等時矩陣才能線程,起結果爲 A x ~m,n~ * B~n,k~ = C~m,k~

    1. A x B = |{1a + 3b,2a + 4b},{1c + 3d, 2c+4d}|
  • ==注意==:當矩陣A的列數等於矩陣B的行數時,A與B可以相乘。\
       1.矩陣C的行數等於矩陣A的行數,C的列數等於B的列數。\
       2.乘積C的第m行第n列的元素等於矩陣A的第m行的元素與矩陣B的第n列對應元素乘積之和。

參考文獻

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