2013-11-09 11 views
8

burada bu benim ilk yazı hesaplanması? Temele ihtiyacım yok, boş alandaki tek bir vektör yapacak.C++ armadillo - <p></p> başka vektörün sıfır uzayında bir vektör hesaplamak için herhangi bir yolu var mı ... sıfır boşluk

Zaten çözmek() yöntemi kullanılarak çalıştı -

A tipi mat bir 3x3 matristir
colvec x(3); 
x = solve(A,B); 

-

2 2 2 
3 3 3 
4 4 4 

ve B tipi colvec sıfır vektör -

0 
0 
0 

Ancak program aşağıdaki hatayı atmayı sonlandırır -

error: solve(): solution not found 
terminate called after throwing an instance of 'std::runtime_error' 
    what(): 

Çözme() yöntemini daha önce kullandım ve mükemmel sonuçlar aldım, ancak bu basit durumda çalışmıyor gibi görünüyor. Bu denklemin birden fazla çözümü olduğundan mı? Öyleyse, boş bir alanda bir vektör elde edebilmem için başka bir çözüm var mı?

Herhangi bir yardım için teşekkür ederiz.

Düzenleme: SVD (mat U, vec s, mat, V, mat, X, yöntem = "standart") yöntemi çalıştı ve ben V. sütunlarından X sıfır boşluk var

Sadece cevabın doğruluğunu geliştirmek için herhangi bir yol olup olmadığını merak ediyorum.
Teşekkürler!

+0

Satır echelon formunu azaltmak için matris A'yı dönüştürmenin bir yolu var mı? daha sonra oldukça basit – pyCthon

+0

@pyCthon Hayır, daha doğrudan bir yöntem istedim, bu yüzden tüm şeyi kodlamak yerine, kütüphane işlevlerini kullandım. – user1673471

+0

Bu kitaplığın desteklemesi gereken bir şey olduğunu kabul ediyorum, API'yi aradım ve boş alanı nasıl hesaplayacağımı bilmiyorum. Geliştiricilerle temasa geçip önerdikleri şeyi görebiliyordum, http://arma.sourceforge.net/contact.html – pyCthon

cevap

5

Armadillo kütüphanesinin son sürümünde null() işlevini kullanarak matrisin sıfır boşluğunun ortonormal temelini bulabilirsiniz. http://arma.sourceforge.net/docs.html#null adresindeki belgelere bakın. İşlev 5.400 (Ağustos 2015) sürümüne eklendi.

İlgili konular