在二次回归中使用奇异值分解(svd)

时间:2013-03-12 23:35:42

标签: matlab regression polynomial-math svd

为了对相当大的数据集进行二次回归,我想用svd(奇异值分解)求解下面的等式: B(NX1)= A(NX3)* X(3×) 我正在考虑使用matlab,任何提示?目标是计算矩阵X

1 个答案:

答案 0 :(得分:0)

你所谓的二次回归似乎实际上是最小平方误差回归。在这种情况下,计算非常简单:

1)将左侧乘以A'(3xn)到达

A'(3xn)B(nx1)= A'(3xn)A(nx3)X(3x1)

2)现在将两个左边乘以A'(nx1)A(nx3)的倒数到达

inv(A'(3xn)A(nx3))A'(3xn)B(nx1)= X(3x1)

3)现在使用svd来评估上面的反转,请参阅Most efficient matrix inversion in MATLAB

另见Minimizing error of a formula in MATLAB (Least squares?)