Как найти корни для квадратичного набора точек данных - PullRequest
0 голосов
/ 31 мая 2019

Итак, я пытаюсь вычислить что-то очень простое, но мой код дает мне неправильные ответы. У меня есть набор данных (переменная "чи"), который является параболическим (его функция хи-квадрат). Вершина данных (наименьшее значение Чи) находится в точке у = 13,671. Я пытаюсь выяснить, где эта парабола будет пересекать y = 14.671, но пока я получаю мнимые корни, что не имеет смысла, учитывая, что линия y = 14.671 перехватывает данные в двух разных точках.

Я пробовал пакет из 'numpy.polynomial import Polynomial'. По сути, я попросил python дать мне уравнение для моей параболы, а затем сказать мне, где находятся корни, когда я вычитаю свое значение y.

 fit = P.fit(betatest,chi,2)
 yval = min(chi) + 1.
 rts = (fit - yval).roots()
 sigma = abs(beta_bg - rts[0])
 sig = "%.3f" % sigma


##note: P is from 'numpy.polynomial import Polynomial', and 
 ## betatest and chi are both 1D vectors of length 1000. Betatest is
 ## just a linspace. Again, the minimum for chi is 13.671, and it's a 
 ## positive parabola (smiley face). 

Я не получаю никаких сообщений об ошибках, но мои корни мнимые. Когда я запускаю код и спрашиваю rts, я получаю это:

В [24]: рц Out [24]: массив ([0.37239476-0.15967081j, 0.37239476 + 0.15967081j])

Я прикрепил фотографию своих данных вместе с yvalue, в котором я хочу найти xvalues. введите описание изображения здесь

Я что-то не так делаю?

Спасибо!

...