奇异值分解(SVD)方法求解最小二乘问题的原理
1.https://www.cnblogs.com/long5683/p/13142126.html
SVD方法求解最小二乘问题
求伪逆的三种方法:直接,SVD,QR及具体的应用
2.https://blog.csdn.net/xingozd/article/details/50417233
求伪逆的三种方法
clc;close all;clear;
format compact
A = [1 2 0; 0 4 3]
b = [8; 18];
x = A\b % Column principal elimination method
%%
x_leaqua=pinv(A'*A)*A'*b % Error singular to working precision.
% B=A*x_leaqua
%% Ax=b
% x=inv(A'*A)*A'*b
%% AX=0
% SVD
[U,S,V]=svd(A) % AA=U*S*V'
X=V(:,end); % Last column
y=A*V(:,end); % 0
%% pseudo-inverse
% pinv
T=S;
T(find(S~=0))=1./S(find(S~=0))
svdInvA=V*T'*U' % inv(A)== pinv(A'*A)*A'==svdInvA
x_pinv=svdInvA*b % x_leaqua==x_pinv
%% But det(A'A)==0,How to use x=inv(A'*A)*A'*b???