我有 x 和 y 数据点数组,用于创建插值函数func_spline
,如下所示。
import numpy
from numpy import loadtxt
from scipy.interpolate import *
x_given = numpy.arange(1,21400,21400/25000)
y_given = loadtxt("Yvalues.txt", comments="#", delimiter=",", unpack=False)
func_spline = interp1d(x_given,y_given, kind='cubic')
y_is = func_spline(x_given)
def alphasinterp(ktsq):
return func_spline(ktsq)
import sympy as sp
import scipy.integrate.quadrature as sciquad
result = sciquad(alphasinterp,0,21400)
print(result)
代码成功地进行了集成但是我想修改代码以允许表单的集成
result = sciquad(alphasinterp*f1,0,21400)
我在积分中卷积f1
的任何函数(函数ktsq
和其他不参与积分的变量)在哪里alphasinterp
。例如,对于特定的f1
我得到错误
TypeError: unsupported operand type(s) for *: 'function' and 'FunctionClass'
如何解决?谢谢!(从代码中可以看出,y 数组包含大约 21000 个点,因此在这里复制和粘贴我的数据可能是不允许或不可取的。我很高兴上传包含数据的文本文件 'Yvalues.txt' 但我还没有办法做到这一点)