У меня есть выражение из SymPy расчета:Как заменить float на рациональные выражения в выражении sympy?
sqrt(pi)*(0.333333333333333*a + 0.333333333333333*b - 2.66666666666667*c**2)
где а, Ь, с символами, и хотел бы разобрать его так, чтобы поплавки заменяются рациональными числами, как в
sqrt(pi)*(1/3*a + 1/3*b - 8/3*c**2)
Я знаю, как сделать один вручную,
In[24] Rational(str(0.333333333333333)).limit_denominator(1000)
Out[24]: 1/3
, но не знают, как идти о разборе атомов и выбрать только те, которые являются поплавками, и substituti ng назад приближение рационального числа.
Каков самый умный способ выполнения этих замещений в выражении?
Спасибо, прошу прощения, намного проще. Я принял ваш ответ. – acortis