我有一个分段数学函数,需要多次评估,作为quad
和curve_fit
例程中的子函数。在尝试提高程序性能时,我发现花了很多时间来评估if
语句中的条件。
我的功能如下:
def myfunc(x):
if x < x0:
return 0.
elif x < x1:
return func1(x)
elif x < x2:
return c2
else:
return 0.
def func1(x):
return c1*((math.cos(x)/math.cos(x2))**2 - 1)**0.5
有没有办法定义相同的功能来减少功能评估时间?
请注意:
x0 < x1 < x2
c1, c2 are constants