Как преобразовать симметричную матрицу в трехдиагональную с теми же собственными значениями?

У меня есть симметричная матрица, найденная из следующих команд:

a=rand(n);
A=triu(a)+triu(a,1)'

Мне было интересно, как мне преобразовать эту симметричную матрицу в трехдиагональную матрицу?

Любая помощь приветствуется. Большое спасибо.


person user3553714    schedule 20.04.2014    source источник


Ответы (1)


Вам нужно найти верхнюю форму Хессенберга вашей матрицы. Для симметричной матрицы это трехдиагональная.

Для этого используйте команду hess:

B=hess(A); 
person riklund    schedule 20.04.2014