2017-05-20 53 views
2

我想獲得的至少一種溶液用於一個噸此:如何獲得sympy矩陣上的行的總和?

row_sum(Y)= XT + row_sum(B)

Y和B是矩陣(N,M)和XA矢量( N)。 我知道B,我知道row_sum(Y)但不是x。 我想獲得Y和X的一些t值。 Y與t呈線性變化,但x是常量向量。

我怎麼能創建一個與Y和B上的行的總和得到相同的時間x和Y的方程?

回答

2

要獲得矩陣中每一行的總和,請將其乘以所有1的列向量。通常,如果Z是矩陣,則

Z * ones(Z.shape[1], 1) 

返回這樣的總和。

下面是這樣的操作的一個完整的例子,使用你的例子的符號。

from sympy import * 
t = symbols('t') 
Y = Matrix([[1+4*t, 2-t], [3-5*t, 4+t]]) 
x = symarray('x', (2,)) 
B = Matrix([[5, 4], [3, 2]]) 
solve(Y*ones(2, 1) - x*t - B*ones(2, 1)) 

輸出是[{x_0: -3*x_1 - 9, t: 2/(x_1 + 4)}]。答案並不是唯一的,因爲只有2個方程有三個未知數t,x_0,x_1。