как Matlab нормализует обобщенные собственные векторы? - PullRequest
0 голосов
/ 11 января 2019

Я знаю, что собственные векторы, порожденные eig (A), имеют 2-норму 1. Но как быть с векторами, порожденными в обобщенной проблеме собственных значений eig (A, B)? Естественная гипотеза состоит в том, что такой вектор v должен удовлетворять v ' B v = 1. Когда B является единичной матрицей, то v ' B v является в точности квадратом 2-нормы. Я провел следующий тест для различных матриц A и B:

[p,d]=eig(A,B);
v=p(:,1);
v'*B*v

Я всегда выбираю B диагональю. Я заметил, что v ' B v не всегда равен 1. Однако, это действительно 1, когда A симметрично. Кто-нибудь знает правило для способа, которым Matlab нормализует обобщенные собственные векторы? Я не могу найти это в документе.

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Согласно документации (упор мой):

Форма и нормализация V зависит от комбинации входных аргументов:

  • [...]

  • [V,D] = eig(A,B) и [V,D] = eig(A,B,algorithm) возвращает V в виде матрицы, столбцы которой являются обобщенными правыми собственными векторами, которые удовлетворяют A*V = B*V*D. 2-норма каждого собственного вектора не обязательно равна 1 . В этом случае D содержит обобщенные собственные значения пары (A, B) вдоль главной диагонали.

    Когда eig использует алгоритм 'chol' с симметричным (эрмитовым) A и симметричным (эрмитовым) положительно определенным B, он нормализует собственные векторы в V, так что B - норма каждого составляет 1 .

Это означает, что, если вы не используете алгоритм 'chol', V не нормализуется.

0 голосов
/ 12 января 2019

Если я правильно вас понял, вы ищете способ обобщить вектор, тогда , учитывая вектор, вы можете разделить его на его норму, чтобы получить вторичный вектор, норма которого равна 1 .

Если вы ищете математическое обоснование, тогда Собственное разложение матрицы содержит хорошее введение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...