不知道问这个问题最好的地方在哪里。我正在尝试集成SymPy数组,但如果
sympy.integrate(x, (x, 0, 1))返回
1/2不出所料,
sympy.integrate(sympy.Array([x]), (x, 0, 1))返回
1这是相当麻烦的。有什么提示吗?非常感谢!
发布于 2020-06-04 14:00:52
我假设Array对微积分运算有点挑剔,因为它似乎继承了张量。你将不得不做一些挖掘来找出原因。然而,Matrix类往往做得更好一些。当我做一点向量微积分时,我发现使用Matrix很有帮助。
对于您的问题,我们有:
from sympy import *
x = symbols('x')
print(integrate(Matrix([[x]]), (x, 0, 1)))它会按照预期产生:
Matrix([[1/2]])它也适用于更大的矩阵:
from sympy import *
x = symbols('x')
A = Matrix([[x],
[x+1],
[x**2]]) # column vector
print(integrate(A, x))
B = Matrix([[1, x, x**2],
[-x, 2, 0],
[sin(x), cos(x), tan(x)]])
print(integrate(B, x))制作:
Matrix([[x**2/2], [x**2/2 + x], [x**3/3]])
Matrix([[x, x**2/2, x**3/3], [-x**2/2, 2*x, 0], [-cos(x), sin(x), -log(cos(x))]])如果你真的需要积分张量,那么这个数学远远超出了我的范围,但看起来你至少可以用differentiate them。
https://stackoverflow.com/questions/61700075
复制相似问题