Бесконечное значение ковариации в python - PullRequest
0 голосов
/ 07 мая 2020

У меня есть следующий код:

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

y = np.array([25.885,26.139,27.404,30.230]) 
y_err = np.array([1.851,0.979,2.049,6.729]) 
x = np.array([0,1,2,3]) 

def func(X, a, b):
    x,y,weight=X
    return (a * (x+0.5)/4.186 + b-y)**2/weight

popt, pcov = curve_fit(func, (x,y,y_err), 0)
print(popt)
print(pcov)

Это просто простая подгонка маршрутизации y против x, но я переписываю ее таким образом, чтобы иметь возможность пробовать разные определения потерь при подгонке , поэтому я в основном хочу минимизировать функцию, которая у меня есть, и, следовательно, результат должен быть как можно ближе к нулю. Позже я понял, что в python есть функция минимизации, но, оставив это в стороне, я получаю эту ковариационную матрицу:

[[inf inf]
 [inf inf]]

, в то время как фактические параметры для a и b выглядят вполне резонно: [5.23,24.68]

Что происходит? Спасибо!

...