J'ai quelques données (x
et y
coordonnées) provenant d'une étude et je dois les tracer et de trouver la meilleure courbe qui correspond aux données. Mes courbes sont:Python ajustement polynomial, la loi de puissance et exponentielle des données
- polynôme jusqu'au 6ème degré;
- loi de puissance;
- exponentielle.
Je suis en mesure de trouver la meilleure solution pour polynomiale avec
while(i < 6):
coefs, val = poly.polyfit(x, y, i, full=True)
et je prends le degré qui minimise val
.
Quand je dois ajuster une loi de puissance (la plus probable dans mon étude), je ne sais pas comment le faire correctement. C'est ce que j'ai fait. J'ai appliqué la fonction log à tous x
et y
et j'ai essayé de l'adapter avec un polynôme linéaire. Si l'erreur (val) est plus faible que les autres polynômes essayés auparavant, je choisis la fonction de loi de puissance (naturellement si m de la droite est négatif). Ai-je raison?
Maintenant, comment puis-je reconstruire ma loi de puissance à partir de la ligne y = mx + q
pour la dessiner avec les points d'origine? J'ai aussi besoin d'afficher la fonction trouvée.
J'ai essayé avec:
def power_law(x, m, q):
return q * (x**m)
utilisant
x_new = np.linspace(x[0], x[-1], num=len(x)*10)
y1 = power_law(x_new, coefs[0], coefs[1])
popt, pcov = curve_fit(power_law, x_new, y1)
mais la courbe résultante ne convient pas les données.
Qu'est-ce que * "ne semble pas bien fonctionner" *? Erreurs (fournir un retraçage complet)? Sortie inattendue (fournir les entrées et la sortie attendue et réelle)? – jonrsharpe
Ceci est une question méthodologique, je ne demande pas un code complet, le code n'est pas nécessaire ici. Je ne le demande pas. Il y a une question "Ai-je raison, comment reconstruire la loi de pouvoir?" – Nadir
La courbe ne correspond pas aux données, donc, probablement, mon idée n'est pas la bonne, sur le plan méthodologique. – Nadir