2014 dxdy logo

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

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




 
 Eigenvalues & eigenvectors
Сообщение20.12.2008, 19:20 
Задача состоит в реализации на C++ задачи нахождения собственных значений и собственных векторов матриц произвольной размерности N. Причем, задачу надо решить в лоб, то есть составить каким-либо образом характеристический многочлен, любым способом решить характеристическое уравнение, и далее по найденным лямбда построить собственные вектора.
Вопросы следующие:
- Как для произвольной размерности написать характеристический многочлен? Я пока сделал для N<=3, потому что оно довольно просто выписывается руками :) А вот написать код для детерминанта произвольной размерности не получается...
-Далее, как по найденным лямбда находить собственные вектора? Опять же, математически понятно, а как реализовать, вызывает затруднения...

 
 
 
 
Сообщение20.12.2008, 19:43 
Аватара пользователя
Mono-X писал(а):
Как для произвольной размерности написать характеристический многочлен?
Вам нужно реализовать алгебру полиномов, т.е. разработать структуру для хранения коэффициентов многочленов и написать функции для их сложения, вычитания и умножения. Затем, с помощью этих функций нужно модифицировать функцию для вычисления определителя так, чтобы она работала с полиномами вместо чисел (для этого, правда, требуется некоторая модификация, чтобы функция не использовала делений!).

Mono-X писал(а):
как по найденным лямбда находить собственные вектора
Подставляем лямбда, получаем вырожденную матрицу, методом Гаусса приводим её к ступенчатому виду (по ходу вычисляя обратную матрицу к матрице преобразования), в ступенчатом виде у матрицы собственные вектора образуют подпространство (0, ..., 0, x_k, ..., x_n) с очевидным базисом, преобразовываем этот базис обратно по получившейся обратной матрице.

 
 
 
 
Сообщение21.12.2008, 16:47 
:) Я понимаю постановку задачи математически, проблема состоит как раз в реализации алгоритма на языке...
Если объяснять долго, дайте ссылки, пожалуйста, где я бы мог обо всем этом почитать...

 
 
 
 
Сообщение21.12.2008, 20:34 
Аватара пользователя
Почему бы не воспользоваться готовыми библиотеками, где реализована матричная алгебра? Или это учебная задача?

 
 
 
 
Сообщение21.12.2008, 23:05 
Во-первых, да, это учебная задача :), а во-вторых самому бы хотелось разобраться в сути.

 
 
 [ Сообщений: 5 ] 


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