Least Squares & Pseudo Inverse
Least Squares & Pseudo Inverse
1
Contents
2 Least Squares
3 Pseudoinverse
4 Matlab Examples
2
Line Fitting
( x1 , y1 ) x1 1 a y1
x2 1 b y2
( x2 , y 2 ) y ax b
a 1 1 1 y1
, x1 x2
b x1 x2 x2 x1 y2
It is easy to find
Because the number of unknown variables equals to one of data pairs.
Line Fitting
If Y is rectangular (n≠d)
e=Ya-b
n
Js(a)=||Ya-b||2 = i i
( a
i 1
t
y b ) 2
n
Js = yi bi ) yi
2( a
i 1
t
= 2Yt(Ya-b)
YtYa=Ytb
Pseudoinverse
YtYa=Ytb
If YtY is nonsingular,
a = (YtY)-1Ytb = Yb
Y≡(YtY)-1Yt
: pseudoinverse of Y
Pseudoinverse
matrix equation :
MB=A
e || an Mbn || 2
n
optimal solution :
M=ABT (BBT) -1
Pseudoinverse
differentiation of matrix
d
Trace ( AB) B T
dA
| e n | en en en en
2 T
d
Trace ( AMB ) AT B T
dM
|| M ||2 Trace ( M T M )
d
Trace ( E T E ) Trace (( A MB )T ( A MB )) || M || 2 2 M
dM
Trace ( AT A B T M T A AT MB B T M TMB )
Trace ( AT A) 0
Trace ( B T M T A) ABT
Trace ( AT MB ) ABT
Trace ( B T M TMB ) 2( B T M T )T B T
d
Trace ( E T E ) ABT ABT ( B T M T )T BT ( B T M T )T B T
dM
d
Trace ( E T E ) 0, then ABT MBBT
dM
M ABT ( BBT ) 1
Matlab Examples
x = [1 2 3 4 5 6 7 8 9];
y = [5 6 10 20 28 33 34 36 42];
x1=[x;ones(1,9)] '
polyfit(x,y,1) pinv(x1)*y'
Conclusion
Ya=b
if Y is nonsingular
a=Y-1b
if Y is rectangular
a = (YtY)-1Ytb = Yb
Y≡(YtY)-1Yt : pseudoinverse
References