fixed.qrAB

Вычислите C = Q '*B и верхний треугольный множитель R

Описание

[C, R] = fixed.qrAB(A, B) вычисляет C = Q '*B и верхний треугольный множитель R. Функция одновременно выполняет вращения Givens к A и B преобразовать A в R и B в C.

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

[C,R] = qr(A,B)

[C, R] = fixed.qrAB(A, B, regularizationParameter) вычисляет C и R с помощью значения параметров регуляризации, заданного regularizationParameter. Когда параметр регуляризации задан, функция одновременно выполняет вращения Givens, чтобы преобразовать

[λInA]R

и

[0n,pB]C

где A является m-by-n матрица, B является m-by-p матрица, и λ является параметром регуляризации.

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

[Q,R] = qr([regularizationParameter*eye(n); A], 0);
C = Q'[zeros(n,p);B];

Примеры

свернуть все

В этом примере показано, как вычислить верхний треугольный множитель R, и C=Qb.

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

rng('default');
m = 6;
n = 3;
p = 1;
A = randn(m,n)
A = 6×3

    0.5377   -0.4336    0.7254
    1.8339    0.3426   -0.0631
   -2.2588    3.5784    0.7147
    0.8622    2.7694   -0.2050
    0.3188   -1.3499   -0.1241
   -1.3077    3.0349    1.4897

b = randn(m,p)
b = 6×1

    1.4090
    1.4172
    0.6715
   -1.2075
    0.7172
    1.6302

fixed.qrAB функционируйте к возвратам верхний треугольный множитель, R, и C=Qb.

[C, R] = fixed.qrAB(A,b)
C = 3×1

   -0.3284
    0.4055
    2.5481

R = 3×3

    3.3630   -2.8841   -1.0421
         0    4.8472    0.6885
         0         0    1.3258

В этом примере показано, как решить систему линейных уравнений, Ax=b, путем вычисления верхнего треугольного множителя R, и C=Qb. Параметр регуляризации может улучшить создание условий проблем наименьших квадратов и уменьшать отклонение оценок при решении линейных систем уравнений.

Входные Define матрицы, A, и b.

rng('default');
m = 50;
n = 5;
p = 1;
A = randn(m,n);
b = randn(m,p);

Используйте fixed.qrAB функция, чтобы вычислить верхний треугольный множитель, R, и C=Qb.

[C, R] = fixed.qrAB(A, b, 0.01)
C = 5×1

   -0.6361
    1.7663
    1.5892
   -2.0638
   -0.1327

R = 5×5

    9.0631    0.7471    0.4126   -0.3606    0.1883
         0    7.2515   -1.1145    0.6011   -0.7544
         0         0    7.6132   -0.9460   -0.7062
         0         0         0    6.3065   -2.3238
         0         0         0         0    5.9297

Используйте этот результат решить Ax=b использование x = R\C. Вычислите x = R\C использование fixed.qrMatrixSolve функция.

x = fixed.qrMatrixSolve(R,C)
x = 5×1

   -0.1148
    0.2944
    0.1650
   -0.3355
   -0.0224

Сравните результат с вычислением x = A\b непосредственно.

x = A\b
x = 5×1

   -0.1148
    0.2944
    0.1650
   -0.3355
   -0.0224

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

свернуть все

Введите матрицу коэффициентов в виде матрицы.

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

Правая матрица стороны в виде матрицы.

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

Параметр регуляризации в виде неотрицательного скаляра. Маленькие, положительные значения параметра регуляризации могут улучшить создание условий проблемы и уменьшать отклонение оценок. В то время как смещено, уменьшаемое отклонение оценки часто приводит к меньшей среднеквадратической ошибке, когда по сравнению с наименьшими квадратами оценивает.

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

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

свернуть все

Фактор линейной системы, возвращенный как матрица, которая удовлетворяет C = Q 'B.

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

Введенный в R2020b