exponenta event banner

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. Коэффициент забывания определяет, какой вес дается прошлым данным. forgettingFactor значение умножается на R после каждой строки R обрабатывается.

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

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

свернуть все

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

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

.
Представлен в R2020b