我有一个来自同情计算的表达式:
sqrt(pi)*(0.333333333333333*a + 0.333333333333333*b - 2.66666666666667*c**2)
Run Code Online (Sandbox Code Playgroud)
其中a,b,c是符号,并且想要解析它以便浮点数被替换为像in中的有理数
sqrt(pi)*(1/3*a + 1/3*b - 8/3*c**2)
Run Code Online (Sandbox Code Playgroud)
我知道如何手工完成,
In[24] Rational(str(0.333333333333333)).limit_denominator(1000)
Out[24]: 1/3
Run Code Online (Sandbox Code Playgroud)
但是我不太清楚如何解析原子并只挑选那些浮子,然后用有理数近似代替.
在表达式中进行这些替换的最明智的方法是什么?
用途nsimplify:
>>> print(nsimplify(sqrt(pi)*(0.333333333333333*a + 0.333333333333333*b - 2.66666666666667*c**2)))
sqrt(pi)*(a/3 + b/3 - 8*c**2/3)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1557 次 |
| 最近记录: |