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 :

Interpolation de Lagrange


Sujet :

Mathématiques

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Interpolation de Lagrange
    Bonjour,

    j'ai un soucis avec un algo correspondant à l'interpolation de Lagrange.

    Je dispose de plusieurs couples de valeurs, et j'aimerai à partir de ces valeurs en déduire des valeurs futures.
    exemple :
    (2004, 102)
    (2005, 102,9)
    (2006, 107)

    je cherche donc a trouvé les ordonnées pour les abscisses 2007, 2008 ... etc

    j'ai donc pensé à utilisé l'interpolation de Lagrange. Es ce la bonne solution ?

    Si oui alors voici mon algo codé en Visual Basic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    'La variable x correspondant à l'abscisse dont on souhaite trouvé l'ordonné
    'la variable interp désigne le résultat de l'interpolation (l'ordonné cherché)
    'la variable n correspond à la précision
    'les tableaux xin() et yin() correspondent aux couples de valeurs que je connais déjà
     
    Dim interp As Double
    Dim i, j, n As Integer
     
    n = 3
    interp = 0
     
    '*****************************************
    'Interpolation suivant la méthode Lagrange
    '*****************************************
        For i = 0 To n
        lambda(i) = 1#
          For j = 0 To n
             If i <> j Then
                    lambda(i) = lambda(i) * ((x - xin(j)) / (xin(i) - xin(j)))
             End If
             interp = interp + (yin(i) * lambda(i))
          Next j
        Next i
    le couple (x, interp) est donc mon résultat résultant de l'interpolation.
    Cependant ce résultat est complétement incohérent, en effet je me retrouve avec des valeurs de ce type :

    (2007, 198721546521321.2)
    L'ordonnée est complétement disproportionnée :'(

    L'erreur provient de l'algo ou d'autre part ?

    en espérant que quelqu'un trouve d'ou provient l'erreur !

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 003
    Points
    20 003
    Billets dans le blog
    67
    Par défaut
    Salut,

    J'avais déja ouvert une discussion sur l'interpolation d'une série de valeurs il y a quelques mois,

    et des spécialistes avait pu me résoudre le problème et m'expliquer les principales difficultés auquelles on est confronté dans ce type de problème...

    Voici le lien:
    http://www.developpez.net/forums/showthread.php?t=63949


    @+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    je viens de lire le lien que tu viens de me donner, cependant ca a l'air bien compliqué !

    J'ai du mal a comprendre tout ce que tu as fais et je me demande si il répond réellement à mes attentes.
    Si j'ai bien compris ce que tu as fait, c'est que :
    1) tu rendres dans un premier temps une fonction (un polynome)
    2) et à partir de celui la, tu utilises la méthode des moindres carrées pour calculer les valeurs futures non ?

    Cependant dans le logiciel que je concoi, l'utilisateur n'a pas de connaissance informatique et il ne peut calculer cette fonction.

    Il n'existe pas une méthode plus simple pour effectuer une extrapolation ?

  4. #4
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Regarde du côté des séries temporelles. Par exemple:
    http://w3.univ-tlse1.fr/GREMAQ/Stati...P_st_cours.pdf

    Il y a des modèles très simples pour estimer l'évolution d'une série qui se programment en quelques lignes.

    L'interpolation Lagrangienne ne me semble pas adapter: tu veux plutôt faire de l'extrapolation (ce qui se passe en dehors de tes mesures).

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci pour ces conseils !

    Oui je fais de l'extrapolation et donc la prévision d'une serie temporelle me paraît adéquat pour ce traitement.

    Malgré l'étude sur le net de ces prévisions, j'ai du mal à saisir toutes les notions que cela apporte, ( par mon niveau en Math peu élevé ), et j'aimerai trouver un algo qui résume tout cela !

    FrancisSourd
    Il y a des modèles très simples pour estimer l'évolution d'une série qui se programment en quelques lignes.
    as tu un exemple sous la main ?!

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 003
    Points
    20 003
    Billets dans le blog
    67
    Par défaut
    Salut,

    A propos de l'extrapolation, prédiction des points suivants...

    j.p.mignot:
    Si on veut extrapoller, on DOIT avoit un modèle qui va justifier du fit. Sans modèle, il est impossible de faire une prédiction sur les points à venir.Si le modèle est correct il doit fitter raisonnablement les points déjà connus. Ces points pourraient être entachés de bruit autel cas, il peut être souhaitable d'effectuer un filtrage préalable pour supprimer les composantes fréquentielles non significatives.
    Pour obtenir un courbe ayant une chance de pouvoir prédir les points suivants, IL FAUT que les points connus répondent à un modèle y=f(x). Peut importe la fonction f (qui doit tout de même être dérivable ) mais elle doit être connue comme polynôme de degré donné, exp, erf, trigo, ... et peut avoir un certain nombre de paramètres comme une constante de temps dans y(t)=A*exp(-t/TAU)+B ou phase et fréquence comme y(t)=A*cos(t/T+phi)+B, Offet, amplification, ...

    Voila il te faut 1 modèle..

    @+

  7. #7
    Membre confirmé
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par jerev
    as tu un exemple sous la main ?!
    J'ai attaché quelques notes qui doivent être plus accessible que le précédent lien.
    Images attachées Images attachées

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Points : 751
    Points
    751
    Par défaut
    oui, c'est evident que pour un bon fit il faut commencer par avoir un modele coherent. la questione est donc de savoir d'ou sortent tes valeurs.

    apres, s'il sagit d'un polynome -> approximation au sens des moindres carrés
    sinon -> moindres carrés non linéaire.

Discussions similaires

  1. interpolation Lagrange
    Par GM2Ppower dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/04/2022, 12h56
  2. [Débutant] interpolation de Lagrange
    Par mari0marie dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/02/2012, 17h19
  3. Itération interpolation Lagrange
    Par nicolala dans le forum Fortran
    Réponses: 0
    Dernier message: 14/02/2010, 15h06
  4. interpolation de lagrange + extremum + passage par une valeur
    Par john stedd dans le forum Mathématiques
    Réponses: 7
    Dernier message: 25/02/2009, 11h22
  5. Interpolation polynômiale de Lagrange en Pascal
    Par ninie37 dans le forum Pascal
    Réponses: 5
    Dernier message: 27/11/2006, 00h32

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