【问题标题】:How to get the sum of row on sympy matrix?如何获得 sympy 矩阵上的行总和?
【发布时间】:2017-05-20 08:40:21
【问题描述】:

我想为此获得至少一种解决方案:

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?

【问题讨论】:

    标签: matrix sum sympy equation equation-solving


    【解决方案1】:

    要获得矩阵中每一行的总和,请将其乘以全为 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 2019-10-23
      • 1970-01-01
      相关资源
      最近更新 更多