如何在sympy矩阵中获取行的和?

3

我希望至少得到一个解决方案,用于以下问题:

row_sum(Y) = x.t + row_sum(B)

其中Y和B是矩阵(n, m),x是向量(n)。 我已知B和row_sum(Y),但不知道x。 我想要获取某个t值的Y和x。 Y随t线性变化,但x是恒定向量。

我该如何创建一个方程,将Y和B的行求和同时得到x和Y?

1个回答

5
要得到矩阵每行的总和,可以将其乘以一个全为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)}]。答案不唯一,因为只有三个未知数t、x_0、x_1,但只有两个等式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接