2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 вычисление собственных значений матрица.
Сообщение04.03.2012, 08:32 
Есть эрмитова матрица А, нужно вычислить у нее собственные значения. Мысль была следующая: найти для этой матрицы такую матрицу T, что $A'=T^{-1} A T$ где $A'$ треугольная матрица а значит диагональные элементы и есть собственные значения. Вопрос заключается в следующем как искать матрицу $T$. И в итоге нужно написать программу для вычисления собственных значений.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 10:10 
Аватара пользователя
bdfn
Я это плохо знаю. Но могу посоветовать книги.

Р.Хорн, Ч.Джонсон Матричный анализ Мир
Numerical Recipes in C The Art of Scientific Computing 2nd Ed - William H. Press
http://open-edu.sfedu.ru/files/Sz_sv_final.pdf

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 10:15 
bdfn в сообщении #545079 писал(а):
И в итоге нужно написать программу для вычисления собственных значений.

С какой целью нужно?...

Это -- нетривиальная задача, и конечных алгоритмов не существует. Даже в эрмитовом случае.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 10:45 
На занятий была поставлена эта задача, и цель написать рабочую программу на $C++$. А существует алгоритм для матриц к примеру 3 на 3?

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 10:55 
bdfn в сообщении #545110 писал(а):
А существует алгоритм для матриц к примеру 3 на 3?

Условно существует: тупо вычисляется характеристический многочлен, после чего решается кубическое уравнение.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 11:03 
ewert в сообщении #545112 писал(а):
bdfn в сообщении #545110 писал(а):
А существует алгоритм для матриц к примеру 3 на 3?

Условно существует: тупо вычисляется характеристический многочлен, после чего решается кубическое уравнение.

Не хотелось бы идти этим путем. Была еще мысль методом гаусса http://ru.wikipedia.org/wiki/%D0%9C%D0% ... 1%81%D0%B0 сделать исходную матрицу $A$ треугольной и элементы стоящие на диагонали будут собственными значениями, но вьет это не верно ?

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 11:15 
bdfn в сообщении #545113 писал(а):
сделать исходную матрицу $A$ треугольной и элементы стоящие на диагонали будут собственными значениями, но вьет это не верно ?

Чудес не бывает. Если нельзя -- значит нельзя.

Для матрицы три на три проще всего считать именно в лоб. Кубическое уравнение достаточно просто решается по формуле Кардано или ещё проще и надёжнее (если матрица вещественна) приближёнными методами. Для четвёртого порядка уже возникают технические трудности. Начиная с пятого -- практически работают только прямые (т.е. без вычисления характеристического многочлена) итерационные методы общего назначения. И это -- задача отнюдь не учебная, в таком виде вам её ставить не могли.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 16:21 
Спасибо ewert за полезные замечания. А можете немного поподробнее объяснить почему так делать нельзя ?

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 18:04 
bdfn в сообщении #545215 писал(а):
почему так делать нельзя ?

Я не говорил, что нельзя. Можно. Только бессмысленно: всё равно ничего не выйдет.

Наиболее очевидная причина, почему не выйдет: потому, что поиск с.ч. в конце концов сводится (с формальной точки зрения) к поиску корней некоторого алгебраического уравнения, притом общего вида. А для решения этой задачи заведомо нет никаких общих формул, начиная с пятой степени.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 18:30 
Аватара пользователя
ewert
Это вас так интеграл расстроил? Вообще собственные числа ищут не через решение уравнения, а интерационно. А вот корни алгебраического уравнения как раз и ищут через поиск собственных векторов.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 18:32 
Pavia в сообщении #545261 писал(а):
Вообще собственные числа ищут не через решение уравнения, а интерационно.

ewert в сообщении #545118 писал(а):
Начиная с пятого -- практически работают только прямые (т.е. без вычисления характеристического многочлена) итерационные методы общего назначения.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 18:50 
Аватара пользователя
Эрмитова? В смысле комплексная? Тогда можно свести к действительной симметричной.
$C=A+iB=\left( \begin{array}{cc} A & B \\ 
-B & A \end{array} \right)$
где С эрмитова, действительная часть А симметрична, мнимая часть В антисимметрична.
А уж для симметричной матрицы вполне себе методом Якоби и т.а.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 19:18 

(Оффтоп)

Евгений Машеров в сообщении #545269 писал(а):
А уж для симметричной матрицы вполне себе методом Якоби

Кто такой Якоби -- в данном-то случае?...

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 19:35 
Аватара пользователя
Ну, самый просто программируемый метод. Приведение к трёхдиагональной и QR программировать дольше.

 
 
 
 Re: вычисление собственных значений матрица.
Сообщение04.03.2012, 20:04 

(Оффтоп)

Евгений Машеров в сообщении #545289 писал(а):
Приведение к трёхдиагональной

это я в курсе, но фамилия Якоби у меня ассоциируется совсем не с этим, а с одним из итерационных методов решения просто систем

 
 
 [ Сообщений: 17 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group