简体   繁体   English

以任意精度浮点计算sympy函数

[英]evaluating a sympy function at an arbitrary-precision floating point

Given a sympy symbolic function, for example 例如,给出了一个同情的象征性功能

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

when one calls 当一个人打电话

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

sympy returns a floating point number. sympy返回一个浮点数。 The return value is not an mpf. 返回值不是mpf。

Is there a convenient way to get sympy to evaluate symbolic standard functions (like exponential and trig functions), using arbitrary precision? 是否有一种方便的方法来使用任意精度来评估符号标准函数(如指数函数和三角函数)?

To evaluate an expression, use expr.evalf() , which takes a precision as the first argument (the default is 15). 要计算表达式,请使用expr.evalf() ,它将精度作为第一个参数(默认值为15)。 You can substitute expressions using expr.evalf(prec, subs=subs_dict) . 您可以使用expr.evalf(prec, subs=subs_dict)替换表达式。

>>> sin(x).evalf(50, subs={x: Float('1.0')})
0.84147098480789650665250232163029899962256306079837

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM