Уменьшенная форма эшелона ряда (ликвидация Гаусса-Иордана)
Создайте матрицу и рассчитайте форму сокращенного эшелона строк. В этой форме матрица имеет начало 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. Добавьте дополнительный столбец в конец матрицы. Эта увеличенная матрица представляет линейную систему 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).
Рассмотрим линейную систему уравнений с четырьмя уравнениями и тремя неизвестными.
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 содержат уравнения, которые выражают и в терминах . Вторые две строки подразумевают, что существует, по меньшей мере, одно решение, которое соответствует правому боковому вектору (в противном случае одно из уравнений будет читать 0). Третий столбец не содержит ось вращения, x3 является независимой переменной. Поэтому существует бесконечно много решений x1 x2, x3 может быть выбран свободно.
4-2x3.
Например, если 1, = -1 x2 = 2.
С численной точки зрения, более эффективным способом решения этой системы уравнений является x0 = A\b, который (для прямоугольной матрицы A) вычисляет решение методом наименьших квадратов. В этом случае можно проверить точность решения с помощью norm(A*x0-b)/norm(b) и уникальность решения путем проверки rank(A) равно числу неизвестных. Если существует несколько решений, то все они имеют вид + nt, где n - пустое пространствоnull(A) и могут быть выбраны свободно.
A - Входная матрицаВходная матрица.
Типы данных: single | double
Поддержка комплексного номера: Да
tol - Поворотный допускmax(size(A))*eps*norm(A,inf) (по умолчанию) | скалярДопуск поворота, заданный как скаляр. Если наибольший элемент (по абсолютному значению) в опорном столбце находится ниже допуска, то столбец обнуляется. Это предотвращает деление и умножение с ненулевыми элементами поворота, меньшими, чем допуск.
Типы данных: single | double
R - Уменьшенная строчная эшелонная форма AУменьшенная строчная эшелонная форма A, возвращается в виде матрицы.
p - Ненулевые опорные столбцыНенулевые сводные столбцы, возвращаемые как вектор. Каждый элемент в 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).

Использование частичного поворота в гауссовом устранении уменьшает (но не устраняет) ошибки округления в расчете.
Матрица находится в виде эшелона строк при выполнении следующих условий:
Все ненулевые строки находятся над строками всех нулей.
Ведущий коэффициент каждого ряда строго справа от того, который в ряду над ним.
Примером матрицы в форме эшелона строк является
).
Дополнительным требованием к форме уменьшенного эшелона строк является:
Каждый ведущий коэффициент должен быть равен 1 и должен быть единственным ненулевым в столбце.
В то время как единичная матрица чаще всего связана с формой уменьшенного эшелона строк, возможны и другие формы. Другим примером матрицы в форме уменьшенного эшелона строк является
30000).
rref реализует ликвидацию Гаусса-Джордана с частичным поворотом. Допуск по умолчанию max(size(A))*eps*norm(A,inf) проверка ничтожных элементов столбцов, обнуленных для уменьшения погрешности округления.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.