fixed.qlessQRUpdate

Обновление QR-факторизации

Описание

пример

R = fixed.qlessQRUpdate(R, y) обновляет верхнюю треугольную R с вектором y.

Этот синтаксис эквивалентен

[~,R] = qr([R;y],0);

пример

R = fixed.qlessQRUpdate(R, y, forgettingFactor) обновляет верхнюю треугольную R с векторными y и умножает результат на значение, заданное как forgettingFactor.

Этот синтаксис эквивалентен

[~,R] = qr([R;y],0);
R(:) = forgettingFactor * R;

Примеры

свернуть все

В этом примере показано, как обновить верхний треугольный коэффициент матрицы как новые потоки данных в.

Задайте матрицу и вычислите верхний треугольный коэффициент, R, с использованием fixed.qlessQR функция.

rng('default');
m = 20;
n = 4;
A = randn(m,n)
A = 20×4

    0.5377    0.6715   -0.1022   -1.0891
    1.8339   -1.2075   -0.2414    0.0326
   -2.2588    0.7172    0.3192    0.5525
    0.8622    1.6302    0.3129    1.1006
    0.3188    0.4889   -0.8649    1.5442
   -1.3077    1.0347   -0.0301    0.0859
   -0.4336    0.7269   -0.1649   -1.4916
    0.3426   -0.3034    0.6277   -0.7423
    3.5784    0.2939    1.0933   -1.0616
    2.7694   -0.7873    1.1093    2.3505
      ⋮

R = fixed.qlessQR(A)
R = 4×4

    7.1017   -2.0103    1.1646    0.7999
         0    4.8784    0.5745   -0.3222
         0         0    3.1658   -0.4570
         0         0         0    4.4965

Когда приходят новые данные, например, новые значения из массива датчиков, можно использовать fixed.qlessQRUpdate функция для обновления верхнего треугольного фактора новыми данными.

y1 = [1,1,1,1];
R = fixed.qlessQRUpdate(R,y1)
R = 4×4

    7.1718   -1.8513    1.2927    0.9315
         0    5.0412    0.7646   -0.0904
         0         0    3.2332   -0.2584
         0         0         0    4.6074

y2 = [1,1,1,1];
R = fixed.qlessQRUpdate(R,y2)
R = 4×4

    7.2411   -1.6954    1.4184    1.0607
         0    5.1929    0.9371    0.1191
         0         0    3.2892   -0.0962
         0         0         0    4.6928

Результат обновления верхнего треугольного фактора по мере поступления новых данных эквивалентен вычислению верхнего треугольного фактора со всеми данными.

R = fixed.qlessQR([A;y1;y2])
R = 4×4

    7.2411   -1.6954    1.4184    1.0607
         0    5.1929    0.9371    0.1191
         0         0    3.2892   -0.0962
         0         0         0    4.6928

Когда вы хотите непрерывно транслировать неопределенное количество строк, таких как чтение значений из массива датчиков постоянно, не накапливая данные без привязки, задайте коэффициент забывания.

forgettingFactor = exp(-1/(2*m))
forgettingFactor = 0.9753
y3 = [1, 1, 1, 1];
R = fixed.qlessQRUpdate(R,y3,forgettingFactor)
R = 4×4

    7.1294   -1.5046    1.5038    1.1582
         0    5.2031    1.0676    0.3020
         0         0    3.2543    0.0379
         0         0         0    4.6431

Входные параметры

свернуть все

Верхний треугольный вход, заданный как матрица.

Типы данных: single | double | fi
Поддержка комплексного числа: Да

Вход измерения, заданный как вектор.

Типы данных: single | double | fi
Поддержка комплексного числа: Да

Коэффициент забывания, заданный как неотрицательный скаляр между 0 и 1. Коэффициент забывания определяет, сколько веса дается за данные. The forgettingFactor значение умножается на R после каждой строки R обрабатывается.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Выходные аргументы

свернуть все

Обновленный верхний треугольный коэффициент, возвращенный как матрица.

Расширенные возможности

.
Введенный в R2020b