此代码:
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
如何让它采取最后一步?我希望它能归还:
vrms = vp/sqrt(2)
答案 0 :(得分:2)
SymPy自动将有理数的理性力量规范化为具有正指数和降低权力的形式。因为这会自动发生,所以任何表达式中出现的每个数字都会发生这种情况,这意味着无法在sqrt(2)/2
中生成1/sqrt(2)
个结果。
答案 1 :(得分:0)
所以看起来sqrt(2)/ 2 比1 / sqrt(2)更简单。
谢谢你,三明治。
实际上,该示例中的大部分代码都是多余的。我担心如何定义和计算符号可能是相关的。