使用 Sympy 计算 Riemann-Liouville 积分

Computing Riemann-Liouville Integral using Sympy

微积分新手,不确定这是怎么回事...

我正在尝试使用 sympy 计算 Python 中积分的 Riemann-Liouville 解释。但是,当 运行 我在 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

方程式:

请求的示例调用: -0.333333333333333*T**3 + 0.0833333333333333*T**4.0

使用的函数和顺序:

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

预期结果:

r**3/3

两期:

  1. 您正在使用 "T" 作为积分限制,因此您将在结果中得到它;如果你想在结果中使用 "r",请在你的函数中交换 T 和 r 的使用
  2. 你在 eq 的定义中没有在 order - 1 两边加上括号;如果这样做,您将(使用当前代码)获得预期的 T**3/3