У меня есть вопрос, касающийся метода итераций в подпространстве для обобщенной задачи на собственные значения.Я использую MATLAB для решения нескольких наименьших собственных значений, используя метод итераций подпространства.Решив приведенную систему, нормализуем ли мы собственные векторы по отношению к матрице масс?
Например:
[eve,eva] = eig(full(kred),full(mred));
x = xbar*eve % update eigen vector
Перед обновлением x
мы должны выполнить
nn = eve'*mred*eve
for i = 1:min(2*m,m+8)
evec(:,i) = evec(:,i)/sqrt(i,i);
end
, а затем обновить x
?Когда я использую метод подпространства без nn
и цикла for, самые низкие собственные значения не совпадают по сравнению с самыми низкими из полных собственных значений (из matlab eig
).Когда я использую nn
и цикл for, я вижу, что собственные значения одинаковы. Алгоритм не включает в себя эти дополнительные шаги, но без них результаты из matlab не соответствуют моему итеративному методу. Есть ли какая-то особая причина этого?
Заранее спасибо ...