numpy .plyfit возвращающие коэффициенты для разных кривых - PullRequest
1 голос
/ 24 марта 2020

Я построил кривую по некоторым данным, используя numpy .polyfit, и пытаюсь найти, где кривая пересекает другую линию. Тем не менее, мне кажется, что я неправильно понимаю, как работает функция, когда я пытаюсь использовать полученные коэффициенты, чтобы найти значения на кривой. Я получаю бессмысленные ответы. Похоже, что выведенные коэффициенты отличаются от таковых для кривой на графике (желтая линия над синими точками):

JD = numpy.array([])
mag = numpy.array([])
nlines = getlen("increasing mag 2.txt")
print(nlines)
a = open("increasing mag 2.txt",'r')
# read header
word = a.readline()
for i in range(1,nlines):
    word = a.readline()
    word = word.split(',')
    dd = numpy.array(word[0]).astype(float)
    m = numpy.array(word[1]).astype(float)
    #err = np.array(word[2]).astype(float)
    filt = word[4]
    if filt == 'V':
        print(dd,m)
        JD = numpy.append(JD,dd)
        mag = numpy.append(mag,m)



x = JD
y = mag

coeffs = numpy.polyfit(x,y,2)

print(coeffs)

poly = numpy.poly1d(coeffs)

new_x = numpy.linspace(x[0], 2458940)
new_y = poly(new_x)

plt.plot(x,y,'x', new_x,new_y)

Это выводит коэффициенты: -3.09363812e-04, 1.52138019e + 03, -1.87044961e + 09

Вот нить, в которой я пытаюсь найти пересечение: Нахождение пересечения между квадратами c и линией

Вот нить на вопрос, основанный на том же топи c: Использование numpy .polyfit

Вот изображение мой полный график с инвертированной осью y: enter image description here

Однако правильная кривая с использованием выведенных коэффициентов:

...