使用python 3.5对sympy 1.0中的矩阵条目求和

时间:2016-06-08 14:35:52

标签: python matrix sympy

我刚刚发现了Sympy,所以我仍然不太确定如何最好地使用它。 我有一个等式

Image

X为20x5矩阵,Y为20x1矩阵/ Vektor,beta为5x1矩阵/ Vektor

然而,我知道的符号只允许我使用i作为变量,而不是作为矩阵中的位置。代码:

 from sympy import exp, init_printing, sqrt, sin, tan, cos, diff, Sum, Matrix, log, symbols, MatrixSymbol
 init_printing()
 X = MatrixSymbol('X',20,5)
 Y = MatrixSymbol('Y',20,1)
 beta = MatrixSymbol('beta',5,1)
 expr = Sum((Y[i]*exp((Matrix(X[i,:])*Matrix(beta))[0,0])),(i,1,20))

这会引发以下错误:

 IndexError: Single index only supported for non-symbolic indices.
谷歌搜索它并没有真正让我到目前为止,因为谷歌似乎总是想谈论numpy而不是同情。 另外,我猜这是非常基本的,所以请分享你的智慧;)

1 个答案:

答案 0 :(得分:3)

使用>>> 2 / 1 2.0 >>> 2 // 1 2

IndexedBase

还要注意SymPy以数学方式解释函数。也就是说,矩阵的指数不是其分量的指数,而是指数的泰勒展开收敛的矩阵。它只对方形矩阵有意义。