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


16

Yoğun bir matris verilen

A∈Rm×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=QRArn−rQArR

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 ? n−rAATrATA
— 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.)m≫nbenp≈5nbirben: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.