0

由于我希望简化平方根,因此我遇到了这种解决方法:

from sympy import sqrt, factor, simplify

_sqrt = sqrt
sqrt = lambda x: factor(simplify(_sqrt(x)))

# do maths operations with sqrt...

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

4

1 回答 1

0

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

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

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

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

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

>>> from sympy.core.function import _mexpand as flat
>>> flat(eq)
3
于 2021-04-19T21:45:31.633 回答