我有一个相当大的数量(大约1000)的步功能,每个只有两个间隔。我想总结一下,然后找到最大值。做这个的最好方式是什么?我已经试过了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