此代码:
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)
发布于 2016-05-26 19:40:41
SymPy自动将有理数的有理幂规范化为具有正指数和约化幂的形式。因为这是自动发生的,所以在任何表达式中出现的每个这样的数字都会发生这种情况,这意味着没有办法使sqrt(2)/2
在1/sqrt(2)
中得到结果。
发布于 2016-05-24 14:46:40
所以看起来sqrt(2)/2比1/sqrt(2)简单。
谢谢三明治。
实际上,示例中的大部分代码都是多余的。我担心这些符号的定义和计算方法可能是相关的。
https://stackoverflow.com/questions/37378902
复制相似问题