IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Algorithme de Gauss-Newton et regression non linéaire


Sujet :

Mathématiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut Algorithme de Gauss-Newton et regression non linéaire
    Bonjour,
    Sujet tendu, j'ai vraiment du mal à aller au bout des choses alors que je n'ai pas le bagage nécessaire pour saisir aisément le sujet.
    J'ai un ensemble de point d'une cinétique, elle suit une loi bien fixé : c'est une fonction logistique à 3 arguments :
    f(x) = p3/(1-exp(-p1-p2*x))
    J'ai testé des régressions non linéaire à l'aide de cette fonction, ça colle tout le temps, le soucis c'est que je dois de mon côté trouver l'algorithme qui fait cette régression pour le coder derrière.

    Je me suis penché dans mes recherches sur l'algorithme de gauss-Newton, mais même d'un point de vu mathématique, je ne comprend pas tout. Je n'ai pas la notion de matrice jacobienne par exemple.
    Ce que j'aimerais de votre par c'est une explication de ce que peut faire cet algorithme et comment l'appliquer à mon cas, sinon des solutions, au moins un coup de pousse, je patauge complètement.
    Sinon, si des outils gratuits existent pour effectuer ce genre de chose, avec la contrainte d'être contrôle par vb.net (oui, je suis chiant).

    Le logiciel que j'ai utilisé (et que je veux en définitive copier, du moins sur la régression, le reste ne m'intéresse pas) est XL stat.
    Merci d'avance, tout coup de pouce sera le bienvenue, j'ai pas l'impression d'être très loin d'une solution :/

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Je vais essayer d'expliquer en banalisant un peu la chose (pour moi aussi j'ai pas fait ça depuis longtemps) :

    - Tu as couples de points notés :
    - Tu souhaites trouver les paramètres pour que la fonction fit au mieux avec les couples de points précédents. C'est-à-dire, on voudrait dans l'idéal que .
    - Dans la pratique, on ne peut pas avoir à tout les coups pour tous les couples (cf wikipédia pour savoir pk).
    - On cherche alors, pour chaque couples, à minimiser l'erreur commise : . Ce qui revient à minimiser la somme des erreurs :


    - Dans le cas de l'algorithme de newton, on parle de "moindre carrée". Il s'agit enfaite de minimiser la somme des erreurs au carrée :


    C'est-à-dire que l'on préfère par exemple avoir 2 erreurs de 5 (5^2 + 5^2 = 50) plutôt qu'une erreur de 10 (10^2 = 100).




    On a donc une fonction :

    dont on cherche le minimum.
    Chercher le minimum d'une fonction à une variable c'est assez simple, on peut utiliser les dérivées par exemple et qui te donnerons une formule littéral.
    Dans ton cas, on cherche le minimum d'une fonction à 3 variables de manière numérique.




    Tu peux déjà essayer d'imager en 3 dimensions avec 2 variables. Le principe de l'algo c'est de partir d'un point initial et d'effectuer une successions d'itérations consistant à minimiser la fonction sur le principe de directions de descentes :





    Pour l'algorithme de Gauss-Newton je vais me contenter de recopier wikipédia, car ça fait longtemps que j'ai pas fait ce type d'exo (A savoir qu'il y a une théorie qui se cache derrière tous ça )

    On note alors :

    et désigne l'évaluation de et de au point .


    Donc je te souhaite bonne chance si tu veux toujours t'amuser à le coder. Tu vas devoir faire des calculs de matrice inverses.
    Attention aussi au fait que ta fonction n'est pas continue.

    Perso je te conseil de ne pas réinventer la roue et d'utiliser des bibliothèques qui existent déjà.

  3. #3
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Bonjour,
    Merci pour ton aide, la façon dont tu expliques tout ça est plus clair que ce que j'ai pu trouvé pour le moment.
    Je me rend compte encore plus de la difficulté de l'exercice ...
    J'aimerais ne pas réinventer la roue, mais j'ai également des limitations techniques : je dois trouver une solution gratuite qui fonction sous vba ou vb.net. Je file tout de suite chercher des bibliothèques du coup ~~~

  4. #4
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Re !
    J'ai cherché et trouvé un fichier sur le site suivant : http://www.danielroux.fr/bibliovba/telechargement.php
    Dans la partie sur la régression, il y a bien l'algo qui pourrait m'intéresser, dans la dernière feuille du classeur, la régression logistique.
    Soucis dans l'histoire : il est à 4 arguments ...
    La fonction utilisé dans l'algo et le suivant :
    Y(x) = a*((1+m*exp(-x/tau))/(1+n*exp(-x/tau)))
    Par rapport à ma formule j'ai imaginé : a = P3, m=0, -1/tau = p2 et -ln(n) = p1.
    L'algo utilisé n'est pas celui sur lequel je partais, il s'agit de l'algo de Levenberg-Marquardt.
    En fouillant la macro, j'ai pu voir que c'était variable au niveau des arguments, que je pouvais faire varier moi même le nombre d'argument mais il me ressort une erreur quand je traite des données expérimentales en gardant arguments au lieu de 4...
    Je vais aller ouvrir un sujet dans la partie VBA pour l'aide au niveau progra, mais j'ai l'intime conviction que seul un matheux pourra m'aider dans cette histoire ...
    Je vais aussi fouillé en direction de Levenberg-Marquardt.

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Par défaut
    Tu peux nous donner une série de points, pour faire un test =)
    Sous la forme :
    X = [x1, x2, ..., xn]
    Y = [y1, y2, ..., yn]

  6. #6
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    D'accord, je met ça en xls en pièce jointe.
    Ce sont trois jeux de données A, B et C et la valeur temporelle t en abscisse.
    Merci beaucoup pour ton aide.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. regression non linéaire
    Par thtghgh dans le forum Mathématiques
    Réponses: 8
    Dernier message: 16/09/2011, 14h49
  2. Regression non linéaire - Prédicteurs
    Par thtghgh dans le forum SAS STAT
    Réponses: 11
    Dernier message: 14/11/2010, 13h04
  3. Regression non linéaire
    Par sfiliste dans le forum Mathématiques
    Réponses: 28
    Dernier message: 28/09/2010, 12h17
  4. Regression non linéaire
    Par DooX4EvEr dans le forum MATLAB
    Réponses: 0
    Dernier message: 11/08/2010, 13h01
  5. Loi de King - Regression non linéaire
    Par damienw dans le forum Mathématiques
    Réponses: 6
    Dernier message: 14/05/2008, 21h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo