python-Sympy不会简化自然平方数的平方根

进入时

sympy.simplify(sympy.sqrt(3)/3)

它返回:sqrt(3)/ 3而不是1 / sqrt(3)
如何获得简化的表达方式?
特别是对于较大的数字将非常有用.

sympy.simplify(3/sympy.sqrt(3))

起作用,所以我认为优先考虑从分母中删除根吗?我该如何改变?

解决方法:

由于sympy使用象征性的东西,因此它作为输出格式打印为sqrt(3)/ 3.在内部,sqrt(3)/ 3与1 / sqrt(3)相同.因此,在计算上并没有真正的区别.

如果要将其翻转显示,可以尝试对顶部和底部进行平方,将其表示为分子和分母,然后分别对它们平方根,如下所示:

def stringify(frac):
    if frac<0:
        sign_str = "-"
    else:
        sign_str = ""
    frac = frac ** 2
    numer, denom = frac.as_numer_denom()
    return sign_str + str(sympy.sqrt(numer)) + "/" + str(sympy.sqrt(denom))

Try it Online!

上一篇:Adam:一种随机优化方法


下一篇:python – 在lambdify’d sympy表达式上使用numba.autojit