Sympy не может интегрировать произведение кусочно-непрерывной функции и сложной функции через разрыв

If I do:

from sympy import *
x, L = symbols('x L', real=True)
f = Piecewise((1, x<=0), (-1, x<1), (0, True))
g = exp(-x * 1j)
integrate(f * g, (x, 0, L)) 

Я получил:

Piecewise((1.0*I*exp(-1.0*I*L) - 1.0*I, L <= 0), (-1.0*I*exp(-1.0*I*L) + 1.0*I, L < 1), (-1.0*I*exp(-1.0*I) + 1.0*I, True))

Но если я изменю последнюю строку на:

integrate(f*g, (x, L/2, L)) 

Я получил:

Integral(Piecewise((exp(-1.0*I*x), x <= 0), (-exp(-1.0*I*x), x < 1), (0, True)), (x, L/2, L))

Любое понимание будет оценено!


person user3304293    schedule 23.02.2014    source источник


Ответы (1)


Я думаю, что это еще не реализовано. Вероятно, он не знает, как поступить в случае, когда оба предела являются символическими. Вы должны сообщить об этом.

Обходной путь — integrate(f*g, (x, 0, L)) - integrate(f*g, (x, 0, L/2)).

person asmeurer    schedule 24.02.2014
comment
Спасибо за ответ на мой вопрос. Я сообщу об этом. И да, это обходной путь, который я использую. Вы также правы в том, что сбой происходит только тогда, когда я использую символические ограничения. - person user3304293; 24.02.2014