sympy平方根:对有理数进行运算的最佳方法?

问题描述

因为我想简化平方根,所以我遇到了这个解决方法

${user.Url}

但是它太慢了,我认为这不是最合适的方法 那么有没有其他方法可以处理平方根并简化它们 - 自动 -

解决方法

SymPy 自动将有理参数简化为 sqrt,但可以以不明确有理的方式编写有理数(如您之前的帖子所述):

>>> eq
sqrt((-9/10 + 6*sqrt(3)/5)**2 + (6/5 + 9*sqrt(3)/10)**2)

sqrt 只会简化显式的 Rational 参数。论证基础的扩展表明它是一个 Rational,sqrt 将简化它:

>>> eq.base.expand()
9
>>> sqrt(9) == 3
True

在需要展平涉及幂的表达式的情况下,比 expand 更好的是 _mexpand 函数:

>>> from sympy.core.function import _mexpand as flat
>>> flat(eq)
3