Fonctions > Analyse des données > Ajustement de courbe > Régression non linéaire
  
Régression non linéaire
genfit(vx, vy, vg, F) : renvoie un vecteur contenant les paramètres qui permettent à une fonction F de x et n paramètres u1... un d'ajuster au mieux les données de vx et vy.
La fonction genfit fait appel à une version optimisée de la méthode de minimisation de Levenberg-Marquardt. Bien que généralement plus rapide et moins sensible aux mauvaises valeurs initiales, cette implémentation peut ne pas parvenir à trouver de solution aux problèmes ayant de nombreux minima locaux, comme les fonctions rationnelles, par exemple. La mise en oeuvre est sensible aux dérivées vectorielles incorrectes.
Arguments
vx, vy sont des vecteurs de valeurs de données réelles de même longueur, correspondant aux valeurs x et y figurant dans le jeu de données. Le nombre de points de données doit être supérieur ou égal au nombre de paramètres.
vg est un vecteur de n éléments de valeurs initiales pour les paramètres. Si n = 1, alors vg est un scalaire.
F(x, u) est une fonction d'ajustement, ou un vecteur de fonctions, où x est une variable indépendante et u un vecteur de paramètres ou des noms de paramètres individuels. L'équation suivante est à la fois une représentation valide pour une fonction d'ajustement :
Cliquez pour copier cette expression
n est un entier positif. Dans le cas de paramètres non vectorisés, le nombre de noms individuels est limité à neuf.
Amélioration de la convergence
Pour améliorer la convergence et éventuellement la précision de genfit, vous pouvez représenter F comme un vecteur n+1 de fonctions dans lequel la première entrée F0 est la fonction d'ajustement f et les autres entrées F1, F2,..., Fn sont les dérivées partielles symboliques de f par rapport aux paramètres n.
En ce qui concerne les deux manières de représenter la fonction d'ajustement indiquée ci-dessus, vous pouvez uniquement utiliser f(x,A,c) en cas de recherche des dérivées partielles de manière symbolique. Par conséquent, en représentant F comme un vecteur de fonctions, n a une limite de 9. F a donc une longueur maximale de 10. Vous pouvez créer un vecteur F en créant une matrice des dérivées partielles appropriées et en l'évaluant de manière symbolique :
Cliquez pour copier cette expression
Informations supplémentaires
Fournissez uniquement le nom de la fonction d'ajustement ou le vecteur de fonctions, sans aucun argument, à genfit.
Si vous utilisez la fonction d'ajustement sans les dérivées partielles des paramètres symboliques, genfit calcule les dérivées partielles des paramètres de manière numérique. Ce calcul est moins précis que lorsque les dérivées symboliques sont fournies, mais peut être utile dans certains cas.
Si la conversion de genfit échoue, vous souhaiterez peut-être essayer d'autres valeurs initiales ou mettre vos données à l'échelle de sorte que tous les paramètres soient d'un ordre de grandeur similaire. Comme avec toutes les techniques de solution numérique, les problèmes non linéaires sont considérablement sensibles aux valeurs initiales.
Vous souhaiterez peut-être tracer votre fonction d'ajustement avec les valeurs initiales pour vous aider à les affiner avant d'utiliser genfit.
L'algorithme de Levenberg-Marquardt optimisé est plus sensible aux erreurs dans les dérivées algébriques fournies. Si genfit échoue, vous devez vérifier les expressions dérivées.