В числовая линейная алгебра, а Вращение Якоби это вращение, Qkℓ, двумерного линейного подпространства н-размерный внутреннее пространство продукта, обнуляемую симметричную пару не-диагональ записи п×п настоящий симметричная матрица, А, когда применяется как преобразование подобия:


Это основная операция в Алгоритм Якоби на собственные значения, который численно стабильный и хорошо подходит для внедрения на параллельные процессоры[нужна цитата ].
Только строки k и ℓ и столбцы k и ℓ из А будет затронуто, и это А′ Останется симметричным. Кроме того, явная матрица для Qkℓ редко вычисляется; вместо этого вычисляются вспомогательные значения и А обновляется эффективным и численно стабильным способом. Однако для справки мы можем записать матрицу как

То есть, Qkℓ является единичной матрицей, за исключением четырех элементов, двух по диагонали (qкк и qℓℓ, оба равны c) и две симметрично расположенные по диагонали (qkℓ и qℓk, равно s и -s, соответственно). Здесь c = cos ϑ и s = sin ϑ для некоторого угла ϑ; но чтобы применить поворот, сам угол не требуется. С помощью Дельта Кронекера обозначения, элементы матрицы можно записать

Предполагать час это индекс, отличный от k или ℓ (которые сами должны быть разными). Тогда обновление подобия дает алгебраически





Численно стабильные вычисления
Чтобы определить количества, необходимые для обновления, мы должны решить недиагональное уравнение для нуля (Голуб и Ван Лоан 1996, §8.4). Это означает, что

Установите β равным половине этого количества,

Если аkℓ равен нулю, мы можем остановиться, не выполняя обновления, поэтому мы никогда не делим на ноль. Позволять т быть загорелым ϑ. Затем с помощью нескольких тригонометрических тождеств сводим уравнение к виду

Для устойчивости выбираем решение

Отсюда мы можем получить c и s в качестве


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

так что ρ = tan (ϑ / 2). Тогда исправленные уравнения обновления





Как отмечалось ранее, нам никогда не нужно явно вычислять угол поворота ϑ. Фактически, мы можем воспроизвести симметричное обновление, определяемое Qkℓ сохраняя только три значения k, ℓ и т, с т установить на ноль для нулевого вращения.
Смотрите также
Рекомендации
|
---|
Ключевые идеи | |
---|
Проблемы | |
---|
Аппаратное обеспечение | |
---|
Программного обеспечения | |
---|