私はかなり大きな数(約1000)のステップ関数を持ち、それぞれに2つの間隔しかありません。私はそれらを合計し、最大値を見つけることを望みます。これを行う最善の方法は何ですか?次のように私はコードで、sympyを試してみた:ステップ関数の合計を評価する
from sympy import Piecewise, piecewise_fold, evalf
from sympy.abc import x
from sympy.plotting import *
import numpy as np
S = 20
t = np.random.random(20)
sum_piecewise = None
for s in range(S):
p = Piecewise((np.random.random(), x<t[s]), (np.random.random(), x>=t[s]))
if not sum_piecewise:
sum_piecewise = p
else:
sum_piecewise += p
print sum_piecewise.evalf(0.2)
しかし、これは大きな象徴的表現ではなく、私が欲しいものである実際の値を出力します。
引数evalf' 'することは計算する桁の数です。値を代用する場合は、 'subs(x、0.2)'または 'evalf(subs = {x:0.2})'を使用します。 – asmeurer