如何获得 sympy 以简化包含 sqrt(2)/2 的表达式? [英] How do I get sympy to simplify an expression containing sqrt(2)/2?

查看:24
本文介绍了如何获得 sympy 以简化包含 sqrt(2)/2 的表达式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码:

from sympy import *
x = Symbol('x', positive=True)
vp = Symbol('vp', positive=True)
num = integrate( (vp*sin(x))**2, (x, 0, 2*pi))
den = integrate(      1        , (x, 0, 2*pi))
print " num =",num
print " den =",den
vrms = sqrt(num/den)
print "vrms =",vrms
print "simplified vrms = ",simplify(vrms)

返回:

 num = pi*vp**2
 den = 2*pi
vrms = sqrt(2)*vp/2
simplified vrms =  sqrt(2)*vp/2

我怎样才能让它迈出最后一步?我希望它返回这个:

How can I get it to take the last step? I'd like it return this:

vrms = vp/sqrt(2)

推荐答案

SymPy 自动将有理数的有理幂规范化为具有正指数和缩减幂的形式.因为这是自动发生的,它会随着出现在任何表达式中的每个这样的数字而发生,这意味着无法使 sqrt(2)/2 结果为 1/sqrt(2).

SymPy automatically canonicalizes rational power of rational numbers to a form with positive exponents and reduced powers. Because this happens automatically, it will happen with every such number that appears in any expression, meaning there is no way to make sqrt(2)/2 result in 1/sqrt(2).

这篇关于如何获得 sympy 以简化包含 sqrt(2)/2 的表达式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆