Python 从数据点拟合双曲线

Python 从数据点拟合双曲线,python,math,function-approximation,Python,Math,Function Approximation,我有涡轮增压器压力图的实验数据点(x1,x2,…,xn),(y1,y2,…,yn),我想得到趋势线方程。我的研究结果是: y = (ax^5 + bx^4 + cx^3 + dx^2 + ex + f)/(x+g) # my equation 请告诉我,有什么现成的功能吗? 我尝试使用np.polyfit,但它适用于通常的多项式,我必须以这种方式猜测“g”: # y*(x-g) = ax^5 + bx^4 + cx^3 + dx^2 + ex + f pc = np.polyfit(x

我有涡轮增压器压力图的实验数据点(x1,x2,…,xn),(y1,y2,…,yn),我想得到趋势线方程。我的研究结果是:

y = (ax^5 + bx^4 + cx^3 + dx^2 + ex + f)/(x+g)    # my equation
请告诉我,有什么现成的功能吗? 我尝试使用np.polyfit,但它适用于通常的多项式,我必须以这种方式猜测“g”:

# y*(x-g) = ax^5 + bx^4 + cx^3 + dx^2 + ex + f
pc  = np.polyfit(x, y*(x+g), 5)
y = (pc[0]*x**5 + pc[1]*x**4 + pc[2]*x**3 + pc[3]*x**2 + pc[4]*x + pc[5])/(x + g)

如果有人能帮我得到方程的系数,那就太好了。

虽然这会导致稍微不同的最小化,但你可以将方程线性化为

x y = ax^5 + bx^4 + cx^3 + dx^2 + ex + f - g y

然后用线性最小二乘法求解。

x+g
x-g
?-g,因为它总是负值。但是,当我们在寻找它的时候,这并不重要,seems@ray_med:有连贯的方程很重要。它不起作用,因为我们有常数项=f+gy`。即使f=0,我们也有g=pc[5]/y,它不是computable@ray_med:它确实有效,它是一个在7个未知数中超定的系统。但是你没有义务相信我。