超定方程组最小二乘解法——正规方程组求解(matlab代码)
function [AA,AB,X]=normal_equ(A,B)
%%%输入系数矩阵A,右端1列向量B;
%%%采用求解对于正定方程组的方法求解超定方程组的最小二乘解;
%%%输出正定矩阵AA,右端系数矩阵AB,最小二乘解,检验误差error_L2。
[~,n]=size(A);
x=lsqr(A,B);
AA=zeros(n,n);
AB=zeros(n,1);
for i=1:n
for j=1:n
AA(i,j)=A(:,i)'*A(:,j);
end
AB(i,1)=A(:,i)'*B;
end
[~,X]=Cholesky(AA,AB); %%正定矩阵的三角分解,自定义的Cholesky(A,B)函数
注: Cholesky()函数是正定矩阵的三角分解法求解函数,具体见:Cholesky()函数