Sympy:我能得到一个内置函数的显式打印吗



我想做的基本上是让sympy告诉我它的一些内置函数背后的确切数学公式,因为我在命名约定方面一直很吃力,我想检查一下我是否使用了应该使用的函数。

例如,我的情况是内置贝塞尔函数jn:根据维基百科,j0(x(=sin(x(/x,我倾向于同意手工求解简单的情况微分方程
但是,当我询问sympy是否为jn(0, x)-sin(x)/x==0时,查询返回False
运行simplify只会占用时间,我不知道还能做什么,因为factorexpand最多将x移动为一个公约数,而evalf则以另一个内置函数的形式返回函数。

由于高阶函数往往比这复杂得多,所以找出哪些内置函数与我想要的相对应会非常有用
如果有任何可能有所帮助的资源链接,我将不胜感激。

使用python3.10.6,sympy 1.9,在Kubuntu 22.04 上运行

您可以使用内置的help()函数来读取与给定SymPy对象关联的文档,也可以浏览文档。

通过阅读help(jn)的文档,我们可以找到描述和一些示例,其中一个示例指出了您想要实现的目标:

print(expand_func(jn(0, x)))
# out: sin(x)/x

编辑:回顾您的问题,您使用了:jn(0, x)-sin(x)/x==0。SymPy有两种相等性测试:

  • 使用==运算符执行的结构等式:您要求SymPy比较表达式树。显然,jn(0, x)-sin(x)/x在结构上不同于0,因为在这个阶段jn(0, x)还不是";展开">
  • 数学等式:一般来说,如果expr1 - expr2等于0,那么两个表达式在数学上是等价的。因此,在上面的例子中,我们可以写:expand_func(jn(0, x)) - sin(x)/x,它将导致0。或者,我们可以使用equals()方法:expand_func(jn(0, x)).equals(sin(x) / x),它将返回True。请阅读有关equals的文档,以更好地了解其怪癖

相关内容

最新更新