对象作为解决的参数

时间:2018-07-10 14:35:57

标签: python scipy nonlinear-optimization

我正在尝试解决包含样条线对象的非线性方程。由于我想对不同的数据进行多次处理,因此我不想为每个数据集创建一个新函数,而只创建一个函数并将样条线作为参数传递。

这些数据实际上是我拟合样条曲线的实验数据,并且我要求解的方程相当复杂,但是为了说明我的问题,我在下面的示例中使用了一个简单的正弦函数。

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)

我该怎么做?有什么建议吗?也许不能以这种方式完成,如果可以,还有其他解决方案吗?

0 个答案:

没有答案