在任意精度浮点上评估 sympy 函数

evaluating a sympy function at an arbitrary-precision floating point

给定一个sympy符号函数,例如

x=symbols("x")
h=sin(x) 

当有人打电话时

h.subs(x, mpf('1.0000000000000000000000000000000000000000000001')) 

sympy returns 一个浮点数。 return 值不是 mpf。

是否有方便的方法让 sympy 使用任意精度计算符号标准函数(如指数函数和三角函数)?

要计算表达式,请使用 expr.evalf(),它将精度作为第一个参数(默认值为 15)。您可以使用 expr.evalf(prec, subs=subs_dict).

替换表达式
>>> sin(x).evalf(50, subs={x: Float('1.0')})
0.84147098480789650665250232163029899962256306079837