語料庫語言學基礎知識:矩陣(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
線性方程的矩陣表示
可以寫成 ,其中 和 均為列向量。
矩陣的分配率
矩陣的乘法結合律
標量位置可變性
矩陣乘法不滿足交換律
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(左右逆等同)
設 為方塊矩陣,且有右逆(right inverse) ,使得 ,並有左逆(left inverse) ,使得 。則 。故 可逆且 為其逆矩陣。
命題2
設 為可逆 矩陣,則它們的積 亦可逆。 的逆矩陣 亦可逆。且 , 。
五、行列式(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)
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
定理3
設 為 矩陣,使 , 。如果 不為零,那麼 是可逆的,且 。
推薦閱讀: