Matris argümanlarıyla doğrusal bir sistemi çözme


10

Standart lineer sistemi çözmek için birçok hesaplama yöntemine aşinayız

Ax=b.
Ancak, formun daha genel (sonlu boyutlu) doğrusal bir sistemini çözmek için herhangi bir "standart" hesaplama yöntemi olup olmadığını merak ediyorum

LA=B,
diyelim ki, A bir olan m1×n1 matrisi, B bir bir m2×n2 matris ve L alarak doğrusal operatörü m1×n1 matrisleri m2×n2 olan matrisler Vektörizasyonu içermez matrisler , yani her şeyi standart Ax=b formuna dönüştürme.

Sormamın nedeni, aşağıdaki denklemi u için çözmem gerekiyor u:

(RR+λI)u=f
burada bir 2d Radon dönüşümü, onun eşlenik ve iki ve 2d diziler (görüntüleri). Bu denklemi vektörleştirmek mümkündür, ancak özellikle 3D'ye gidersek bir acıdır.R u fRRuf

Daha genel olarak, dizileri ne olacak ? Örneğin, ve 3D diziler olduğu çözme (bunu bir noktada Radon dönüşümü ile de yapmam gerekecek).L A = B A BnDLbir=BbirB

İleride teşekkürler ve ihtiyaç duyarsanız beni başka bir StackExchange'e göndermekten çekinmeyin.


1
Etkili çok düzeyli bir ön koşul oluşturucu oluşturabilir ve ardından konjugat gradyan kullanabilirsiniz. Bunun oldukça etkili ve çok paralelleştirilebildiği benzer bir sorunum var. Doğrudan yöntemler istiyorsanız, Lyapunov denklemi hakkındaki bu makalede olduğu gibi şema formunda indirimleri düşünün: cs.cornell.edu/cv/ResearchPDF/Hessenberg.Schur.Method.pdf
Nick Alger

Mükemmel, ref için teşekkürler! CG'nin etkili bir şekilde çalışmasını sağladım, bu yüzden mutluyum.
icurays1

Yanıtlar:


9

Evet, doğru anladınız ve 3-B'ye yükselttiğinizde gerçekten iyi çalışacak. En kolay kısım, iç üründür --- eşdeğer, açılmamış vektörleri üzerinde standart bir nokta ürünü yapın . Verilerin yine de bitişik olarak saklanacağından, bunu yerinde yapabilirsiniz. Bu karmaşık vektör uzayları ile bile çalışır --- karmaşık değerleri gerçek değer çiftleri olarak ele almanız yeterlidir. Çünkü CG için gerçek iç ürüne .Y,X Re ( Y H x)R,ny,xYeniden(y'Hx)

CG'yi (veya benzer yinelemeli yaklaşımları) genel lineer operatörlerle uygularken dikkatli olmanız gereken bir şey , lineer operatörünüzün bitişiklerini doğru bir şekilde uygulamaktır. Yani, insanlar genellikle doğru olur, ancak uygularken hata yaparlar .z = F ( y )y=F(x)z=F*(y)

Aşağıdaki kimlikten yararlanan basit bir test uygulamanızı öneririm: ve , Yaptığınız şey ve rasgele değerleri üretmek , bunları sırasıyla ileri ve bitişik işlemlerinizle çalıştırmak ve yukarıdaki iki iç ürünü hesaplamaktır. Makul hassasiyetle eşleştiklerinden emin olun ve birkaç kez tekrarlayın.y Y , F ( x ) = F * ( y ) , X . x yxy

y,F(x)=F*(y),x.
xy

EDIT: doğrusal operatörünüz simetrik olması gerekiyorsa ne yaparsınız? Bu simetriyi de doğrulamanız gerekiyor. Aynı testi kullanın, sadece --- aynı işlemi ve uyguladığına dikkat edin . Tabii ki, OP'nin hem asimetrik bir operatörü hem de simetrik bir operatörü var ... x yF=F*xy


Teşekkürler @ChristianClason! Deneyimden, bitişik hesaplamalarda ne kadar sinir bozucu hataların olabileceğini biliyorum. :) TFOCS paketimizde linop_test.mbu nedenle bir rutin uyguladık . Bu paket ayrıca vektör uzaylarındaki matrisleri, dizileri ve Kartezyen ürünleri de destekler.
Michael Grant

3

Anlaşıldığı üzere, sistemim simetrik ve pozitif tanımlı olduğu için (doğrusal operatörüm olarak yazıldığından ), konjüge gradyanı bu tür denklemi tekrarlı olarak çözmek için uyarlanabilir. Tek değişiklik iç ürünleri hesaplarken gelir - yani tipik bir iç ürün hesaplaması veya . Değiştirilmiş versiyonda, Hadamard (noktasal) ürün girişleri toplanarak hesaplanabilen Frobenius iç ürününü kullanıyoruz. yanir T k r k p T k A p kR,*R,+λbenrkTrkpkTbirpk

bir,B=Σben,jbirbenjBbenj

3D dizilere yükseldiğimde bunun iyi olacağını düşünüyoruz, ancak 3D dizilerde tanımlanan Frobenius iç ürününü henüz görmedim (yine nokta yönlü ürünü toplayabileceğim varsayımı altında çalışacağım).

Herhangi biri bilirse hala daha genel yöntemlerle ilgilenirim!

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.