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,n⟨ y, X ⟩ ≜ Re( 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