Решение системы линейных уравнений в неквадратной матрице
У меня есть система линейных уравнений, которые составляют NxM
матрица (т.е. не квадратная), которую мне нужно решить - или, по крайней мере, попытаться решить, чтобы показать, что нет решения для системы. (скорее всего, не будет никакого решения)
Насколько я понимаю, если моя матрица не является квадратной (переоцененной или недоопределенной), то не может быть найдено точного решения - правильно ли я считаю? Есть ли способ превратить мою матрицу в квадратную матрицу, чтобы вычислить определитель, применить метод исключения Гаусса, правило Крамера и т. Д.?
Возможно, стоит упомянуть, что коэффициенты моих неизвестных могут быть равны нулю, поэтому в некоторых редких случаях было бы возможно иметь нулевой столбец или нулевой ряд.
4 ответа
Является ли ваша матрица квадратной, это не то, что определяет пространство решения. Это ранг матрицы по сравнению с количеством столбцов, который определяет это (см. Теорему ранг-нуль). В общем случае вы можете иметь ноль, одно или бесконечное число решений линейной системы уравнений, в зависимости от ее ранга и отношения ничтожности.
Однако, чтобы ответить на ваш вопрос, вы можете использовать метод исключения Гаусса, чтобы найти ранг матрицы и, если это указывает на существование решений, найти конкретное решение x0 и нулевое пространство Null(A) матрицы. Затем вы можете описать все ваши решения как x = x0 + xn, где xn представляет любой элемент Null(A). Например, если матрица имеет полный ранг, ее нулевое пространство будет пустым, и линейная система будет иметь не более одного решения. Если его ранг также равен числу строк, то у вас есть одно уникальное решение. Если нулевое пространство имеет размерность один, то вашим решением будет линия, которая проходит через x0, любая точка на этой линии удовлетворяет линейным уравнениям.
Хорошо, во-первых: неквадратная система уравнений может иметь точное решение
[ 1 0 0 ][x] = [1]
[ 0 0 1 ][y] [1]
[z]
явно имеет решение (на самом деле, оно имеет одномерное семейство решений: x=z=1). Даже если система переопределена, а не недоопределена, у нее все же может быть решение:
[ 1 0 ][x] = [1]
[ 0 1 ][y] [1]
[ 1 1 ] [2]
(Х = у = 1). Возможно, вы захотите начать с поиска как минимум методов решения квадратов, которые находят точное решение, если оно существует, и "наилучшее" приближенное решение (в некотором смысле), если его нет.
Принятие Ax = b
с A, имеющим m столбцов и n строк. У нас не гарантировано решение, которое во многих случаях объясняется тем, что у нас больше уравнений, чем неизвестных (m больше n). Это может быть из-за повторных измерений, которые мы действительно хотим, потому что мы осторожны с влиянием шума.
Если мы увидим, что мы не можем найти решение, которое на самом деле означает, что нет никакого способа найти b, путешествующего по пространству столбцов, охватываемому A.(Поскольку х принимает только комбинацию столбцов).
Однако мы можем попросить точку в пространстве, охватываемую A, ближайшую к b. Как мы можем найти такую точку? Прогулка на самолете, ближайший к точке которого можно добраться, это идти до тех пор, пока вы не окажетесь прямо внизу. Геометрически говоря, это когда наша ось зрения перпендикулярна плоскости.
Теперь это то, что мы можем иметь математическую формулировку. Перпендикулярный вектор напоминает нам об ортогональных проекциях. И это то, что мы собираемся сделать. Самый простой случай говорит нам сделать a.T b
, Но мы можем взять всю матрицу A.T b
,
Для нашего уравнения давайте применим преобразование к обеим сторонам: A.T Ax = A.T b
, Последний шаг - решить для х, взяв обратноеA.T A
:
x = (A.T A)^-1 * A.T b
Рекомендация наименьших квадратов очень хорошая.
Я добавлю, что вы можете попробовать разложение по сингулярным числам (SVD), которое даст вам наилучший возможный ответ и предоставит информацию о пустом пространстве бесплатно.