Приведенный ступенчатый по строкам вид матрицы (Исключение по Гауссу-Жордану)
R = rref(A)
R = rref(A,tol)
[R,p] = rref(A)
возвращает приведенный ступенчатый по строкам вид матрицы R
= rref(A
)A
с помощью Исключения по Гауссу-Жордану с частичным поворотом.
Создайте матрицу и вычислите приведенный ступенчатый по строкам вид матрицы. В этой форме матрица имеет продвижение 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)
и может быть выбран свободно.
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
-by-r
единичная матрица, где r = length(p)
.
rank
, orth
и null
обычно быстрее и более точны для вычисления ранга и базисных векторов матрицы.
mldivide
рекомендуют решить линейные системы.
Частичный поворот является практикой выбора элемента столбца с самым большим абсолютным значением в столбце центра и затем обмена строками матрицы так, чтобы этот элемент был в положении центра (крайний левый ненулевой элемент в строке).
Например, в матрице ниже алгоритма запускается путем идентификации самого большого значения в первом столбце (значение в (2,1) положение, равное 1.1
), и затем обменивается полными первыми и вторыми строками так, чтобы это значение появилось в (1,1) положение.
Использование частичного поворота в Исключении Гаусса уменьшает (но не устраняет), ошибки округления в вычислении.
Матрица находится в форме эшелона строки когда:
Все ненулевые строки выше строк всех нулей.
Ведущий коэффициент каждой строки строго справа от той в строке выше его.
Пример матрицы в форме эшелона строки
Дополнительное требование для приведенного ступенчатого по строкам вида матрицы:
Каждый ведущий коэффициент должен быть 1 и должен быть единственным ненулевым в своем столбце.
В то время как единичная матрица обычно сопоставлена с приведенным ступенчатым по строкам видом матрицы, другие формы возможны. Другой пример матрицы в приведенном ступенчатом по строкам виде матрицы
rref
реализует Исключение по Гауссу-Жордану с частичным поворотом. Допуск по умолчанию max(size(A))*eps*norm(A,inf)
тестирует на незначительные элементы столбца, которые обнуляются, чтобы уменьшать ошибку округления.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.