代码之家  ›  专栏  ›  技术社区  ›  gboffi

我怎样才能告诉sympy l是有界的(0<l<)

  •  1
  • gboffi  · 技术社区  · 8 年前

    有时sympy会给我其他的答案,这取决于对函数参数的假设,例如

    integrate(sin(pi*x/L), (x, 0, L))
    
    ⎧         π    
    ⎪ 0   for ─ = 0
    ⎪         L    
    ⎨              
    ⎪2⋅L           
    ⎪───  otherwise
    ⎩ π            
    

    我知道价值 L 是积极的,有限的,所以第一个答案与我无关…我怎么能告诉辛菲 π/L 严格大于零,或者如我在标题中所说, L 有界吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   user6655984    8 年前

    符号可以表示无穷大( oo , -oo , zoo )还有。有一些运算是可能的。当l为无穷大时,pi/l为零,所以我们得到0的积分,也就是零。从这个意义上说,辛菲的回答是正确的。如果L是有限的,用

    L = symbols("L", finite=True)
    

    足够得到 2*L/pi 作为答案。

    或者你可以保持原样,告诉sympy不要担心 conds="none" 集成的参数。

    integrate(sin(pi*x/L), (x, 0, L), conds="none")   # 2*L/pi
    

    旁白: real=True 不排除我成为 面向对象 或 面向对象 ,因为这些被认为是真实的: oo.is_real 是真的(这是一个有争议的共同发展点)。

    推荐文章