Интегральная внутренняя сумма дает ошибку метки индекса - PullRequest
1 голос
/ 01 апреля 2019

Вот кое-что, что я пробую на этой странице: http://tutorial.math.lamar.edu/Classes/DE/FourierSineSeries.aspx

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)

В последней строке вылетает сообщение о том, что:

TypeError: Idx object requires an integer label.

Объект Idx делаетоднако иметь явно установленную целочисленную метку.Кроме того, выражение как Sum(Bn*sin(n*pi*x/L),n) работает без проблем.

Проблематично ли то, что я помещаю интеграл в сумму?Или это просто небольшая синтаксическая проблема?

1 Ответ

1 голос
/ 01 апреля 2019

Проблема в том, что переменная n используется как объект Symbol и Idx. Следующий код не выдает ошибку. (Хотя я не уверен, служит ли это вашей цели)

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)
...