Il existe de nombreux outils d'ajustement de courbes et d'interpolation tels que PolyFit (ou même cette belle boîte à outils Logfit, j'ai trouvé ici ), mais je ne peux pas sembler trouver quelque chose qui convient à une fonction Un tel outil existe-t-il ou est-ce que j'ai besoin de faire le mien? p> sigmoid code> à mes données xy. p>
3 Réponses :
Si vous avez la boîte à outils Statistiques installée, vous pouvez utiliser Régression non linéaire < / a> avec ici nlinfit code>
: sigfunc code> est juste un exemple pour une fonction sigmoïde et
A code> est le vecteur des coefficients d'ajustement. P> p>
J'ai trouvé que le Sigfunc suivant sera plus utile sigfunc = @ (A, x) (A (1) ./ (1 + exp (-a (2) * x))); code>
@ user92519 Aucun problème, je n'ai donné que cela comme exemple.
Bonjour. Qu'entendez-vous par Vector des coefficients d'ajustement code>?
@Shohamdebnath Ce que je veux dire, c'est que le vecteur a code> est le vecteur des coefficients qui définit le sigmoïde ajusté. Pour clarfiy, vous pouvez regarder la définition de
sigfunc code>.
Je vous suggère d'utiliser Matlab's Boîte à outils d'optimisation globale , et en particulier la solveur d'algorithme génétique , que vous pouvez utiliser pour votre problème en optimisant ( Trouver le meilleur ajustement pour vos données) Les paramètres de la fonction Sigmoid par l'algorithme génétique. Il a une interface graphique facile à utiliser. P>
the solveur d'algorithme génétique gru, que vous pouvez Appelez en utilisant gatool code>:
p>
ou une logistique généralisée. Mais toutes sortes de courbes peuvent avoir formes sigmoïdales . Si vous savez si vos données correspondent à l'une en particulier, le raccord peut être amélioré et des méthodes plus efficaces peuvent être appliquées. Par exemple, le fonction d'erreur ( NLINFIT code>, et surtout
gatool code>, sont de gros marteaux pour ce problème. Un sigmoïde n'est pas une fonction spécifique. Le plus souvent, il est pris pour être identique à la fonction logistique (également souvent le plus efficace de calculer):
erf code>) a une forme sigmoïdale et apparaît dans le CDF du Distribution normale . Si vous savez que vos données sont le résultat d'un processus gaussien (c'est-à-dire que les données sont le CDF) et vous disposez de la boîte à outils STATS, vous pouvez utiliser la fonction
normfit code>. Cette fonction est basée sur estimation maximale de vraisemblance (mle). Si vous avez fini par avoir besoin d'écrire une fonction de raccord personnalisée - dites, pour des raisons de performance - j'écouerais les techniques de mle pour la forme particulière de Sigmoid que vous souhaitez vous adapter. P> p>