我正在尝试解决包含样条线对象的非线性方程。由于我想对不同的数据进行多次处理,因此我不想为每个数据集创建一个新函数,而只创建一个函数并将样条线作为参数传递。
这些数据实际上是我拟合样条曲线的实验数据,并且我要求解的方程相当复杂,但是为了说明我的问题,我在下面的示例中使用了一个简单的正弦函数。
import numpy as np
from scipy import interpolate
from scipy.optimize import fsolve
import matplotlib.pyplot as plt
def equation(x0,func):
return ( interpolate.splev(x0,func) - 1 )
x = np.arange(0,2*np.pi,1)
y = np.sin(x)
yy = interpolate.splrep(x,y)
x0 = 3
root = fsolve(equation,x0,yy)
我收到以下错误:
TypeError: equation() takes exactly 2 arguments (4 given)
我该怎么做?有什么建议吗?也许不能以这种方式完成,如果可以,还有其他解决方案吗?