Matlab學習筆記(五)


三、矩陣運算

(一)矩陣函數和特殊矩陣

  • 常見的矩陣處理函數
    • 表3-1    常見的矩陣函數
函數 說明
/或\ 矩陣除法中的左除或右除,可以用於求解線性方程組
accumarray(ind,val) 累加創建數組
A^n 求解矩陣A的n次冪
balance(A) 將矩陣A進行縮放以提高其特征值的精度
[V,D]=cdf2rdf(V,D) 將復數對角矩陣轉換為兩個實數對角矩陣
chol(A) 對矩陣A進行Cholesky因式分解
cholinc(A,DropTol) 對矩陣A進行不完全的Cholesky因式分解,DropTol指定分解誤差
cholinc(A,Options) 對矩陣A進行不完全的Cholesky因式分解,Options為包含3個分量的結構體
cholupdate(R,X) Cholesky因式分解的秩1升級
cond(A) 利用奇異值分解求矩陣A的范數
condest(A) 求矩陣A的范數1的條件數估計
[V,D,s]=condeig(A) 求矩陣A與重特征值相對應的條件數
det(A) 求矩陣的行列式
dmperm(A) 求矩陣A進行Dulmage-Mendelsohn排列
eig(A) 求矩陣A的特征值和特征向量
[V,D]=eig(A) 求矩陣A的特征向量矩陣(V)和特征值對角矩陣(D)
expm(A) 矩陣指數函數
funm(A) 矩陣通用函數
gsvd(A,B) 求矩陣A的廣義奇異值
[U,V,X,C,S]=gsvd(A) 求矩陣A進行廣義奇異值分解
hess(A) 求矩陣A的Hessenburg標准型
inv(A) 求矩陣A的逆
linsolve(A,y,options) 快速求解方程組Ax=y,其中A的結構由options條件給定
logm(A) 矩陣的對數運算
lscov(A,y,V) 已知數據的協方差矩陣(V),求線性方程組的最小二乘解
lsqnonneg(A,y) 求線性方程組的非負最小二乘解
[L,U,P]=lu(A) 對矩陣A進行LU分解
minres(A,y) 利用最小殘差方法求線性方程組的解
norm(A,type) 求矩陣或向量(由type指定)的范數
null(A) 求A的零空間
orth(A) 求A的正交空間
pinv(A) 求A的偽逆矩陣
planerot(X) 求X進行平面旋轉
ploy(A) 求A的特征多項式
polyeig(A0,A1,...) 多項式的特征值解
polyvalm(A) 求A的矩陣多項式
qr(A) 對A進行正交三角分解
qrdelete(Q,R,J) 從QR分解中刪除行或列
qrinsert(Q,R,J,X) 在QR分解中插入行或列
qz(A,B) 廣義特征值問題求解
rank(A) 利用奇異值分解求A的秩
rcond(A) 對A進行LAPACK倒數條件估計
rref(A) 將矩陣A變換為行階梯型
rsf2csf(A) 將A由實塊對角陣轉換為復塊對角陣
schur(A) 對矩陣A進行Schur分解
sqrtm(A) 求矩陣A的平方根
subspace(A,B) 求兩個子空間A和B之間的角度
svd(A) 求矩陣A的奇異值
[U,S,V]=svd(A) 對A進行奇異值分解
trace(A) 求矩陣A的跡(即對角線元素之和)
  • 特殊矩陣
    • 表3-2    特殊矩陣
矩陣 說明
 [] 空矩陣
blkdiag(a0,a1,...) 以輸入參數為對角元素生成對角矩陣
compan(P)  求多項式的伴隨矩陣 
eye(r,c)  產生r行,c列的單位矩陣 
gallery  生成一系列的測試矩陣(50個以上) 
hadamard(n) 生成1個n階的Hadamard矩陣 
hankel(C)  生成C的Hankel矩陣 
hilb(n)  生成n階的Hilbert矩陣 
invhilb(n)  生成n階的逆Hilbert矩陣 
magic(n)  生成n階的魔幻矩陣 
ones(r,c)  生成r行、c列的全1矩陣 
pascal(n)  生成n階的Pascal矩陣 
rand(r,c)  生成r行、c列的隨機矩陣(元素值介於0和1之間) 
randn(r,c) 生成r行、c列的零均值和單位方差的正態分布的隨機矩陣
rosser  典型的對稱矩陣特征值問題測試
toeplitz(C,R) 生成Toeplitz矩陣
vander(C) 生成Vandermonde矩陣
wilkinson(n) 生成n階的Wilkinson特征值測試矩陣
zeros(r,c) 生成r行、c列的全0矩陣
  • 稀疏矩陣
    • 稀疏矩陣中大部分元素都是0,只有少部分元素是非0的。
    • 一般,MATLAB存儲稀疏矩陣需要通過3個矩陣,對於一個m×n的矩陣(假設其中有nz個非0元素,存儲在長度為nz_max的矩陣中)
      • 第一個矩陣:存儲所有非0元素,矩陣長度為nz_max
      • 第二個矩陣:存儲所有非0元素的行下標,矩陣長度也為nz_max
      • 第三個矩陣:存儲每一列開始處的指針和標志這3個矩陣結束的指針,存儲長度為n+1
    • 創建稀疏矩陣
      • sparse(i,j,s,m,n,nz_max)使用[i,j,s]來創建m×n維稀疏矩陣s(s為所有非0元素構成的向量,ij為非0元素的行下標、列下標)
      • spdiags(B,d,m,n)可以抽取、創建或替代對角稀疏矩陣(d表示長度為p的整數向量,B為滿矩陣)
    • 表3-3    稀疏矩陣函數
函數 說明
bicg 求解雙共軛梯度迭代線性方程的解
bicgstab 求解雙共軛梯度穩定迭代線性方程的解
cgs 求解二次共軛梯度迭代線性方程曾的解
cholinc 不完全Cholesky分解
colamd 列估計最小度重排序方法
colamdtree 帶列消元樹排序后的colamd方法
colmmd 列最小度排序
colperm 對列進行隨機排序
condest 1范數估計
dmperm Dulmage-Nebdeksohn重排序方法
eigs 使用APPACK的特征值
etree 矩陣消元樹結構
etreeplot 繪制消元路徑
find 尋找非0元素索引
full 將稀疏矩陣轉化為完整矩陣
gmres 求廣義最小殘差迭代線性方程的解
gplot 繪制圖論圖形
issparse 判斷是否為稀疏矩陣
lsqr 標准方程中共軛梯度的LSQR實現
luinc 不完全LU因式分解
minres 最小殘差迭代線性方程求解
Nnz 求矩陣中的非0元素個數
nonzeros 提取矩陣中的非0元素
normest 矩陣的2范數估計
nzmax 求分配給非0元素的存儲空間
pcg 求預處理共軛梯度迭代線性方程組的解
qmr 偽最小殘差迭代線性方程組解法
randperm 產生隨機排列的數組
spalloc 為稀疏矩陣分配內存空間
sparse 創建稀疏矩陣
spaugment 建立最小二乘增廣矩陣
spconvert 從外部格式中載入稀疏矩陣
sodiags 利用對角元素生成稀疏矩陣
speye 單位稀疏矩陣
spfun 將一個函數應用於非0元素
spones 將所有非0元素用1代替
spparms 設置稀疏矩陣程序的參數
sprand 創建均勻分布的隨機稀疏矩陣
sprandn 創建高斯分布的隨機稀疏矩陣
sprandsym 創建對稱的隨機稀疏矩陣
sprank 求結構秩的值
spy 稀疏矩陣的圖形表示
svds 產生一些奇異值
symbfact 符合因式分解
symamd 對稱估計最小階次重排序法
symamdtree 帶對稱消元樹排序后的symand
symmd 對稱最小階次重排序
symmlq 對稱LQ迭代線性方程的求解
symrcm 對稱的反向Cuthill-Mckee重排序
treelayout 變換成樹狀結構
treeplot 畫出樹狀圖
    • 創建稀疏矩陣並畫出稀疏矩陣的圖(e_three_1.m

 (二)矩陣分析

  • 范數分析
  1. 向量的范數
    • 線性空間中的某個向量$\textbf{x}=\left \{ x_{1},x_{2},\cdots ,x_{n} \right \}$,其p范數定義為:$\left \| \mathbf{x} \right \|_{p}=\left ( \sum_{i=1}^{n}\left |  x_{i}\right |^{p}\right )^{\frac{1}{p}}$


免責聲明!

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



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