Python: sympy 对 hyp2f1 的符号使用
Python: symbolic use of hyp2f1 with sympy
在Python中,我想使用超几何函数hyp2f1,同时至少保留一个符号参数。但是,有一个 TypeError
cannot create mpf from d
其中 d 是超几何函数的(最后一个)参数。
有人问过类似的问题
遇到同样的问题后,错误函数erf。
建议的解决方案是使用 mpmath 库而不是 sympy 库,但是在保持参数符号化的同时不能使用 mpmath。
我还尝试按照 sympy 文档中的建议将 mpmath 和 sympy 一起导入:
from sympy.mpmath import *
但这不被接受,因为输出是:
ModuleNotFoundError: No module named `sympy.mpmath'
我的密码是
from sympy import *
d = Symbol('d')
hyp2f1(1,1,1,d)
我希望得到 a simplification to 1/(1-d) 或者至少希望 Python 可以 'store' hyp2f1(1,1,1,d) 进行符号操作。
我收到一个错误
TypeError: cannot create mpf from d
最重要的是,导入 sympy 后,Python 无法将 hyp2f1 与符号参数一起使用。
使用 SymPy hyper
函数:
In [4]: from sympy import hyper, simplify, Symbol
In [5]: d = Symbol('d')
In [6]: f = hyper([1, 1], [1], d)
In [7]: f
Out[7]:
┌─ ⎛1, 1 │ ⎞
├─ ⎜ │ d⎟
2╵ 1 ⎝ 1 │ ⎠
In [8]: simplify(f)
Out[8]:
1
─────
1 - d
在Python中,我想使用超几何函数hyp2f1,同时至少保留一个符号参数。但是,有一个 TypeError
cannot create mpf from d
其中 d 是超几何函数的(最后一个)参数。
有人问过类似的问题
遇到同样的问题后,错误函数erf。 建议的解决方案是使用 mpmath 库而不是 sympy 库,但是在保持参数符号化的同时不能使用 mpmath。
我还尝试按照 sympy 文档中的建议将 mpmath 和 sympy 一起导入:
from sympy.mpmath import *
但这不被接受,因为输出是:
ModuleNotFoundError: No module named `sympy.mpmath'
我的密码是
from sympy import *
d = Symbol('d')
hyp2f1(1,1,1,d)
我希望得到 a simplification to 1/(1-d) 或者至少希望 Python 可以 'store' hyp2f1(1,1,1,d) 进行符号操作。
我收到一个错误
TypeError: cannot create mpf from d
最重要的是,导入 sympy 后,Python 无法将 hyp2f1 与符号参数一起使用。
使用 SymPy hyper
函数:
In [4]: from sympy import hyper, simplify, Symbol
In [5]: d = Symbol('d')
In [6]: f = hyper([1, 1], [1], d)
In [7]: f
Out[7]:
┌─ ⎛1, 1 │ ⎞
├─ ⎜ │ d⎟
2╵ 1 ⎝ 1 │ ⎠
In [8]: simplify(f)
Out[8]:
1
─────
1 - d