LAPACK'in kullanmasının nedeni nedir


9

LAPACK'in QR rutini Q'yu Hanehalkı reflektörleri olarak depolar. Yansıma ile , böylece sonucun ilk öğesi olur , bu yüzden saklanması gerekmez. Ve gerekli ölçek faktörlerini içeren ayrı bir vektörü saklar . Yani bir reflektör matrisi şöyledir:v1/v11τ

'H=ben-τvvT,

burada normalleştirilmez. Ders kitaplarında reflektör matrisiv

'H=ben-2vvT,

nerede v normalize edilir.

Neden LAPACK ölçeği gelmez ile yerine bunu normale?v1/v1

Gerekli depolama alanı aynıdır ( yerine , depolanmalıdır) ve daha sonra ile çarpmaya gerek olmadığından uygulaması daha hızlı yapılabilir ( ders kitabı sürümünde ile çarpım optimize edilebilir, basit normalleştirme yerine , ile ölçeklendirilir ).τv1'Hτ2v2/v

(Sorumun nedeni bir QR ve SVD rutini yazıyorum ve bu kararı izlemem gerekip gerekmediğini bilmek istiyorum)

Yanıtlar:


7

Bu tasarımı kullanan Hanehalkı-QR'nin engellenmiş varyantı. Golub ve Van Kredisi kitabına bakarsanız (Ch 5.2 ya da öylesine) algoritmanın k-yinelemelerinin, bireysel yansıtıcıları biçimindeki sıra-k yansıtıcısına biriktirerek birlikte nasıl engellenebileceğinden bahsediyorlar. ; burada ve , boyutunda "uzun sıska" matrislerdir . Bu algoritma daha fazla iş yapar, ancak gemm () çağrıları açısından zengin olduğu için pratikte daha hızlıdır. Ne yazık ki ve bağımsız olarak temsil etme ihtiyacı nedeniyle depolamada boşa .ben+WYTWYnxkWY

Daha sonraki bir makalede (aşağıda anılan), Van Kredisi daha verimli bir "simetrik" veri yapısını, biçiminin bir blok reflektörünü açıklamaktadır . Burada hala , ancak oluşturmak için flop / depolama gereksinimi , küçük bir üst üçgen matrisi olan ortadan kaldırılmıştır . ile çarpma ihtiyacı az miktarda fazladan iş , olduğu için genellikle net bir kazanç sağlar .ben+YTYTYnxkWTkxkTk<<n

LAPACK içinde, engellenmemiş algoritma gerçekten sadece blok algoritmasının sınırlayıcı bir , sembol seçimine kadar (bu da bizi ,k1τ1x1 sürümü T üçgen).

Atıf: Schreiber, Robert ve Charles Van Loan. "Hanehalkı dönüşüm ürünleri için depolama verimli bir WY temsil." SIAM Bilimsel ve İstatistiksel Hesaplama Dergisi 10.1 (1989): 53-57.


Cevap için teşekkürler! Görmüyorum, oτ sadece bir 1x1ölçüsünde T. Alıntılanan makalede, Algoritma 5'te,Y dır-dir v, ve T-2'dir. Bu yüzden LAPACK sürümü olarak değil, ders kitabı sürümü olarak sona erer. Bir şey mi özledim?
geza

2

Saklamak zorunda değilsin τ, vektörün geri kalanından yeniden hesaplayabilirsiniz. (Yeniden hesaplayabilirsinizv1 normalleştirilmiş sürümdeki diğer girişlerden de, ancak bu çıkarımlar nedeniyle açıkça kararsız bir hesaplama.)

Aslında, alt üçgen kısmını tekrar kullanabilirsiniz. R, depolamak v2,...vn, böylece çarpanlara ayırma işlemi tam olarak yerinde hesaplanır. Lapack, algoritmaların bu yerinde sürümlerine çok önem veriyor.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.