exponenta event banner

rref

Уменьшенная форма эшелона ряда (ликвидация Гаусса-Иордана)

Описание

пример

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

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

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

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).

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

x1 + x2 + 5x3 = 62x1 + x2 + 8x3 = 8x1 + 2x2 + 7x3 = 10-x1 + x2-x3 = 2.

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

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 содержат уравнения, которые выражают x1 и x2 в терминах x3. Вторые две строки подразумевают, что существует, по меньшей мере, одно решение, которое соответствует правому боковому вектору (в противном случае одно из уравнений будет читать 1 = 0). Третий столбец не содержит ось вращения, поэтому x3 является независимой переменной. Поэтому существует бесконечно много решений для x1 и x2, и x3 может быть выбран свободно.

x1 = 2-3x3x2 = 4-2x3.

Например, если x3 = 1, то x1 = -1 и x2 = 2.

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

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

свернуть все

Входная матрица.

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

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

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

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

свернуть все

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

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

  • length(p) - оценка ранга A.

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

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

  • R(1:r,p) является rоколо-r единичная матрица, где r = length(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