かなり大きなデータセットで2次回帰を行うために、svd(特異値分解)を使用して次の方程式を解きます。B(nx1)= A(nx3)* X(3x1)matlabを使用することを考えています。それ、何かヒントはありますか?目標は行列Xを計算することです
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で最も効率的な行列反転を参照してください。
MATLABでの数式のエラーの最小化(最小二乗?)も参照してください。
于 2013-03-13T04:05:56.623 に答える