fixed.qlessQR

Разложение Q-less QR

Описание

пример

R = fixed.qlessQR(A) возвращает верхне-треугольный R фактор разложения QR = Q *R.

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

[~,R] = qr(A)

пример

R = fixed.qlessQR(A, forgettingFactor) возвращает верхне-треугольный R фактор разложения QR и умножает R forgettingFactor после каждой строки A обрабатывается.

Примеры

свернуть все

В этом примере показано, как решить систему уравнений (AA)x=B использование вперед и обратная подстановка.

Задайте входные переменные, A и B.

rng default;
A = gallery('randsvd', [5,3], 1000);
b = [1; 1; 1; 1; 1];

Вычислите верхний треугольный множитель, R, из A, где A=QR.

R = fixed.qlessQR(A);

Используйте вперед и обратная подстановка, чтобы вычислить значение X.

X = fixed.forwardSubstitute(R,b);
X(:) = fixed.backwardSubstitute(R,X)
X = 5×1
105 ×

   -0.9088
    2.7123
   -0.8958
         0
         0

Это решение эквивалентно использованию fixed.qlessQRMatrixSolve функция.

x = fixed.qlessQRMatrixSolve(A,b) 
x = 5×1
105 ×

   -0.9088
    2.7123
   -0.8958
         0
         0

Используя фактор упущения с fixed.qlessQR функция примерно эквивалентна Комплексу - и Действительный Частично-систолический Q-less QR с Упущением Факторных блоков. Эти блоки обрабатывают одну строку входной матрицы за один раз и применяют фактор упущения после того, как каждая строка будет обработана. fixed.qlessQR функционируйте берет во всех строках целиком, но выполняет расчет таким же образом как блоки. Фактор упущения применяется после того, как каждая строка обрабатывается.

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

Не используя фактор упущения, накопление является квадратным корнем из количества строк, таким образом, 10 000 строк накопились бы до 10000=100.

A = ones(10000,3);
R = fixed.qlessQR(A)
R = 3×3

  100.0000  100.0000  100.0000
         0    0.0000    0.0000
         0         0    0.0000

Чтобы накопиться с эффективной высотой m=16 строк, установитесь коэффициент упущения на следующее.

m=16;
forgettingFactor = exp(-1/(2*m))
forgettingFactor = 0.9692

Используя фактор упущения, fixed.qlessQR накопился бы приблизительно до квадратного корня из 16.

R = fixed.qlessQR(A,forgettingFactor)
R = 3×3

    3.9377    3.9377    3.9377
         0    0.0000    0.0000
         0         0    0.0000

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

свернуть все

Введите матрицу в виде матрицы.

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

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

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

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

свернуть все

Фактор Верхней треугольной, возвращенный как матрица, которая удовлетворяет = Q *R.

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

Введенный в R2020b