Как интегрироваться без ограничений в SymPy?

Мне дают p(x) = 2ax^2 - b и дважды просят интегрировать его, но мне не дают ограничений. Однако, когда я просто использую integrate, мне не дается константа интегрирования, которая имеет решающее значение для следующего шага.

Поскольку у меня нет ограничений, использование scipy.integrate.dblquad не сработало. Вместо этого я импортирую integrate из SymPy и выполняю два отдельных интеграла. Вот что у меня есть:

from sympy import integrate

x = Symbol('x')
a = 240
b = 160

f = 2*a*x**2 - b

g = integrate(f) 

h = integrate(g)

Что я хочу получить:

g = 160*x**3 - 80*x**2 + C
h = 40*x**4 - 80*x**2 + Cx + c

где C и c — константы интегрирования. Мой код в настоящее время создает уравнения без констант.


person aam    schedule 04.02.2019    source источник
comment
Вы можете просто добавить константы, такие как c = Symbol('c') и integrate(f) + c.   -  person Willem Van Onsem    schedule 05.02.2019
comment
Что Симпи дает тебе? что говорит документация?   -  person esoterik    schedule 05.02.2019


Ответы (1)


Из документов:

Обратите внимание, что SymPy не включает константу интегрирования. Если вы хотите, вы можете добавить ее самостоятельно или перефразировать свою задачу как дифференциальное уравнение и использовать для ее решения dsolve, что добавляет константу (см. Решение дифференциальных уравнений).

Кажется, они освещали это в документации. Нужно добавить константу самостоятельно или переформулировать вопрос и задать другой решатель!

person esoterik    schedule 04.02.2019