我正在使用SymPy函数integral_steps
构建一个工具,就像SymPy Gamma一样,当您要求它集成功能时,它会显示集成步骤。我的工作正在进行中,可以在https://lem.ma/1YH上找到。
我不太清楚是如何获得应用特定规则的结果。例如,考虑替换规则
URule(u_var=_u, u_func=sin(x), constant=1, substep=ExpRule(base=E, exp=_u, context=exp(_u), symbol=_u), context=exp(sin(x))*cos(x), symbol=x)
context
字段表明正在集成的函数为exp(sin(x))* cos(x),并且该规则使用特定的替换-但是集成的结果是什么,因此我可以向用户以SymPy Gamma的相同方式进行操作。我目前要做的是在每个步骤都调用integrate
,但这似乎效率很低。
也许有一种选择可以传递给积分步骤以使该信息可用?
答案 0 :(得分:0)
SymPy Gamma作为SymPy本身是开源的。看一下其模块intsteps,我看到类似
的行self.append("So, the result is: {}".format(
self.format_math(_manualintegrate(rule))))
因此,从规则中获取规则结果的方法是调用_manualintegrate(rule)
,它需要作为
from sympy.integrals.manualintegrate import _manualintegrate
我认为阅读intsteps.py
的其余部分也会很有用。