2014 dxdy logo

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

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




 
 QR разложение методом вращений Гивенса
Сообщение06.09.2010, 00:22 
Всем доброго дня.
Помогите, пожалуйста разобраться с одним ньюансом в методе вращений.
Каков алгоритм составления матрицы G(матрицы вращений)?
Смотрю вот этот пример:
http://www.gnucash.org/mirrors/www.cs.ut.ee/2004.01.04/toomas_l/linalg/lin2/node9.html
Не могу уловить последовательности, в которой элементы$ c, s, -s, c$ подставляются в единичную матрицу. В первой итерации они подставляются, как
$(i-1,j+1)(i-2,j+2)$
$(i,j+1)(i,j+2)$
относительно элемента $(i,j)$ матрицы $A$, который мы хотим превратить в ноль.
А в остальных итерациях, как
$(i-1,j)(i-1,j+1)
$(i,j)(i,j+1)
Почему так и нету ли какой-нибудь единой последовательности действий?
Заранее спасибо.

 
 
 
 Re: QR разложение методом вращений Гивенса
Сообщение06.09.2010, 08:00 
Аватара пользователя
Это хрень какая-то. Ссылку не читал (если там то же самое, что у меня, то она бесполезна, а если нет, то вредна), однако подставлять надо на места (i,i), (i,j), (j,i) и (j,j). Иначе получится не матрица вращения, а бог знает что.

 
 
 
 Re: QR разложение методом вращений Гивенса
Сообщение06.09.2010, 08:58 
По ссылке -- всё честно, только не очень удачны обозначения. Могут сбить с толку два обстоятельства. Во-первых, маловато сомножителей Гивенса, поэтому можно и не уловить закономерности. Во-вторых, не облегчает жизни сквозная нумерация этих матриц.

Фактически последовательность матриц такова:

$G_1(n-1,n),G_1(n-2,n-1),\ldots,G_1(3,4),G_1(2,3),G_1(1,2),$
$G_2(n-1,n),G_2(n-2,n-1),\ldots,G_2(3,4),G_2(2,3),$
$G_3(n-1,n),G_3(n-2,n-1),\ldots,G_3(3,4),$
$.\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ .\ ,$
$G_{n-3}(n-1,n),G_{n-3}(n-2,n-1),G_{n-3}(n-3,n-2),$
$G_{n-2}(n-1,n),G_{n-2}(n-2,n-1),$
$G_{n-1}(n-1,n).$

Матрицы из первой строчки обнуляют поддиагонильные элементы первого столбца, двигаясь снизу вверх -- от последнего элемента до второго. Затем матрицы из второй строчки обнуляют элементы второго столбца (от последнего до третьего) и т.д. Самая последняя матрица обнуляет единственный поддиагональный элемент предпоследнего столбца. Каждое обнуление получается вращением двух соседних строк, указанных в скобках (нижний элемент обнуляется за счёт лежащего непосредственно над ним).

 
 
 
 Re: QR разложение методом вращений Гивенса
Сообщение06.09.2010, 20:02 
Спасибо за ответы. Сейчас попробую, как вы сказали(пишу программу для QR разложения).
В каком порядке обнулять элементы я и сам понял. Вопрос был только в формировании матрицы вращения(куда вставлять $c,s,-s,c$).

 
 
 
 Re: QR разложение методом вращений Гивенса
Сообщение06.09.2010, 23:52 
Разобрался. Все заработало. Отпишусь, вдруг кому пригодится.
Ошибка была в том, что при формировании матрицы вращений я отталкивался от положения обнуляемого элемента исходной матрицы, и это положение ошибочно принимал за $(i,j)$. Соответственно, дальше все уже было не правильно.
Перефразирую слова ewert более простым языком: за $j$ надо принимать строку, на которой находится обнуляемый элемент, а за $i$- строку над ним.
А потом, как написал ИСН, элементы $c,s,-s,c$ примут положения $(i,i), (i,j), (j,i) (j,j)$ соответственно.

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


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