Pourquoi n'est-il pas "curve_fit" en mesure d'estimer la covariance du paramètre si le paramètre correspond exactement?

Je ne comprends pas curve_fit n'est pas en mesure d'estimer la covariance des paramètres, ce qui soulève la OptimizeWarning ci-dessous. La suite MCVE explique mon problème:

MCVE extrait python

from scipy.optimize import curve_fit
func = lambda x, a: a * x
popt, pcov = curve_fit(f = func, xdata = [1], ydata = [1])
print(popt, pcov)

Sortie

\python-3.4.4\lib\site-packages\scipy\optimize\minpack.py:715:
OptimizeWarning: Covariance of the parameters could not be estimated
category=OptimizeWarning)

[ 1.] [[ inf]]

Pour a = 1 la fonction correspond à xdata et ydata exactement. Pourquoi n'est-ce pas l'erreur/la variance 0, ou quelque chose de proche de 0, mais inf à la place?

Il y a cette citation de la curve_fit SciPy Guide de Référence:

Si la matrice Jacobienne à la solution de ne pas avoir un classement complet, puis ‘lm’ méthode renvoie une matrice remplie avec np.inf, sur l'autre main "fondation" et " dogbox’ utilisation de méthodes de Moore-Penrose pseudo-inverse pour calculer la matrice de covariance.

Donc, quel est le problème sous-jacent? Pourquoi ne pas la matrice Jacobienne à la solution d'avoir un classement complet?

InformationsquelleAutor finefoot | 2017-01-18