【问题标题】:How to create vector of symbolic variables in sympy如何在 sympy 中创建符号变量的向量
【发布时间】:2017-01-30 09:40:35
【问题描述】:

如何在 sympy 中创建符号变量向量?我想做类似的事情

x, x1, x2, x3 = symbols ('x x1 x2 x3')
A = [x+x1,x+x2,x+x3]
B = A * Transpose(A)
print (B)

A 是符号变量数组。 我检查了 sympy documentation,但无法弄清楚。

(Python 2.7.6,sympy 0.7.4.1)

更新:

我想做类似的事情

x, x1, x2, x3 = symbols ('x x1 x2 x3')
v1e = x+x1
v2e = x+x2
v3e = x+x3
v1 = v1e.subs(x1,1)
v2 = v2e.subs(x2,2)
v3 = v3e.subs(x3,3)
A = Matrix ([v1,v2,v3])
B = A * Transpose(A)
print (B)

但似乎v1,.. 将其作为矩阵元素存在问题。有什么建议吗?

【问题讨论】:

  • 您能否澄清一下,“v1,...putting 作为矩阵元素的问题”到底是什么意思? (请注意,目前存在语法错误:A = Matrix ([v1,v2,v3]]) 中的不平衡方括号应为A = Matrix ([[v1,v2,v3]])
  • @IlyaV.Schurov 抱歉,出现错误。更新了问题。
  • 再次,您能否澄清一下,“v1 的问题,...作为矩阵元素”下的确切含义是什么?你有什么样的错误信息?另外,请注意,您必须使用双方括号:A = Matrix ([[v1,v2,v3]])
  • 您的代码现在可以正常工作。就目前而言,它提供了外部产品。如果您希望内积使用@IlyaV.Schurov 建议的双括号(这将创建行向量而不是列向量),或使用Transpose(A)*A

标签: python sympy


【解决方案1】:

向量可以在 sympy 中表示为Matrixes,表示为列向量或行向量。

from sympy import symbols, Matrix, Transpose
x, x1, x2, x3 = symbols('x x1 x2 x3')
A = Matrix([[x+x1, x+x2, x+x3]])
B = A * Transpose(A)
# or B = A * A.T
print (B)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多