Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Алгоритмы
Перезагрузить страницу Метод Данилевского как с ним работать
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Daredevil Daredevil вне форума
Member
 
Сообщений: 158
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 31.12.2003
По умолчанию Метод Данилевского как с ним работать - 04.11.2004, 00:19

Объясните мне по человечески Метод Данилевского, а то я просто не могу его понять, а мне еще прогу по нему писать

Поиск коэффициентов характеристического полинома матрицы методом А.M. Данилевского

Сущность метода Данилевского заключается в приведении определителя к так называемому нормальному виду Фробениуса



Если нам удалось записать определитель в такой форме, то, разлагая его по элементам первой строки, будем иметь:



Таким образом задача сводится к нахождению матрицы P в форме Фробениуса, подобной матрице A, так как собственные числа инвариантны относительно операции подобия.

Процедура последовательно преобразует строки исходной матрицы, начиная с последней, к виду описанному выше, при этом преобразование осуществляется таким образом, чтобы полученные матрицы были подобны.

Опишем первое из преобразований, которое приводит n-ую строку исходной матрицы A к необходимому виду. Вначале преобразуем матрицу A в матрицу B по следующим формулам:

bij = aij - ain-1 ani /ann-1 при i = 1, .., n; j не равно n-1;
bin-1 = ain-1 /ann-1 , при i = 1, .., n

Последняя строка построенной матрицы B будет удовлетворять нашим условиям, но не будет подобна матрице A, поэтому проведем еще одно преобразование и получим матрицу С подобную A и сохраняющую последнюю строку:

сij = bij при i = 1, .., n-2
cn-1j = an1 b1j + an2 b2j + ... + ann bnj при j=1, .., n

Таким образом получили матрицу С подобную A и с последней строкой как в матрице привеленного вида Фробениуса. Продолжая, преобразуем аналогично n-1 строку матрицы С и т.д.

Допустим, что при преобразовании матрицы A в матрицу Фробенниуса P мы пришли к матрице вида:



причем оказалось, что dkk-1 = 0.

Тогда преобразования методом Данилевского нельзя продолжить. Здесь возможны два случая:

существует элемент dkl отличный от нуля, где l < k-1, тогда переставляем местами k-1 и l столбцы и k-1 и l строки получаем матрицу подобную D для которой возможны дальнейшие преобразования по методу Данилевского
все элементы k строки равны нулю, тогда полученная матрица имеет вид:


причем D2 имеет нормальный вид Фробениуса, а матрицу D1 можно привести к нему методом Данилевского. Полином же порождающий собственные значения матрицы А, есть произведение аналогичных полиномов для D1 и D2 , при этом коэффициенты полинома для D2 определены.

На самом деле, имеет смысл искать не просто ненулевой элемент, а максимальный по модулю, а потом переставлять именно его - это уменьшает погрешности при операциях с вещественными числами. Также имеет смысл проводить эту операцию на каждом шаге, чем и занимается процедура DanilevskyEigenValues.

Процедура DanilevskyEigenValues на вход получает матрицу A, а на выходе выдает массив коэффициентов характеристического полинома Q: Q(x)=q[0]+q[1]*x 1+...+q[n]*x n. Процедура при необходимости самостоятельно делает рекурсивный вызов и самостоятельно по полученной матрице находит коэффициенты полинома.



Я вот абсолютно не могу его понять!!! Срочно пожалуйста объясните мне его!!!!!!! Очень буду признателен!!!
Скажите плиз, какие входные данные должны быть? И матрица может быть вообще любой чтоли? Даже не квадратной???
Ответить с цитированием
  (#2 (permalink)) Старый
Daredevil Daredevil вне форума
Member
 
Сообщений: 158
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 31.12.2003
По умолчанию 06.11.2004, 00:35

Блин! Ну хоть кто нибудь помогите пожалуйста!!! Ну обяъсните мне все-таки!!!!!!
Ответить с цитированием
  (#3 (permalink)) Старый
wirtwelt
Guest
 
Сообщений: n/a
По умолчанию 08.01.2009, 04:49

Прошу прощения, но мне кажется что в теме что-то пропущено - возможно рисунки матриц.. Если автор разобрался с методом, хотелось бы видеть программу на любом языке программирования кроме Ассемблера.. В коде я уж разберусь...

Кстати, источник модератора лежит вот здесь, с картинками: http://doors.infor.ru/allsrs/alg/index.html

Но понятнее метод эт этого не стал )
Ответить с цитированием
  (#4 (permalink)) Старый
Aleksandr97 Aleksandr97 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 01.11.2018
По умолчанию 01.11.2018, 12:16

Привет,ребята. Так что, разобрались? Нужна еще помощь?
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Монте карло как с ним работать imported_Инга Вопросы начинающих программистов 0 16.06.2011 02:30
Метод Гаусса как с ним работать Dmitry II Delphi 0 27.03.2011 23:35
Симплекс-метод как с ним работать Serega_Mexanik Зацените! 1 20.03.2011 06:46
Метод Гаусса как с ним работать Y_Vetal С/С++ 0 05.03.2010 13:22
Метод Гаусса как реализовать этот метод Неумеха-программист Алгоритмы 5 01.11.2006 23:40
Градиентный метод как с ним работать Ден Шварц Алгоритмы 3 15.06.2006 12:49
TWebBrowser и метод post как с этим работать drwatson Delphi 3 17.03.2006 20:44
Поиск собственныех векторов и значений методом Данилевского imported_kisa Pascal 4 06.12.2005 12:27
Метод Гауса как с ним работать Stef Pascal 4 27.01.2005 00:57
Как изменить кодируемый файл "Метод Данилевского" что бы работал в С Daredevil Вопросы начинающих программистов 1 18.10.2004 20:25
Метод Гира как с ним работать Anonymous Алгоритмы 4 24.03.2003 21:38
Метод Гира как с ним работать Anonymous Алгоритмы 1 29.11.2002 17:28



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов