2013-11-09 40 views
8

這是我第一次在這裏後......C++犰狳 - 計算零空間

有沒有辦法在另一個向量的零空間來計算矢量?我不需要這個基礎,只有一個向量位於null空間中。

我使用求解()方法已經嘗試 -

colvec x(3); 
x = solve(A,B); 

,其中A是式墊子的3×3矩陣 -

2 2 2 
3 3 3 
4 4 4 

和B是類型colvec的零向量 -

0 
0 
0 

但程序終止拋出以下錯誤 -

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

我以前使用過solve()方法並且得到了完美的結果,但它在這種簡單情況下似乎不起作用。這是因爲方程式有多種解決方案?如果是這樣,是否有任何解決方法,以任何其他方式,我可以在空間中獲得一個向量?

任何幫助,將不勝感激。

編輯:

我嘗試了SVD(墊U,VEC S,墊V,墊X,方法=「標準」)的方法和我從V的列我是得到了X的零空間只是想知道是否有任何方法來提高答案的精確度。
謝謝!

+0

是否有辦法將矩陣A轉換爲行梯形式?那麼它很簡單 – pyCthon

+0

@pyCthon不,我想要一個更直接的方法,這就是爲什麼而不是編碼整個事情,我使用了庫函數。 – user1673471

+0

我同意這是圖書館應該支持的東西,我已經搜索了API,並且我不知道如何計算null空間。我會聯繫開發人員,看看他們的建議,http://arma.sourceforge.net/contact.html – pyCthon

回答