2

このコードは正しく実行されます:

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"、行 > 103、ゼロ以外で TypeError("\n%s の真値を判別できません" % self)

TypeError: 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
4

1 に答える 1

2

区分クラス

sympy Piecewiseクラスを使用する必要があります。

コメントで提案されているように:

Piecewise(((t - ton)/5, ton <= t), (0, True))
于 2016-03-13T15:01:13.487 に答える