由于缺少Latex编辑器,下面是一个分段函数的图片,我希望使用Sympy绘制它。我想传入两个系数数组和一个x值,然后计算它并绘制函数。(编辑:比字母表多了一个p,图片更新了)
这是我目前为止的尝试(alpha和p是列表/数组,t是一个数字):def getf(alpha,p,t):
#Create the argument list of tuples for the SymPy.Piecewise function
argtuples = []
for n,number in enumerate(alpha):
if n == 0:
argtuples.append((p[0]*x, x
elif 0
argtuples.append((p[0]*alpha[0] + Sum(p[i]*(alpha[i] - alpha[i-1]),(i,1,n)) + p[n+1]*(x-alpha[n]), alpha[n-1] <= x < alpha[n]))
else:
argtuples.append((p[0]*alpha[0] + Sum(p[i]*(alpha[i] - alpha[i-1]),(i,1,n)) + p[n+1]*(x-alpha[n]), x>=alpha[n]))
f = Piecewise(argtuples)
return f(t)
from sympy import Piecewise, Sum
from sympy.abc import x, i
getf([10000,50000,100000,1000000],[0.05,0.08,0.15,0.30,0.40],1000001)
但是,我得到了一个错误“list index must be integer or slices,not Symbol”。既然数组可以是任意长度的,如何引用传递给函数的系数值?在