rref

Уменьшенная форма эшелона строки (Исключение по Гауссу-Жордану)

Синтаксис

R = rref(A)
R = rref(A,tol)
[R,p] = rref(A)

Описание

пример

R = rref(A) возвращает уменьшенную форму эшелона строки A с помощью Исключения по Гауссу-Жордану с частичным поворотом.

R = rref(A,tol) задает допуск центра что использование алгоритма, чтобы определить незначительные столбцы.

пример

[R,p] = rref(A) также возвращает ненулевые центры p.

Примеры

свернуть все

Создайте матрицу и вычислите уменьшенную форму эшелона строки. В этой форме матрица имеет продвижение 1 с в положении центра каждого столбца.

A = magic(3)
A = 3×3

     8     1     6
     3     5     7
     4     9     2

RA = rref(A)
RA = 3×3

     1     0     0
     0     1     0
     0     0     1

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

Теперь, вычислите уменьшенную форму эшелона строки матрицы магического квадрата 4 на 4. Задайте два выходных параметров, чтобы возвратить ненулевые столбцы центра. Поскольку эта матрица является неполным рангом, результатом не является единичная матрица.

B = magic(4)
B = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

[RB,p] = rref(B)
RB = 4×4

     1     0     0     1
     0     1     0     3
     0     0     1    -3
     0     0     0     0

p = 1×3

     1     2     3

Используйте Исключение по Гауссу-Жордану на увеличенных матрицах, чтобы решить линейную систему и вычислить матричную инверсию. Эти методы имеют в основном академический интерес, поскольку существуют более эффективные и численно стабильные способы вычислить эти значения.

Создайте 3 3 матрицу магического квадрата. Добавьте дополнительный столбец в конец матрицы. Эта расширенная матрица представляет линейную систему с соответствием дополнительного столбца.

A = magic(3);
A(:,4) = [1; 1; 1]
A = 3×4

     8     1     6     1
     3     5     7     1
     4     9     2     1

Вычислите уменьшенную форму эшелона строки A. Индексируйте в R, чтобы извлечь записи в дополнительном (увеличенном) столбце, который содержит решение линейной системы.

R = rref(A)
R = 3×4

    1.0000         0         0    0.0667
         0    1.0000         0    0.0667
         0         0    1.0000    0.0667

x = R(:,end)
x = 3×1

    0.0667
    0.0667
    0.0667

Более эффективный способ решить эту линейную систему с оператором наклонной черты влево, x = A\b.

Создайте подобную матрицу магического квадрата, но на этот раз добавьте единичную матрицу, одного размера в конец столбцы.

A = [magic(3) eye(3)]
A = 3×6

     8     1     6     1     0     0
     3     5     7     0     1     0
     4     9     2     0     0     1

Вычислите уменьшенную форму эшелона строки A. В этой форме дополнительные столбцы содержат обратную матрицу для 3 3 матрицы магического квадрата.

R = rref(A)
R = 3×6

    1.0000         0         0    0.1472   -0.1444    0.0639
         0    1.0000         0   -0.0611    0.0222    0.1056
         0         0    1.0000   -0.0194    0.1889   -0.1028

inv_A = R(:,4:end)
inv_A = 3×3

    0.1472   -0.1444    0.0639
   -0.0611    0.0222    0.1056
   -0.0194    0.1889   -0.1028

Более эффективный способ вычислить обратную матрицу с inv(A).

Рассмотрите линейную систему уравнений с четырьмя уравнениями и тремя неизвестными.

Создайте расширенную матрицу, которая представляет систему уравнений.

A = [1  1  5;
     2  1  8;
     1  2  7;
    -1  1 -1];
b = [6 8 10 2]';
M = [A b];

Используйте rref, чтобы выразить систему в уменьшенной форме эшелона строки.

R = rref(M)
R = 4×4

     1     0     3     2
     0     1     2     4
     0     0     0     0
     0     0     0     0

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

Например, если, то и.

С числовой точки зрения более эффективный способ решить эту систему уравнений с x0 = A\b, который (для прямоугольного матричного A) вычисляет решение методом наименьших квадратов. В этом случае можно проверить точность решения с norm(A*x0-b)/norm(b) и уникальностью решения путем проверки, равен ли rank(A) количеству неизвестных. Если больше чем одно решение существует, то у них всех есть форма, где пустой пробел является null(A) и может быть выбран свободно.

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

свернуть все

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

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

Допуск центра, заданный как скаляр. Если самый большой элемент (абсолютным значением) в столбце центра ниже допуска, то столбец обнуляется. Это предотвращает деление и умножение с ненулевыми элементами центра, меньшими, чем допуск.

Типы данных: single | double

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

свернуть все

Уменьшенная форма эшелона строки A, возвращенного как матрица.

Ненулевые столбцы центра, возвращенные как вектор. Каждый элемент в p является индексом столбца A. Можно использовать p, чтобы оценить несколько количеств:

  • length(p) является оценкой ранга A.

  • x(p) содержит переменные центра в линейной системе Ax = b.

  • A:, p) является основанием для области значений A.

  • R1 : r, p) является r-by-r единичной матрицей, где r = длина (p).

Ограничения

  • rank, orth и null обычно быстрее и более точны для вычисления ранга и базисных векторов матрицы.

  • mldivide рекомендуют решить линейные системы.

Больше о

свернуть все

Частичный поворот

Частичный поворот является практикой выбора элемента столбца с самым большим абсолютным значением в столбце центра и затем обмена строками матрицы так, чтобы этот элемент был в положении центра (крайний левый ненулевой элемент в строке).

Например, в матрице ниже алгоритма запускается путем идентификации самого большого значения в первом столбце (значение в (2,1) положение, равное 1.1), и затем обменивается полными первыми и вторыми строками так, чтобы это значение появилось в (1,1) положение.

Использование частичного поворота в Исключении Гаусса уменьшает (но не устраняет), ошибки округления в вычислении.

Уменьшенная форма эшелона строки

Матрица находится в форме эшелона строки когда:

  • Все ненулевые строки выше строк всех нулей.

  • Ведущий коэффициент каждой строки строго справа от той в строке выше его.

Пример матрицы в форме эшелона строки

A = (123041002) .

Дополнительное требование для уменьшенной формы эшелона строки:

  • Каждый ведущий коэффициент должен быть 1 и должен быть единственным ненулевым в своем столбце.

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

A = (10010103001−30000) .

Алгоритмы

rref реализует Исключение по Гауссу-Жордану с частичным поворотом. Допуск по умолчанию max(size(A))*eps*norm(A,inf) тестирует на незначительные элементы столбца, которые обнуляются, чтобы уменьшить ошибку округления.

Смотрите также

| | |

Представлено до R2006a

Была ли эта тема полезной?