为了对相当大的数据集进行二次回归,我想使用 svd(奇异值分解)求解以下方程: B(nx1)=A(nx3)*X(3x1) 我正在考虑使用 matlab那,任何提示?目标是计算矩阵 X
问问题
840 次
1 回答
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 来计算上面的逆矩阵,请参阅在 MATLAB 中最有效的矩阵求逆
于 2013-03-13T04:05:56.623 回答