2013-03-12 5 views
0

Чтобы сделать квадратичную регрессию в довольно большом наборе данных, я хотел бы решить следующее уравнение с использованием svd (разложение по сингулярным значениям): B (nx1) = A (nx3) * X (3x1) Я думаю использовать Matlab для этого, любые советы? цель состоит в вычислении матрицы Xс использованием сингулярного декомпозиции (svd) в квадратичной регрессии

+0

Трудно сказать, так как ваш вопрос слишком расплывчатый. Сначала сделайте снимок самостоятельно и посмотрите, застряли ли вы. –

ответ

0

Кажется, что вы называете квадратичную регрессию, на самом деле является минимальной регрессией квадратной ошибки. В этом случае расчет очень прост:

1) Умножим обе левые части А '(3XN), прибывающих в

А' (3XN) B (nx1) = A '(3XN) A (NX3) X (3х1)

2) Теперь умножим обе левые части инверсией A '(nx1) A (NX3), прибывающих в

инв (А' (3XN) A (NX3)) А '(3XN) в (NX1) = X (3x1)

3) Теперь используем СВД оценить обратную выше, см Most efficient matrix inversion in MATLAB

См. Также Minimizing error of a formula in MATLAB (Least squares?)