矩阵与多变量条目的 SymPy 集成

SymPy integration of Matrix with multivariable entries

我正在使用 Sympy 来集成一个 Sympy 矩阵,其组件取决于变量 (x,y)。对单个变量 x(或 y)进行积分,returns 预期的矩阵,其分量是原始向量分量的积分。

import sympy as sp
from sympy.abc import x,y

V = sp.Matrix(4,1,[1,x,y,x*y])
display(V)

# This works
I = sp.integrate(V,(x,0,1))
display(I)

最终,我想要一个二重积分。我可以用以下方法完成这个

Ix = sp.integrate(V,(x,0,1))
I = sp.integrate(Ix,(y,0,1))
display(I)

我的问题是为什么以下内容似乎不起作用。

I = sp.integrate(V,(x,0,1),(y,0,1))

我得到的错误是:

     ValueError: Invalid limits given: (((x, 0, 1), (y, 0, 1)),)

这是一个错误吗?还是我对 Matrix 类型的二重积分使用了错误的语法?此语法适用于 Matrix 的组件,即

# This works
I3 = sp.integrate(V[3,0],(x,0,1),(y,0,1))

感谢您确认这是 SymPy 中的错误。这现在已在 SymPy 中修复。参见 https://github.com/sympy/sympy/pull/23277

另一个建议 - 使用

I = V.integrate((x,0,1),(y,0,1))

甚至可能是更好的解决方案。