Orthogonal regression fitting in scipy least squares method

后端 未结 3 913
离开以前
离开以前 2021-02-19 16:21

The leastsq method in scipy lib fits a curve to some data. And this method implies that in this data Y values depends on some X argument. And calculates the minimal distance bet

3条回答
  •  生来不讨喜
    2021-02-19 17:05

    If/when you are able to invert the function described by p you may just include x-pinverted(y) in mFunc, I guess as sqrt(a^2+b^2), so (pseudo code)

    return sqrt( (y - (p[0]*x**p[1]))^2 + (x - (pinverted(y))^2)
    

    for example for

    y=kx+m   p=[m,k]    
    pinv=[-m/k,1/k]
    
    return sqrt( (y - (p[0]+x*p[1]))^2 + (x - (pinv[0]+y*pinv[1]))^2)
    

    But what you ask for is in some cases problematic. For example, if a polynomial (or your x^j) curve has a minimum ym at y(m) and you have a point x,y lower than ym, what kind of value do you want to return? There's not always a solution.

提交回复
热议问题