Python: Piecewise function integration error: "TypeError: cannot determine truth value of ..."
Python: Piecewise function integration error: "TypeError: cannot determine truth value of ..."
此代码运行正确:
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
我收到以下错误:
File "//anaconda/lib/python2.7/site-packages/sympy/core/relational.py", line > 103, in nonzero
raise TypeError("cannot determine truth value of\n%s" % self)
TypeError: cannot determine truth value of
ton <= t
据我了解,错误是由于ton
和t
都可以是正数和负数。这是正确的吗?如果我为 t
设置正积分限制,错误不会消失。如何计算给定分段函数的积分?
更新: 函数的更新版本,有效:
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
分段Class
您需要使用 sympy Piecewise class。
如评论中所建议:
Piecewise(((t - ton)/5, ton <= t), (0, True))
此代码运行正确:
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
我收到以下错误:
File "//anaconda/lib/python2.7/site-packages/sympy/core/relational.py", line > 103, in nonzero raise TypeError("cannot determine truth value of\n%s" % self)
TypeError: cannot determine truth value of ton <= t
据我了解,错误是由于ton
和t
都可以是正数和负数。这是正确的吗?如果我为 t
设置正积分限制,错误不会消失。如何计算给定分段函数的积分?
更新: 函数的更新版本,有效:
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
分段Class
您需要使用 sympy Piecewise class。
如评论中所建议:
Piecewise(((t - ton)/5, ton <= t), (0, True))