Как реализовать матрицу, представляющую разности второго порядка, для решения сглаживания Уиттекера?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать матрицу, представляющую разности второго порядка, для решения сглаживания Уиттекера?

Сообщение Anonymous »

Я пытаюсь использовать Уиттакера-Эйлерса для сглаживания зашумленных данных. Используя эту статью, чтобы создать метод, который находит A в уравнениях 11 и 12 на странице, которую я написал:

Код: Выделить всё

private LUDecomposition buildMatrices(int dataSize, double lambda, int filterOrder) {
RealMatrix identityMatrix = MatrixUtils.createRealMatrix(dataSize, dataSize);
RealMatrix orderMatrix = MatrixUtils.createRealMatrix(dataSize - filterOrder, dataSize);

for (int i = 0; i < dataSize; i++) {
identityMatrix.setEntry(i, i, 1);

if (i < dataSize - filterOrder) {
switch (filterOrder) {
case 1:
orderMatrix.setEntry(i, i, -1);
orderMatrix.setEntry(i, i + 1, 1);
break;

case 2:
default:
orderMatrix.setEntry(i, i, 1);
orderMatrix.setEntry(i, i + 1, -2);
orderMatrix.setEntry(i, i + 2, 1);
break;
}
}
}

RealMatrix A = orderMatrix.transpose().scalarMultiply(lambda).multiply(orderMatrix).add(identityMatrix);
return new LUDecomposition(A);
}
Затем используется возвращенная LUDecomposition

Код: Выделить всё

private void calculateWhittakerSegment(int endIndex, int period) {
RealVector measValues = new ArrayRealVector(
ArrayUtils.subarray(data.getYValues(), endIndex - period, endIndex));

RealVector y = luDecomposition.getP().multiply(MatrixUtils.inverse(luDecomposition.getL())).operate(measValues);

RealVector adjValues = MatrixUtils.inverse(luDecomposition.getU()).operate(y);
}
Использование фильтра с порядком 1 (уравнение 8 в статье) дает приемлемые результаты
Результаты 1-го порядка
Но использование фильтра Порядок 2 (уравнение 17 в статье) не дает
результатов 2-го порядка
Я изменил порядок операций при решении для A, но это не привело к каким-либо изменениям результатов.

Подробнее здесь: https://stackoverflow.com/questions/783 ... olve-whitt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»