exponenta event banner

fixed.qrAB

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

Описание

пример

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

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

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

пример

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

[λInA]→R

и

[0n,pB]→C

где A - матрица m-на-n, Bis - матрица m-на-p, λ - параметр регуляризации.

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

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

Примеры

свернуть все

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

Определите входные матрицы, 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=Q′b.

[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=Q′b. Параметр регуляризации может улучшить кондиционирование задач наименьших квадратов и уменьшить дисперсию оценок при решении линейных систем уравнений.

Определение входных матриц, A, и b.

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

Используйте fixed.qrAB для вычисления верхнего треугольного коэффициента, R и C=Q′b.

[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