語料庫語言學基礎知識:矩陣(Matlab版)

語料庫語言學基礎知識寫作計劃:

  • 矩陣(Matlab, Python, R, Haskell)
  • 概率論(Matlab, Python, R, Haskell)
  • 統計學(Matlab, Python, R, Haskell)
  • 機器學習(Matlab, Python, R, Haskell)

主要參考資料:Michael Artin 的 Algebra

如果沒有購買 Matlab,可以下載開源軟體 Octave 和 Scilab,它們的語法和 Matlab 基本一致。

一、基本概念

X = [2, 1, 0; 1, 3, 5] % 定義2*3 矩陣 matrix (複數 matrices)X = 2 1 0 1 3 5size(X) % 測量矩陣的行列數目(行 row,列 column)ans = 2 3X(1,2) % 矩陣的項X_ij,其中i為行指數 row index,j為列指數 column indexans = 1X(2,2) ans = 3A = zeros(2) % 建立2*2的方塊矩陣 square matrixA = 0 0 0 0B = zeros(2,3) % 建立2*3的矩陣B = 0 0 0 0 0 0R = [1,2,3] % 行向量 row vectorR = 1 2 3C = [1;2;3] % 列向量 column vectorC = 1 2 3

二、基本運算

X + B % 矩陣的加法 addition (對應的元素相加,形狀不同則無法相加)ans = 2 1 0 1 3 52 * X % 數乘 scalar multiplicationans = 4 2 0 2 6 10Y = [1,2,3;4,5,6;7,8,9];Z = X * Y % 矩陣乘法 matrix multiplication,m*n 矩陣只能和 n*l矩陣相乘Z = 6 9 12 48 57 66X .* Z % 元素對應相乘 Hadamard productans = 12 9 0 48 171 330

線性方程的矩陣表示

a_{11}x_1 + cdots + a_{1n}x_n = b_1\ a_{21}x_1 + cdots + a_{2n}x_n = b_2\ vdots hspace{2.2cm}vdots hspace{1cm}vdots\ a_{m1}x_1 + cdots + a_{mn}x_n = b_m

可以寫成 AX=B ,其中 XB 均為列向量。

矩陣的分配率

A(B+B)=AB + AB

矩陣的乘法結合律

(AB)C=A(BC)

標量位置可變性

c(AB)=(cA)B=A(cB)

矩陣乘法不滿足交換律

exists A,B [AB
eq BA]

Zuo = [1,1;0,0]; You = [2,0;1,1];Zuo * Youans = 3 1 0 0You * Zuoans = 2 2 1 1% 如果AB=BA,我們稱A和B可交換 commute

三、一些特殊的矩陣

% 對角線項 diagonal entries; % 對角矩陣diagonal matrix:所有非零項都是對角線項I = eye(2) % 單位矩陣 identity matrix:對角線項為1的對角矩陣I = 1 0 0 1Z * eye(3) == Z % 單位矩陣右可消除ans = 2×3 logical array 1 1 1 1 1 1eye(2) * Z == Z % 單位矩陣左可消除ans = 2×3 logical array 1 1 1 1 1 1triu(Y) % 獲取矩陣的上三角 upper triangularans = 1 2 3 0 5 6 0 0 9tril(Y) % 獲取矩陣的下三角 lower triangularans = 1 0 0 4 5 0 7 8 9D = [2,1;5,3];

四、逆矩陣

inv(Y) % 逆 inverseWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.202823e-18.ans = 1.0e+16 * 0.3153 -0.6305 0.3153 -0.6305 1.2610 -0.6305 0.3153 -0.6305 0.3153inv(D)ans = 3.0000 -1.0000 -5.0000 2.0000inv(Y) * YWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.202823e-18.ans = -2 0 2 4 0 12 -2 0 -2inv(D) * Dans = 1 0 0 1pinv(Y) % 廣義逆 Moore-Penrose Pseudoinverse ans = -0.6389 -0.1667 0.3056 -0.0556 0.0000 0.0556 0.5278 0.1667 -0.1944pinv(D)ans = 3.0000 -1.0000 -5.0000 2.0000% inv(X) 返回錯誤pinv(X)ans = 0.4333 -0.0333 0.1333 0.0667 -0.1667 0.1667

引理1(左右逆等同)

A 為方塊矩陣,且有右逆(right inverse) R ,使得 AR=I ,並有左逆(left inverse) L ,使得 LA=I 。則 L=R 。故 A 可逆且 R 為其逆矩陣。

命題2

A,B 為可逆 n	imes n 矩陣,則它們的積 AB 亦可逆。 A 的逆矩陣 A^{-1} 亦可逆。且 (AB)^{-1}=B^{-1}A^{-1}(A^{-1})^{-1}=A

五、行列式(I)

det(D) % 行列式 determinant ans = 1.0000det(Y) % 行列式近乎0;如果行列式為0,則矩陣不可逆ans = -9.5162e-16% n 次一般線性群(n-dimensional general linear group)是 n×n 可逆矩陣的集合,%和與之一起的普通矩陣乘法運算% 如果一個矩陣一整行或一整列均為0,那麼它是不可逆的

六、矩陣單位

E = zeros(3,4);E(2,3) = 1 % 矩陣單位matrix unit e_2,3,最簡單的非零矩陣E = 0 0 0 0 0 0 1 0 0 0 0 0% 基basis:矩陣單位的集合%n次實數空間標準基standard basis:長度為n的列向量的矩陣單位的集合

七、初等矩陣

% Elementary matrices 對應著 elementary row operations% 操作一:將一行的數量積加到另一行上M = [1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9];E1 = eye( 5 ) % 生成 5x5 單位矩陣E1 = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1E1(4,2) = 0.1 % set entry (4,2) to 0.1,形成Type i 初等矩陣% Type i 初等矩陣是在單位矩陣的基礎上再加上一個非零項E1 = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 0.1000 0 1.0000 0 0 0 0 0 1.0000E1 * M % add to row 4, 0.1 times row 2ans = 1.0000 2.0000 3.0000 4.0000 5.0000 2.0000 3.0000 4.0000 5.0000 6.0000 3.0000 4.0000 5.0000 6.0000 7.0000 4.2000 5.3000 6.4000 7.5000 8.6000 5.0000 6.0000 7.0000 8.0000 9.0000% 操作二:交換兩個行M = [1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9]E2 = eye( 5 ) % 生成 5x5 單位矩陣E2([2,5],:) = E2([5,2],:) % 交換行 2 和 行5,生成Type ii 初等矩陣% Type ii 初等矩陣是通過上述操作生成的E2 = 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0E2 * Mans = 1 2 3 4 5 5 6 7 8 9 3 4 5 6 7 4 5 6 7 8 2 3 4 5 6% 操作3:為一整行乘上非零數量M = [1 2 3 4 5;2 3 4 5 6;3 4 5 6 7;4 5 6 7 8;5 6 7 8 9]E3 = eye( 5 ) % 生成 5x5 單位矩陣E3(2,2) = 1.271543 % 生成Type iii 初等矩陣% Type iii 初等矩陣是將對角線上的一個項換位非零非一的數值E3 = 1.0000 0 0 0 0 0 1.2715 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000E3 * Mans = 1.0000 2.0000 3.0000 4.0000 5.0000 2.5431 3.8146 5.0862 6.3577 7.6293 3.0000 4.0000 5.0000 6.0000 7.0000 4.0000 5.0000 6.0000 7.0000 8.0000 5.0000 6.0000 7.0000 8.0000 9.0000% 初等矩陣可逆,其逆亦初等inv(E1)ans = 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 -0.1000 0 1.0000 0 0 0 0 0 1.0000inv(E2)ans = 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0inv(E3)ans = 1.0000 0 0 0 0 0 0.7864 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000% row echelon matrix 階梯形矩陣 非唯一;matlab 有reduced ref 函數,返回唯一值rref(M)ans = 1 0 -1 -2 -3 0 1 2 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

八、轉置矩陣

Y % transpose,將行列互換ans = 1 4 7 2 5 8 3 6 9

九、行列式(II)

det [a] = a

det egin{bmatrix} a & b \ c & d end{bmatrix} = ad - bc

A = [3];det(A)ans = 3B = [1,2;3,4];det(B)ans = -2C = [1,2,3;4,5,6;2,4,1];det(C)ans = 15det(E1)ans = 1det(E2)ans = -1det(E3)ans = 1.2715

十、矩陣置換和余因子矩陣

v = [1,2,3,4,5];perms(v) % 置換 permutationans = 5 4 3 2 1 5 4 3 1 2 5 4 2 3 1 5 4 2 1 3 5 4 1 3 2 5 4 1 2 3 5 3 4 2 1 5 3 4 1 2 5 3 2 4 1 5 3 2 1 4cofactor = @(A, r, c) (-1)^(r+c)*det(A([1:r-1 r+1:end], [1:c-1 c+1:end]));cofactor(M,1,2)ans = -1.6435e-31

	ext{cof} (A)_{i,j}=(-1)^{i+j}det A_{ji}

定理3

An	imes n 矩陣,使 C=	ext{cof} Aalpha = det A 。如果 alpha 不為零,那麼 A 是可逆的,且 CA = AC = alpha I


推薦閱讀:

TAG:語料庫 | 矩陣 | MATLAB |