gpt4 book ai didi

python - 使用 python 3.5 对 sympy 1.0 中的矩阵项求和

转载 作者:行者123 更新时间:2023-11-30 22:54:37 26 4
gpt4 key购买 nike

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

Image

X 是 20x5 矩阵,Y 是 20x1 矩阵/向量,beta 是 5x1 矩阵/向量

但是我知道的符号只允许我使用 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 而不是 sympy。另外,我猜这都是非常基本的,所以请分享你的智慧;)

最佳答案

使用IndexedBase:

In [1]: X = IndexedBase("X")

In [2]: Y = IndexedBase("Y")

In [4]: beta = IndexedBase("beta")

In [5]: expr = Sum(Y[i]*exp(Sum(X[i, j]*beta[j], (j, 1, 5))), (i, 1, 20))

In [7]: pprint(expr)
20
_____
\ `
\ 5
\ __
\ \ `
) ) beta[j]*X[i, j]
/ /_,
/ j = 1
/ e *Y[i]
/____,
i = 1

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

关于python - 使用 python 3.5 对 sympy 1.0 中的矩阵项求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37705571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com