У меня проблема, как A*x=lambda*x
, где A
имеет порядок d*d
, x
имеет порядок d*c
и лямбда является константой. A
и lambda
известны, а матрица x
неизвестна. Есть ли способ решить эту проблему в Matlab ?? (Как и собственные значения, но x
является матрицей d*c
вместо того, чтобы быть вектором).Найти матрицу, которая дает тот же результат при умножении на константу или другую матрицу
ответ
Если вы правильно поняли, не обязательно будут решения для x
. Если A*x=lambda*x
, то любой столбец y
из x
удовлетворяет A*y=lambda*y
, так что столбцы x
просто собственные векторы, соответствующие A
собственного значения lambda
, и будут только какое-либо решение, если lambda
в действительности является собственным значение.
От documentation:
[V, D] = ГЦОС (А) производит матрицы собственных значений (D) и собственные векторы (V) матрица А, так что А * V = V * D , Матрица D является канонической формой A - диагональной матрицей с собственными значениями A на главной диагонали. Матрица V является модальной матрицей - ее столбцами являются собственными векторами А.
Вы можете использовать это, чтобы проверить, если lambda
является собственным значением, и найти соответствующие собственные векторы.
Вы можете преобразовать эту проблему. Напишите x как вектор с помощью x (:) (имеет размер d * c x 1). Тогда A можно переписать в матрицу d * c x d * c, которая имеет c версий A по диагонали.
Теперь это простая проблема с собственными значениями.
Его фактически тривиально. Ваше требование состоит в том, что A * X = lambda * X, где X - массив. Эффективно, посмотрите на то, что происходит из-за одного столбца X. Если массив X существует, то это правда, что
A * X (:, я) = лямбда * X (:, я)
И это должно быть верно для ТОЛЬКО значения lambda для всех столбцов X. По существу это означает, что X (:, i) является собственным вектором A с соответствующим собственным значением lambda. Что еще более важно, это означает, что КАЖДЫЙ столбец X имеет такое же собственное значение, как и любой другой столбец.
Таким образом, тривиальное решение этой задачи состоит в том, чтобы просто иметь матрицу X с одинаковыми столбцами, если этот столбец является собственным вектором A. Если собственное значение имеет кратность больше единицы (поэтому существует множество собственных векторов с одинаковыми собственное значение), то столбцы X могут быть любой линейной комбинацией этих собственных векторов.
Попробуйте это на практике. Я выберу некоторые простые матрицы А.
>> A = [2 3;3 2];
>> [V,D] = eig(A)
V =
-0.70711 0.70711
0.70711 0.70711
D =
-1 0
0 5
Второй столбец V является собственным вектором с собственным числом 5. Мы можем произвольно масштабировать собственный вектор любых постоянным. Итак, теперь выберите вектор vec и создайте матрицу с реплицированными столбцами.
>> vec = [1;1];
>> A*[vec,vec,vec]
ans =
5 5 5
5 5 5
Это никого не должно удивлять.