我刚刚发现了Sympy,所以我仍然不太确定如何最好地使用它。 我有一个等式
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而不是同情。
另外,我猜这是非常基本的,所以请分享你的智慧;)
答案 0 :(得分:3)
使用>>> 2 / 1
2.0
>>> 2 // 1
2
:
IndexedBase
还要注意SymPy以数学方式解释函数。也就是说,矩阵的指数不是其分量的指数,而是指数的泰勒展开收敛的矩阵。它只对方形矩阵有意义。