В числовая линейная алгебра, а Вращение Якоби это вращение, Qkℓ, двумерного линейного подпространства н-размерный внутреннее пространство продукта, обнуляемую симметричную пару не-диагональ записи п×п настоящий симметричная матрица, А, когда применяется как преобразование подобия:
![A mapsto Q_ {k ell} ^ T A Q_ {k ell} = A '. , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/a2e0ccf3988a03d6228c8e23834f219818edac17)
![begin {bmatrix}
{*} & & & cdots & & & *
& ddots & & & & &
& & a_ {kk} & cdots & a_ {k ell} & &
vdots & & vdots & ddots & vdots & & vdots
& & a _ { ell k} & cdots & a _ { ell ell} & &
& & & & & ddots &
{*} & & & cdots & & & *
end {bmatrix}
к
begin {bmatrix}
{*} & & & cdots & & & *
& ddots & & & & &
& & a '_ {kk} & cdots & 0 & &
vdots & & vdots & ddots & vdots & & vdots
& & 0 & cdots & a '_ { ell ell} & &
& & & & & ddots &
{*} & & & cdots & & & *
end {bmatrix}.](https://wikimedia.org/api/rest_v1/media/math/render/svg/ba9440229656bc01bbcea1097456abf735cd4741)
Это основная операция в Алгоритм Якоби на собственные значения, который численно стабильный и хорошо подходит для внедрения на параллельные процессоры[нужна цитата ].
Только строки k и ℓ и столбцы k и ℓ из А будет затронуто, и это А′ Останется симметричным. Кроме того, явная матрица для Qkℓ редко вычисляется; вместо этого вычисляются вспомогательные значения и А обновляется эффективным и численно стабильным способом. Однако для справки мы можем записать матрицу как
![{ displaystyle Q_ {k ell} = { begin {bmatrix} 1 &&&&&& & ddots &&&& 0 & && c & cdots & -s && && vdots & ddots & vdots && && s & cdots & c && & 0 &&&& ddots & &&&&&& 1 end {bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3b830a4164354b4f7a6d35d76900ec0e6af5a38a)
То есть, Qkℓ является единичной матрицей, за исключением четырех элементов, двух по диагонали (qкк и qℓℓ, оба равны c) и две симметрично расположенные по диагонали (qkℓ и qℓk, равно s и -s, соответственно). Здесь c = cos ϑ и s = sin ϑ для некоторого угла ϑ; но чтобы применить поворот, сам угол не требуется. С помощью Дельта Кронекера обозначения, элементы матрицы можно записать
![q_ {ij} =
delta_ {ij} + ( delta_ {ik} delta_ {jk}
+ delta_ {i ell} delta_ {j ell}) (c-1) + ( delta_ {ik} delta_ {j ell}
- delta_ {i ell} delta_ {jk}) s. , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/c4f9c4d2dc5a1627d583449c7b4c04bec665def4)
Предполагать час это индекс, отличный от k или ℓ (которые сами должны быть разными). Тогда обновление подобия дает алгебраически
![a '_ {hk} = a' _ {kh} = c a_ {hk} - s a_ {h ell} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/0627b82a4f73d7bc24466111877470ce9c2ae70c)
![a '_ {h ell} = a' _ { ell h} = c a_ {h ell} + s a_ {hk} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/c79e1a0c47b82e33008516b4a2c0069b2ed8f86a)
![a '_ {k ell} = a' _ { ell k} = (c ^ 2-s ^ 2) a_ {k ell} + sc (a_ {kk} - a _ { ell ell}) = 0 , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/e40fd284129c7674d741cd2fdd989ef0dc85a6b3)
![a '_ {kk} = c ^ 2 a_ {kk} + s ^ 2 a _ { ell ell} - 2 s c a_ {k ell} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/e1f27c36edbdec943b84b8405a1d8f519b3672fa)
![a '_ { ell ell} = s ^ 2 a_ {kk} + c ^ 2 a _ { ell ell} + 2 s c a_ {k ell}. , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/2db6b767a9b7d82c98c9f27d28007c3367ff2e70)
Численно стабильные вычисления
Чтобы определить количества, необходимые для обновления, мы должны решить недиагональное уравнение для нуля (Голуб и Ван Лоан 1996, §8.4). Это означает, что
![frac {c ^ 2-s ^ 2} {sc} = frac {a _ { ell ell} - a_ {kk}} {a_ {k ell}}.](https://wikimedia.org/api/rest_v1/media/math/render/svg/77bd510c8ee5eb83d4f946b3867e7c743d139cab)
Установите β равным половине этого количества,
![beta = frac {a _ { ell ell} - a_ {kk}} {2 a_ {k ell}}.](https://wikimedia.org/api/rest_v1/media/math/render/svg/fe3af7e8fd06318ed18c717cb218831c90a3f3b7)
Если аkℓ равен нулю, мы можем остановиться, не выполняя обновления, поэтому мы никогда не делим на ноль. Позволять т быть загорелым ϑ. Затем с помощью нескольких тригонометрических тождеств сводим уравнение к виду
![т ^ 2 + 2 бета т - 1 знак равно 0. , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/f6e9a6620a5880c54ee8e5d3aed0179445e49dba)
Для устойчивости выбираем решение
![t = frac { sgn ( beta)} {| beta | + sqrt { beta ^ 2 + 1}}.](https://wikimedia.org/api/rest_v1/media/math/render/svg/431a31692f8a3d27ef804c73dd6b38f8e5efc97d)
Отсюда мы можем получить c и s в качестве
![c = frac {1} { sqrt {t ^ 2 + 1}} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/5c400ad5e90c8853c1022ce304c0f055909f0ad6)
![s = c t , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/89b94b20248ac50d4310719b5b648cd7c3aa7501)
Хотя теперь мы можем использовать приведенные ранее алгебраические уравнения обновления, может быть предпочтительнее их переписать. Позволять
![rho = frac {s} {1 + c},](https://wikimedia.org/api/rest_v1/media/math/render/svg/907c6324fbaf34cd9fd7040c2f11c8c92d4b1bfa)
так что ρ = tan (ϑ / 2). Тогда исправленные уравнения обновления
![a '_ {hk} = a' _ {kh} = a_ {hk} - s (a_ {h ell} + rho a_ {hk}) , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/a5fdf7a71d817da339498ebe47ff1713b4e3b48e)
![a '_ {h ell} = a' _ { ell h} = a_ {h ell} + s (a_ {hk} - rho a_ {h ell}) , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/ac325e222cf856f9c24a91faa7ed5002eed9bab1)
![a '_ {k ell} = a' _ { ell k} = 0 , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/3da66827e7e0d30d25227a28b10c4dc4d0bdbcc2)
![a '_ {kk} = a_ {kk} - t a_ {k ell} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/24160d5ed4149430575e27983e0d653ca0bb9a97)
![a '_ { ell ell} = a _ { ell ell} + t a_ {k ell} , !](https://wikimedia.org/api/rest_v1/media/math/render/svg/8b58a276f0ff6577d6fb2b25fbfa73ca75beeea7)
Как отмечалось ранее, нам никогда не нужно явно вычислять угол поворота ϑ. Фактически, мы можем воспроизвести симметричное обновление, определяемое Qkℓ сохраняя только три значения k, ℓ и т, с т установить на ноль для нулевого вращения.
Смотрите также
Рекомендации
|
---|
Ключевые идеи | |
---|
Проблемы | |
---|
Аппаратное обеспечение | |
---|
Программного обеспечения | |
---|