使用 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
两期:
- 您正在使用 "T" 作为积分限制,因此您将在结果中得到它;如果你想在结果中使用 "r",请在你的函数中交换 T 和 r 的使用
- 你在
eq
的定义中没有在 order - 1
两边加上括号;如果这样做,您将(使用当前代码)获得预期的 T**3/3
微积分新手,不确定这是怎么回事...
我正在尝试使用 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
两期:
- 您正在使用 "T" 作为积分限制,因此您将在结果中得到它;如果你想在结果中使用 "r",请在你的函数中交换 T 和 r 的使用
- 你在
eq
的定义中没有在order - 1
两边加上括号;如果这样做,您将(使用当前代码)获得预期的T**3/3