【发布时间】: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。