代わりのdef
を経由して区分関数を定義し、内蔵のpiecewise classを使用します。
f = Piecewise([[(-infinity, 0), 3*x+3],[(0, infinity), -3*x+3]])
f.integral()
出力:
Piecewise defined function with 2 parts, [[(-Infinity, 0), x |--> 3/2*x^2 + 3*x], [(0, +Infinity), x |--> -3/2*x^2 + 3*x]]
区分関数は、.plot()
など、独自のメソッドを持っています。しかし、プロットは無限の間隔をサポートしていません。プロットは有限の間隔で得ることができます。
f = Piecewise([[(-5, 0), 3*x+3],[(0, 5), -3*x+3]])
g = f.integral()
g.plot()
gからg(0)を減算したい場合もあります。これはg-g(0)ほど単純ではありませんが、それほど悪くはありません。g.list()
でピースのリストを取得し、各関数からg(0)を減算して再結合します。
g0 = Piecewise([(piece[0], piece[1] - g(0)) for piece in g.list()])
g0.plot()
そしてそこに、あなたはそれを持っている:
このアプローチを拡張することによって、私たちも、最初からFに有限の間隔を置く必要はありません。次のプロットG - G(0)、B]は、ドメイン変更することにより、所定の間隔で:区分クラスを使用することに加えて
a = -2
b = 3
g0 = Piecewise([((max(piece[0][0], a), min(piece[0][1], b)), piece[1] - g(0)) for piece in g.list()])
g.plot()
私はPiecewiseクラスを調べました。正直なところ、これは役に立たないもののようです。式の機能を拡張するものではないので、定数を追加するか、別の式の一部として使うなどの基本的なことはできません。その結果、私はg(0)を引く必要があるので、定積分をプロットする私の本来の目標を達成することはできません。 –
ここで、定数を減算する方法を説明しました。 –
結論は次のとおりです。クラスは開発が遅れていますが、Pythonのリストレベルにドロップして戻ってくることで、それ以上のことができます。 –