Вычисление интеграла Римана-Лиувилля с использованием Sympy - PullRequest
0 голосов
/ 21 марта 2020

плохо знаком с исчислением и не уверен, к чему это приведет ...

Я пытаюсь вычислить интерпретацию интеграла Римана-Лиувилля в Python, используя sympy. Однако полученный интеграл при запуске моего кода между 0 и T содержит T как переменную, которую я не хочу. Что я должен сделать, чтобы это исправить?

Код:

def integral(f, order):
    gamma_recip = 1/gamma(order)
    T = sympy.Symbol('T')
    r = sympy.Symbol('r')
    eq = (T-r) ** order - 1
    function_eq = eq * f(r)
    integral = sympy.integrate(function_eq, (r, 0, T))
    return integral

Уравнение:

enter image description here

Пример вызова согласно запросу: -0.333333333333333*T**3 + 0.0833333333333333*T**4.0

Используемая функция и порядок:

def f(x):
    return x**2
print(integral(f, 1.0))

Ожидаемый результат:

r**3/3

1 Ответ

2 голосов
/ 21 марта 2020

Два вопроса:

  1. вы используете «T» в качестве интегрального предела, так что в итоге вы получите это; если вы хотите, чтобы в результате было «r», поменяйте местами T и r в своей функции
  2. , в которой вы не ставили скобки вокруг order - 1 в своем определении eq; если вы это сделаете, вы получите (с вашим текущим кодом) ожидаемое T**3/3
...