2013-08-01 26 views
0

的列表的組合向量說我有向量的列表的Python:表示爲矢量

VectorList = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] 

和說我有X

x = [0,3,0,1] 

則x可以在這種情況下被寫入的載體作爲其它載體的線性組合:

[0,3,0,1] = a*[1,0,0,0] + b*[0,1,0,0] + c*[0,0,1,0] + d*[0,0,0,1] 

其中a = 0,b = 3,C = 0和d = 1

在Python中是否有一種通用的方法來檢查IF如果一個向量可以寫成一個向量列表的線性組合並找到它的標量倍數? 我是一名Python初學者,我可以直觀地做到這一點......但是如何在Python中解決這個問題?我已經在這個問題上工作了很多小時

請記住,載體列表可能並不總是如此清晰。

回答

1

所以你想解決一個線性方程組?我建議看看 numpy.matrix numpy linalg。 Numpy有很多有用的數學材料:)。

編輯:

它看起來像你想要的功能是numpy.linalg.solve(a,b)(其中b是在你的情況下,x),這將引發LinAlgError如果沒有辦法可以解決。

+1

'numpy.matrix'?餿主意;起初很方便,但奇怪的索引行爲和與ndarrays的不一致使他們感到困惑。 – user2357112

+0

感謝您的提示,我從來沒有用過它。會罷工:)。 – Troy