подгонка гиперболы от точек данных - PullRequest
0 голосов
/ 17 октября 2019

У меня есть экспериментальные данные (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)

Было бы неплохо, если бы кто-то мог помочь получить коэффициенты моего уравнения.

1 Ответ

0 голосов
/ 17 октября 2019

Хотя это приведет к несколько иной минимизации, вы можете линеаризовать уравнение как

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

и решить с помощью линейных наименьших квадратов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...