自变量取决于标准化参数:如何使用曲线拟合解决它

2024-10-03 17:28:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用curve_fit软件包来拟合以下函数:

def fitfunc(x,a1,b1,a2,b2):
    xc=1.0      
    y1 = (a1 + x*b1)[x<=xc]
    y2 = (a2 + x*b2)[x>xc]
    y = np.concatenate((y1,y2))
    return y

使用此示例数据:

x = np.array([0.5,1.0,1.0001,1.5,2.5])
y = np.array([5.0,0.0,0.0,-0.5,-2.5])
ysig = np.array([0.5,0.5,0.5,0.5,0.5])
r= 0.8 # Ranging from 0.5 to 5.0
r_array= np.array([1.0,0.0,0.0,1.0,0])*r
y = np.array([5.0,0.0,0.0,-0.5,-2.5]) * r_array

我需要使用范围为0.5到5.0的R值来评估拟合,这会影响y值

如何将r参数包含在我的拟合中

popt,pcov = curve_fit(fitfunc,x,y,sigma=1./(ysig*ysig),p0=(1.0,1.0,1.0,1.0))

谢谢


Tags: 函数a2defa1nparrayb2b1