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
Поддержка комплексного числа: Да

Вход Measurement в виде вектора.

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

Упущение фактора в виде неотрицательного скаляра между 0 и 1. Фактор упущения определяет, сколько веса прошлые данные даны. forgettingFactor значение умножается на R после каждой строки R обрабатывается.

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

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

свернуть все

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

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

Введенный в R2020b
Для просмотра документации необходимо авторизоваться на сайте