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