使用Sympy计算Riemann-Liouville积分

问题描述 投票:0回答:1

微积分的新手,不确定该去哪里...

我正在尝试使用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

等式:

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

python sympy q calculus
1个回答
2
投票

两个问题:

  1. 您将“ T”用作积分极限,因此您将最终得到结果;如果要在结果中使用“ r”,请在函数中交换使用T和r
  2. 您在order - 1的定义中没有在eq上加上括号;如果这样做,您将(使用您当前的代码)获得预期的T**3/3
© www.soinside.com 2019 - 2024. All rights reserved.