Мне нужно аппроксимировать определяемую таблицей 2D-функцию следующим образом:
x0 y0
x1 y1
...
xn yn
для каждой точки, в которой у меня есть «вес» (среднеквадратическая ошибка для этой меры).Мне нужно написать такую функцию:
typedef std::vector< double > DVector;
void approximate2D(
const DVector & x
, const DVector & y
, const DVector & weights
, double newMeasuredX
, double newMeasuredY
, double newMeasuredWeight
, double & outApproximatedX
, double & outApproximatedY
);
, чтобы получить одно значение (outApproximatedX; outApproximatedY), зависящее от предыдущих значений и нового измеренного значения.
Среднеквадратическую ошибку (RMS) следует использовать следующим образом: если ошибка RMS минимальна, то требуемая функция должна приближаться к этой точке, если ошибка RMS максимальна, тогда эта точка должна бытьиспользовать с минимальным вкладом.
Аппроксимация должна быть линейной (я думаю), поскольку я знаю, что нужной функцией является прямая линия.
Погуглил около половины дня, и не нашел никаких предложений.
Спасибо.