Python:分段函数集成错误:“TypeError:无法确定......的真值”

时间:2016-03-13 14:24:14

标签: python sympy integrate piecewise

此代码正确运行:

import sympy as sp

def xon (ton, t):
    return (t-ton)/5

xonInt = sp.integrate (xon(ton, t),t)

print xonInt

但是当函数变成分段时,例如:

import sympy as sp

def xon (ton, t):
    if ton <= t:
        return (t-ton)/5
    else:
        return 0

xonInt = sp.integrate (xon(ton, t),t)

print xonInt

我收到以下错误:

  

文件“//anaconda/lib/python2.7/site-packages/sympy/core/relational.py”,行&gt; 103,在非零       提出TypeError(“无法确定\ n%s的真值”%self)

     

TypeError:无法确定真值   吨&lt; = t

据我了解,错误是由于tont都可以是正面和负面的。这是对的吗?如果我为t设置了正积分限制,则错误不会消失。如何计算给定分段函数的积分?

UPDATE:该功能的更新版本,有效:

import sympy as sp

t = sp.symbols('t')   
ton = sp.symbols('ton')
xon = sp.Piecewise((((t-ton)/5), t <= ton), (0, True))

xonInt = sp.integrate (xon,t)
print xonInt

1 个答案:

答案 0 :(得分:2)

分段类

您需要使用sympy Piecewise class

正如评论中所建议的那样:

Piecewise(((t - ton)/5, ton <= t), (0, True))