Python 积分内和给出索引标签错误

Python 积分内和给出索引标签错误,python,typeerror,sympy,Python,Typeerror,Sympy,基于此页面,我正在尝试以下内容: 它在最后一行崩溃,声明: TypeError:Idx对象需要整数标签。 但是,Idx对象确实有一个显式设置的整数标签。此外,作为Sum(Bn*sin(n*pi*x/L),n)的表达式可以正常工作 我把积分放在和里面这个事实有问题吗?或者它只是一个小的语法问题?这个问题是因为变量n同时用作符号和Idx对象。以下代码不会引发错误。(虽然我不确定这是否符合你的目的) 我没有使用sympy,但这可能是因为n同时代表符号和Idx对象吗n=Symbol('n',integ

基于此页面,我正在尝试以下内容:

它在最后一行崩溃,声明:

TypeError:Idx对象需要整数标签。
但是,Idx对象确实有一个显式设置的整数标签。此外,作为
Sum(Bn*sin(n*pi*x/L),n)
的表达式可以正常工作


我把积分放在和里面这个事实有问题吗?或者它只是一个小的语法问题?

这个问题是因为变量
n
同时用作
符号和
Idx
对象。以下代码不会引发错误。(虽然我不确定这是否符合你的目的)


我没有使用sympy,但这可能是因为
n
同时代表
符号
Idx
对象吗
n=Symbol('n',integer=True)
n=Idx(n,(0,oo))
事实上,我已经意识到被积函数需要符号而不是Idx对象。结果表达式没有得到充分简化。原始链接显示,总和的结果应该是$B_m L$。我有什么办法可以得到它吗?因为目标是能够象征性地计算出$B_m$。例如
Sum(Bn*integrate(expr*sin(n*pi*x/L),(x,-L,L)),(n,0,10))。subs(m,4)。doit()
将返回一个简化的和。我还没有找到解决方案。只是一个简单的问题:这对解决您的问题有用吗?这种方法背后的思想是提供一个函数
f(x)
,然后得到一个傅里叶展开式。我想要的是傅里叶系数($B_n$)的通用表示,因为我已经有了傅里叶展开,但不知道它的函数来源…@user32882 ohh。。。。我仍然不知道如何简化这个。我试着简化,但也没用
from sympy import *
f = Function('f')
B = IndexedBase('B')
x, L = symbols('x L', real=True)
n = Symbol('n', integer=True)
n = Idx(n, (0, oo))
Bn = Indexed('B', n)
m = Symbol('m', integer=True)
expr = sin(m*pi*x/L)
lhs = integrate(f(x)*expr, (x,-L,L))
rhs = Sum(Bn*integrate(expr*sin(n*pi*x/L), (x,-L,L)), n)
from sympy import *
f = Function('f')
B = IndexedBase('B')
x, L = symbols('x L', real=True)
n = Symbol('n', integer=True)
n_index = Idx(n, (0, oo))
Bn = Indexed('B', n)
m = Symbol('m', integer=True)
expr = sin(m*pi*x/L)
lhs = integrate(f(x)*expr, (x,-L,L))
rhs = Sum(Bn*integrate(expr*sin(n*pi*x/L), (x,-L,L)), n_index)