matlab矩阵及其基本运算—特征值分解和svd奇异值分解
特征值分解
函數 eig
eig:?Find eigenvalues and eigenvectors
格式 d = eig(A) ? ? ? ? %求矩陣A的特征值d,以向量形式存放d。
d = eig(A,B) ? ? ? %A、B為方陣,求廣義特征值d,以向量形式存放d。
[V,D] = eig(A) ? ? ?%計算A的特征值對角陣D和特征向量V,使AV=VD成立。
[V,D] = eig(A,'nobalance') ? %當矩陣A中有與截斷誤差數量級相差不遠的值時,該指令可能更精確。'nobalance'起誤差調節作用。
[V,D] = eig(A,B) ? ?%計算廣義特征值向量陣V和廣義特征值陣D,滿足AV=BVD。
[V,D] = eig(A,B,flag) ? % 由flag指定算法計算特征值D和特征向量V,flag的可能值為:'chol' 表示對B使用Cholesky分解算法,這里A為對稱Hermitian矩陣,B為正定陣。'qz' 表示使用QZ算法,這里A、B為非對稱或非Hermitian矩陣。
說明 一般特征值問題是求解方程: 解的問題。廣義特征值問題是求方程: 解的問題。
奇異值分解
函數 svd
格式 s = svd (X) ? ? ? ? ?%返回矩陣X的奇異值向量
?
[U,S,V] = svd (X) ? %返回一個與X同大小的對角矩陣S,兩個酉矩陣U和V,且滿足= U*S*V'。若A為m×n陣,則U為m×m陣,V為n×n陣。
奇異值在S的對角線上,非負且按降序排列。
?
[U,S,V] = svd (X,0) ? %得到一個“有效大小”的分解,只計算出矩陣U的前n列,矩陣S的大小為n×n。
例1-73
>> A=[1 2;3 4;5 6;7 8];
>> [U,S,V]=svd(A)
U =
? ?-0.1525 ? -0.8226 ? -0.3945 ? -0.3800
? ?-0.3499 ? -0.4214 ? ?0.2428 ? ?0.8007
? ?-0.5474 ? -0.0201 ? ?0.6979 ? -0.4614
? ?-0.7448 ? ?0.3812 ? -0.5462 ? ?0.0407
S =
? ?14.2691 ? ? ? ? 0
? ? ? ? ?0 ? ?0.6268
? ? ? ? ?0 ? ? ? ? 0
? ? ? ?0 ? ? ? ? 0
V =
? ?-0.6414 ? ?0.7672
? ?-0.7672 ? -0.6414
>> [U,S,V]=svd(A,0)
U =
? ?-0.1525 ? -0.8226
? ?-0.3499 ? -0.4214
? ?-0.5474 ? -0.0201
? ?-0.7448 ? ?0.3812
S =
? ?14.2691 ? ? ? ? 0
? ? ? ? ?0 ? ?0.6268
V =
? ?-0.6414 ? ?0.7672
? ?-0.7672 -0.6414
?
總結
以上是生活随笔為你收集整理的matlab矩阵及其基本运算—特征值分解和svd奇异值分解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab正余弦画心形图案
- 下一篇: python2.7出现IOError: