2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 19:46 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #366510 писал(а):
С того, что одинаковым с.з. будут соответствовать разные с.в.,

это означает лишь, что все собственные векторы не в момент найдёшь (хоть и это не шибко проблемно). Но числа-то -- какие проблемы.

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 19:53 


26/01/10
959
ewert имел в виду, что $\lambda=\pm1$, то есть отрицательное получается. Но мне это не важно, лишь бы вещественное.

Цитата:
В общем, либо степенной метод (который рано или поздно результат Вам даст) - либо ничего.
Ну, или ищите аналитическое решение.

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

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 19:54 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #366510 писал(а):
1. С того, что одинаковым с.з. будут соответствовать разные с.в., и в натянутом на них пространстве очередные итерации будут "гулять".

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

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 20:52 
Заслуженный участник
Аватара пользователя


11/03/08
10217
Москва
В реальности, увы, гуляют. Есть такой неприятный эффект от возмущения из-за ошибок округления. Если у Вас абсолютно точная арифметика - то, разумеется, вопрос принципиален, алгебраическая или геометрическая кратность. А в конечной точности - существеннее разница между последовательными с.з.

А с тем, что максимальное с.з. в Вашем примере будет положительно, Вы согласны?

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 21:01 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #366541 писал(а):
А с тем, что максимальное с.з. в Вашем примере будет положительно, Вы согласны?

нет, конечно.

Евгений Машеров в сообщении #366541 писал(а):
Есть такой неприятный эффект от возмущения из-за ошибок округления.

Возможно. Ну тут уж, знаете ли, кто кого переборет. Слон кита -- или кит слона. Погрешности округления -- или перепад модулей двух крайних с.ч.

Что же до случая, когда тот жорданов ящик нетривиален -- то тут без вариантов. Не будет сходиться тот алгоритм, хоть ты тресни. Ну т.е. формально-то будет, но -- за совершенно неразумное время.

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 21:15 
Заслуженный участник
Аватара пользователя


11/03/08
10217
Москва
Пардон... Два собственных значения. Одно равно 1, второе -1.
И Вы полагаете, что максимальное из них не положительно?

-- Вт окт 26, 2010 22:18:03 --

Pavia
И, кстати, посмотрел я, что там у Фукунаги. Извините, там не об этом.
Там о том, что надо рассчитать с.з. и с.в. некоторой матрицы неполного ранга, полученной умножением некоей прямоугольной матрицы на себя же транспонированную. И что вместо этого можно переставить сомножители, и получить матрицу меньшего размера (порядок которой равен меньшей, а не больше размерности прямоугольной), с.з. которой совпадают с ненулевыми с.з. интересующей матрицы, а с.в. получаются простым образом.

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение26.10.2010, 21:27 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #366552 писал(а):
Пардон... Два собственных значения. Одно равно 1, второе -1.И Вы полагаете, что максимальное из них не положительно?

Конечно. В смысле -- не обязательно. Ровно из-за чего тот тупой алгоритм и проваливается, не более и не менее.

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 13:09 


27/10/10
11
Здравствуйте, а можно влезть с несколько похожим вопросом. У меня тоже есть большая матрица, притом она band matrix (не знаю, как принято это переводить), то есть состоит из нескольких диагоналей (в простейшем случае, трехдиагональная, но может быть и больше), притом в каждой строке стоит одно и то же. Например:

0.3 0.5 0 0
0.2 0.3 0.5 0
0 0.2 0.3 0.5
0 0 0.2 0.3

или

0.3 0.5 0 0 0
0.2 0.3 0.5 0 0
0 0.2 0.3 0.5 0
0 0 0.2 0.3 0.5
0 0 0 0.2 0.3

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

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 13:13 
Заслуженный участник


11/05/08
32166
vajsaforutube в сообщении #366730 писал(а):
притом она band matrix (не знаю, как принято это переводить),

Буквально так и переводится -- "ленточная матрица".

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 13:22 


26/01/10
959
Возьмите какую-нибудь систему компьютерной алгебры и колдуйте в ней до тех пор, пока не увидите нужных вам закономерностей. А потом сможете навести аналитику, уже зная чего ожидать.

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

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 14:36 


27/10/10
11
Zealint, ewert, спасибо! Буду знать куда копать :)

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 15:07 
Заслуженный участник
Аватара пользователя


11/03/08
10217
Москва
ewert

Ещё раз... Вы действительно полагаете, что максимальное из двух чисел (1; -1) "не обязательно положительно"? Или это у Вас шутка юмора такая?

vajsaforutube
Это у Вас тёплицева матрица. Для близкой по структуре циркулянтной матрицы есть весьма просто выглядящие выражения для с.з. и с.в., для тёплицевых общего вида есть оценки через циркулянтные.
http://ee.stanford.edu/~gray/toeplitz.pdf

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 16:08 


27/10/10
11
Спасибо за ссылку, Евгений! Матрица, правда, не совсем Тёплицева - в первой строке "выехавшие" за верхний край ненулевые элементы каждого столбца подлым образом прибавляются к первому элементу этого столбца, но авось что-нибудь с этим придумаю. :)

Забавно, что в родственной задаче у меня как раз вылезли циркулянтные матрицы - через них, например, можно представить нестандартную операцию умножения векторов:

[1, 2, 3]T x [4, 5, 6]T = [1*4, 2*5, 3*6]T

как произведение циркулянтной матрицы, на вектор в "циклическом" базисе. Пока не знаю, получится ли из этого что-то работающее, но есть надежда... спасибо!

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 18:28 
Заслуженный участник


11/05/08
32166
Евгений Машеров в сообщении #366767 писал(а):
Вы действительно полагаете, что максимальное из двух чисел (1; -1) "не обязательно положительно"?

Конечно. Ведь максимальность-то понимается по модулю.

-- Ср окт 27, 2010 20:14:22 --

Да, и чего-то я не понял:

vajsaforutube в сообщении #366730 писал(а):
Все элементы матрицы - вероятности переходов. (задача, которую мы решаем - что-то наподобие блуждания по прямой). Требуется найти главное собственное значение

У неё же все собственные числа по модулю не превосходят единицы, и есть как минимум одно, в точности равное единице.

 Профиль  
                  
 
 Re: Главное собственное значение огромной матрицы
Сообщение27.10.2010, 19:35 


20/12/09
1527
Zealint в сообщении #366522 писал(а):
ewert имел в виду, что $\lambda=\pm1$, то есть отрицательное получается. Но мне это не важно, лишь бы вещественное.

Цитата:
В общем, либо степенной метод (который рано или поздно результат Вам даст) - либо ничего.
Ну, или ищите аналитическое решение.

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


Интересная задача, предлагаю следующее рассуждение (но не очень уверен):

Пусть Ваша матрица имеет размер $10^n$x$10^n$.
Насколько я понял, Вы располагаете алгоритмом, позволяющим быстро вычислить любой конкретный элемент матрицы (0 или 1). Пусть время работы алгоритма (число шагов) $a$.
Степенной метод нахождения максимального по модулю собственного значения требует ${10^{2n}}(a+b)t $ шагов, где $b$ - небольшое число до 20, а $t$ - число итераций у степенного метода, также требуется память размером $10^n$.

Насколько можно сократить общее время вычислений?

Попытка сэкономить на вычислениях самой матрицы приводит к проблеме сходной с P-NP.
В самом деле любому алгоритму можно сопоставить матрицу, и вопрос о максимальном значении такой матрицы будет не проще, чем вопрос о том не состоит ли эта матрица вообще из одних нулей (а это co-NP полная задача).
Значит, скорее всего, не получиться избежать перебора - вычисления всех элементов матрицы.
И $10^{2n}a$ так и останется.

Попробуем оценить теперь $t$ - число итераций у степенного метода.
Все собственные значения не превосходят по модулю $10^n$.
Их всего тоже около $10^n$.
Вопрос: как их модули могут быть распределены на отрезке от 0 до $10^n$?
Возможно, что рядом с максимумом модуля есть еще тысячи относительно близких модулей,
значит чтобы, вычислить точно максимальное значение надо проделать порядка $10^n$ итераций, $t=k10^n$, ведь две почти одинаковых по модулю сопряженных пары могут существенно отличаться друг от друга.

Таким образом необходимое время порядка $k10^{3n}(a+b)$. В конкретном случае - $10^{24}$.

Другое дело, если надо просто найти максимум модуля собственного значения.
Число итераций степенного метода будет обратно пропорционально точности,
с которой Вы хотите получить этот максимум.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Mikhail_K


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group