Je reçois un résultat étrange lorsque j'utilise scipy curve_fit pour ajuster mes données à cette fonction.scipy curve_fit ne produit pas de graphique lisse lors de l'ajustement de la fonction fourier
def func(t, freq, offset, a0, b0, a1, b1, a2, b2, a3, b3):
return (
+ a0*np.sin(2.*0*np.pi*freq*t)
+ b0*np.cos(2.*0*np.pi*freq*t)
+ a1*np.sin(2.*1*np.pi*freq*t)
+ b1*np.cos(2.*1*np.pi*freq*t)
+ a2*np.sin(2.*2*np.pi*freq*t)
+ b2*np.cos(2.*2*np.pi*freq*t)
+ a3*np.sin(2.*3*np.pi*freq*t)
+ b3*np.cos(2.*3*np.pi*freq*t)
+ offset)
Ceci est le résultat de l'ajustement tracé
L'ajustement lui-même est bien, le seul problème étant que la ligne est cahoteuse. Puisque je ne fais qu'adéquation entre les sinus et les cosinus, comment cela pourrait-il se produire? Est-ce que cela se passe dans matplotlib ou dans la fonction curve_fitting? Une autre chose est que, selon que j'ajoute plus ou moins de termes à la fonction, la fonction se lissera elle-même ou deviendra de nouveau cahoteuse.
Super merci! En fait, supprimer les termes redondants semblait avoir lissé le graphique. – Giovanni