對於任一給定的矩陣am×
n\boldsymbol_
am×n
,都存在這樣的分解:
a =u
dv
t\boldsymbol=\boldsymbol\boldsymbol\boldsymbol^t
a=udvt
這裡:u
\boldsymbol
u是乙個(m×
m)
(m\times m)
(m×m
)的正交矩陣,
d
\boldsymbol
d是乙個(m×
n)
(m\times n)
(m×n
)的對角矩陣,
v
\boldsymbol
v是乙個(n×
n)
(n\times n)
(n×n
)的正交矩陣。
d
\boldsymbol
d中的對角元叫做a
\boldsymbol
a的奇異值,
u
\boldsymbol
u中的列向量叫做a
\boldsymbol
a的左奇異向量,
v
\boldsymbol
v中的列向量叫做a
\boldsymbol
a的右奇異向量。
問題等價於min∥
ax−b
∥2
\min\parallel \boldsymbol-\boldsymbol\parallel^2
min∥ax
−b∥2
,是乙個非線性優化問題。
對a進行svd分解
min ∥
ax−b
∥2
=min∥
udvt
x−b∥
2=
min∥d
vtx−
utb∥
2\min\parallel \boldsymbol-\boldsymbol\parallel^2 \\ = \min \parallel \boldsymbol\boldsymbol\boldsymbol^t \boldsymbol-\boldsymbol\parallel^2 \\ = \min \parallel \boldsymbol\boldsymbol^t \boldsymbol- \boldsymbol^t\boldsymbol\parallel^2
min∥ax
−b∥2
=min∥u
dvtx
−b∥2
=min∥d
vtx−
utb∥
2設y=vt
x\boldsymbol=\boldsymbol^t\boldsymbol
y=vt
x, c=u
tb
\boldsymbol = \boldsymbol^t \boldsymbol
c=ut
b,則min∥
dvtx
−utb
∥2
\min \parallel \boldsymbol\boldsymbol^t \boldsymbol- \boldsymbol^t\boldsymbol\parallel^2
min∥dv
tx−u
tb∥2
可以表述為dy=
c\boldsymbol\boldsymbol= \boldsymbol
dy=c
,方程組的解為yi=
ci/d
i\boldsymbol_i=\boldsymbol_i/\boldsymbol_i
yi=ci
/di
問題等價於min∥
ax∥2
\min\parallel \boldsymbol\parallel^2
min∥ax
∥2上式轉化為:
min ∥
ax∥2
=min∥
udvt
x∥
2\min\parallel \boldsymbol\parallel^2 \\=\min \parallel \boldsymbol\boldsymbol\boldsymbol^t \boldsymbol\parallel^2
min∥ax
∥2=min∥u
dvtx
∥2令y =v
tx
\boldsymbol = \boldsymbol^t\boldsymbol
y=vt
x,則上式變為
min ∥
dy∥2
\min \parallel \boldsymbol\parallel^2
min∥dy
∥2d是乙個對角矩陣,且對角元素按照遞減的順序排列,所以最小值即最優解在y=(
0,0,
...,
1)
t\boldsymbol=(0,0,...,1)^t
y=(0,0
,...
,1)t
時取得,此時x=v
y\boldsymbol=\boldsymbol\boldsymbol
x=vy
,所以最優解就是v
\boldsymbol
v的最小奇異值對應的列向量。比如,最小奇異值在第10行10列,那麼解向量x
\boldsymbol
x就等於v
\boldsymbol
v的第10個列向量.
MATLAB 線性方程組求解
clc,clear all close all 高斯消去法 a 2 3 4 3 5 2 4 3 30 線性方程組的係數矩陣 b 6 5 32 線性方程組的右端列向量 m,n size a 測量係數矩陣的維數 if m n fprint 線性方程組的係數矩陣非方陣 break end fprintf ...
MATLAB線性方程組求解
對於一般的,有唯一解的線性方程組,我們可以轉換成矩陣的形式 a x bax b ax b 則可以用矩陣運算求解x,即x a b 求解齊次線性方程組基礎解系的函式是null z null a 表示返回矩陣a的基礎解系組成的矩陣。z還滿足ztz i z null a,r 得出的z不滿足ztz i,但得出...
matlab線性方程組求解
線性方程組的求解主要有兩種方法,分別是直接法和迭代法,本節也將圍繞這兩種方法去講解一些matlab在求解線性方程組的相關知識。一 線性方程組的直接解法 主要可以分為以下三種方法 高斯 gauss 消去法 列主元消去法 矩陣的三角分解法 高斯 gauss 消去法是乙個經典的直接法,由它改進得到的列主元...