Dikdörtgen yoğun bir matrisin sıfır boşluğu


16

Yoğun bir matris verilen

ARm×n,m>>n;max(m)100000
bazı tolerans dahilinde sıfır uzayı temelini bulmanın en iyi yolu nedir ϵ ?

Bu temele dayanarak bazı kömürlerin içinde doğrusal olarak bağımlı olduğunu söyleyebilir miyim ? Başka bir deyişle, boş uzay bazında hesaplandığında, nonsüler olmayan matris elde etmek için hangi sütunlarının çıkarılması gerekir?AϵA

Kaynaklar takdir edilmektedir.

Yanıtlar:


12

Bir matrisin sıfır boşluğunu belirlemek için standart yöntemler, bir QR ayrışması veya bir SVD kullanmaktır. Doğruluk çok önemliyse, SVD tercih edilir; QR ayrışması daha hızlıdır.

Eğer, SVD kullanarak ve ardından sütun V küçük tekil değerler (yani, küçük köşegen girişleri tekabül Σ ) boş alanı için bir temel oluşturmaktadır. Buradaki ilgili tolerans, kişinin "küçük" tekil bir değer olarak kabul ettiği şeydir. Örneğin MATLAB, azami ( m , n ) ε olmak için küçük sürer ; burada ε , makine doğruluğu ile ilgilidir ( MATLAB belgelerine bakın ).A=UΣVHVΣmax(m,n)εε

Eğer QR ayrışma kullanarak, , ve sıralaması A olan R , daha sonra son N - r sütunları Q ve nullspace oluşturan A QR ayrışma ortaya seviye olduğunu varsayarak,. Belirlemek için r , ana Diagonal'da girişlerinin sayısını hesaplamak R , büyüklüğü (SVD yaklaşımda kullanılana benzer) bir tolerans aşar.AT=QRArnrQArR

LU ayrışma kullanmayın. Kesin aritmetikte, uygulanabilir bir yaklaşımdır, ancak kayan nokta aritmetiğiyle, sayısal hataların birikmesi onu yanlış yapar.

Wikipedia bu konuları burada ele alıyor .


Geoff, QR açısından konuşurken, ayrışmanın olduğunu varsayalım, daha sonra orijinal matristeki boş uzay temeli ve sütunları nasıl ilişkilendirebilirim? Başka bir deyişle, boş alandan kurtulmak için hangi sütunları kaldırmalıyım ? Buradaki nokta ayrışma ile değil A'nın kendisiyle çalışmaktır . AA
Alexander

QR ayrışmasını hesaplayan rutinler normalde sütunların QR çarpanlarına ayırmalarına nasıl izin verildiğini gösteren bir permütasyon vektörü döndürme seçeneğini içerir. Bu permütasyon vektörünün son girişleri , boş uzaydaki A ( A T sütunları) satırlarına karşılık gelir . Bu vektörün ilk r girdileri doğrusal olarak bağımsız olan A T sütunlarına karşılık gelir . "Boş alandan kurtul" derken ne demek istediğinden emin değilim. Dışı olmayan bir matris elde etmek için A'nın sütunlarını kaldırmak mı demek istediniz ? nrAATrATA
Geoff Oxberry

Evet, demek istiyorum. Permütasyona bakacağım, teşekkürler.
Alexander

Bu farklı bir soru. Bunun yerine QR ayrışmasını (veya SVD) hesaplarsınız . A'nın QR ayrışmasını hesaplarsanız, yukarıdaki cevaptaki gibi (matrisi aktarmaya gerek yoktur) A derecesini hesaplayabilir ve ardından permütasyon vektörünün ilk r girişlerini (burada r , A'nın sırasıdır) karşılık gelir. A'nın bağımsız sütunlarına . SVD için aynı tür algoritmalar geçerlidir; bir permütasyon vektörünü ayrışmayla birlikte döndürebiliyorsanız, bu gerekli bilgileri sağlamalıdır. AAArrAA
Geoff Oxberry

8

Eğer soru işaret olarak, öncelikle bir dizin seçerek bazı işler kaydedebilirsiniz set I arasında p 5 n (diyelim) rastgele satır ve ortogonal çarpanlara kullanarak bir T I : = Q R . (QR çarpanlara biri S sqare ve R, seviye dikdörtgen olan r , ve geriye kalan , n - r sütunlar R sıfır stabilitesini arttırmak olacaktır değiştirilmiş bir QR ayrıştırma kullanarak permütasyon daha sonra içinde göz önüne alınmalıdır. daha ayrıntılı bir tarif.)mnbenp5nbirben:T=SR,SR,rn-rR,

Tipik olarak, bu , Q'nun son n - r sütunları olan sütunları tarafından yayılan çok daha düşük boyutlu bir altuzay verecektir . Bu alt boşluk A'nın boş alanını içerir . Şimdi başka bir ayrık rasgele indeks seti seçin ve ( A I : N ) T'nin QR çarpanlarına ayırın . Muhtemelen daha düşük boyutta geliştirilmiş bir N elde etmek için soldaki sonuçtaki boş alanı N ile çarpın . N boyutu artık azalana kadar tekrarlayın . O zaman muhtemelen doğru boş alana sahip olursunuz ve A N hesaplayarak kontrol edebilirsiniz.N-n-rSbir(birben:N-)TN-N-N-birN-. Bu henüz önemsiz değilse, en önemli satırlarla daha fazla yineleme yapın.

Düzenleme: Bir kez , bir maksimal kümesini bulmak için J ait lineer bağımsız sütun A ortogonal bir çarpanlara göre , N , T = Q, R döndürülmesi ile. Gerçekten de, pivot olarak seçilmeyen indeks seti J bu özelliğe sahip olacaktır.N-JbirN-T=SR,J


Büyük bir matrisin boşluğunu belirlemenin etkili bir yolu için +1. İhtiyacım olduğunda daha sonra bu cevaba başvurmayı hatırlamam gerekecek.
Geoff Oxberry

Gerçekten, kulağa makul geliyor, ancak matrislerim 16 GB RAM'e sığıyor, bu yüzden standart matlab qr ile kalacaktım.
Alexander

Prof. Neumaier, Testten o algoritma karar verdik ama tam olarak ne olduğunu anlamıyorum ve hangi "QR çarpanlara hesaplamak etmez ( A I : N ) T " demek? Lütfen biraz daha açıklayabilir misiniz? N(AI:N)T
Alexander

Cevabımı biraz düzenledim. , Geoff Oxberry'nin tarifiyle hesaplanır. N-
Arnold Neumaier

Teşekkür ederim. Ben uyguladım. Ancak, bildiğim kadarıyla gördüğünüz gibi bu algoritma Bana lineer bağımsız sütun kümesi tanımlamak için izin vermiyor (biz ayrıştırmak beri A T I : yerine A I : ) ama sadece nullspace temeli kendisi tahmin yardımcı olur? AAI:TAI:
Alexander
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.