【发布时间】:2019-10-07 02:15:04
【问题描述】:
在 Python 中,我想使用超几何函数 hyp2f1,同时至少保留一个符号参数。但是,有一个 TypeError
无法从 d 创建 mpf
其中 d 是超几何函数的(最后一个)参数。
有人问过类似的问题
sympy and mpmath give "TypeError: cannot create mpf" when using the erf() function within solveset()
在遇到与错误函数erf相同的问题后。 建议的解决方案是使用 mpmath 库而不是 sympy 库,但在保持参数符号化时不能使用 mpmath。
我还尝试按照 sympy 文档中的建议将 mpmath 和 sympy 一起导入:
from sympy.mpmath import *
但这不被接受,因为输出是:
ModuleNotFoundError: 没有名为 `sympy.mpmath' 的模块
我的代码是
from sympy import *
d = Symbol('d')
hyp2f1(1,1,1,d)
我希望得到 a simplification to 1/(1-d) 或者至少希望 Python 可以“存储”hyp2f1(1,1,1,d) 以进行符号操作。
我收到一个错误
TypeError: cannot create mpf from d
底线是,导入 sympy 后,Python 不能将 hyp2f1 与符号参数一起使用。
【问题讨论】:
-
您链接到 0.7.6 文档。当前的 sympy 版本是 1.4。 docs.sympy.org/latest/install.html#mpmath
-
mpmath不是一个符号数学包,不管有没有sympy。并且在 0.7.6 天内没有恢复。 -
stackoverflow.com/questions/37759214/… 中的解决方案是使用
sympy.erf而不是mpmath.erf。
标签: python function sympy mpmath