exponenta event banner

fixed.qlessQR

Декомпозиция QR без Q

Описание

пример

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

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

[~,R] = qr(A)

пример

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

Примеры

свернуть все

В этом примере показано, как решить систему уравнений (A′A) 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 функция примерно эквивалентна Complex- и Real Partial-Sistolic Q-less QR с блоками коэффициента забывания. Эти блоки обрабатывают одну строку входной матрицы за раз и применяют коэффициент забывания после обработки каждой строки. fixed.qlessQR функция принимает сразу все строки A, но выполняет вычисления так же, как и блоки. Коэффициент забывания применяется после обработки каждой строки.

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

Без использования коэффициента забывания, накопление является квадратным корнем из числа строк, так что 10000 строки будут накапливаться до 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

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

свернуть все

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

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

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