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

MATLAB Discussion :

Interpolation comment ça marche [Débutant]


Sujet :

MATLAB

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 109
    Points : 151
    Points
    151
    Par défaut Interpolation comment ça marche
    Salut,

    J'ai une question concernant l'interpolation dans matlab.

    Pour commencer, j'ai une série de donnée discrète (x,y(x)). J'aimerai interpolé cette série de donné afin d'obtenir des points spécifiques

    Dans un premier temps, j'ai utilisé la fonction spline, mais cela ne donne qu'un encadrement de la valeur voulue. J'ai trouvé dans l'aide de matlab la fonction interp1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yq=interp1(x,y,xq,'method')
    Je suppose qu'en écrivant la ligne précédente j'obtiens la valeur yq correspondant exactement à xq (à la précision près)

    Mais maintenant, si je connais yq et que je cherche le xq correspondant, y a t-il une fonction qui permet d'interpoler dans l'autre sens?

    J'en profite pour poser une seconde question. J'ai toujours ma série de point (x,y(x)). J'aimerais savoir qu'elle fonction me permettrai d'extrapoler ma série de donné en point qui n'est évidemment pas dans l'intervalle [x(1) x(end)]

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 109
    Points : 151
    Points
    151
    Par défaut
    Citation Envoyé par Beltharion Voir le message
    Mais maintenant, si je connais yq et que je cherche le xq correspondant, y a t-il une fonction qui permet d'interpoler dans l'autre sens?
    J'ai trouvé une solution qui consiste à inverser les axes dans la fonctions interp1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xq=interp1(y,x,yq,'method')
    Seulement, cette option ne fonctionne que si la fonction est injective. Je peux forcé l'injection en choisissant mes intervalles. Mais c'est du bricolage. N'y a-t-il pas une méthode plus fiable?


    PS : Non non, je ne suis pas fou même si je me répond tout seul

  3. #3
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par Beltharion Voir le message
    Seulement, cette option ne fonctionne que si la fonction est injective. Je peux forcé l'injection en choisissant mes intervalles.
    ce qui est plutôt logique, non ?
    comment trouver x = f(y) sinon ??

    Citation Envoyé par Beltharion Voir le message
    Mais c'est du bricolage. N'y a-t-il pas une méthode plus fiable?
    non, je trouve que c'est pas du bricolage : c'est de l'interpolation
    c'est fiable à condition de savoir ce que l'on fait

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2014
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 109
    Points : 151
    Points
    151
    Par défaut
    super merci pour ta confirmation !

    Sujet résolu

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Citation Envoyé par Beltharion Voir le message
    J'aimerais savoir qu'elle fonction me permettrai d'extrapoler ma série de donné en point qui n'est évidemment pas dans l'intervalle [x(1) x(end)]
    Il est possible de faire de l'extrapolation avec interp1 (voir les options). Par contre autant l'interpolation fonctionne dans la majorité des cas (pour peu que l'on ait un échantillonnage suffisamment fin des données), autant, il faut être prudent avec l'extrapolation, rien ne dit que les modèles utilisée (linéaire, cubique, etc) sont de bons prédicteurs de tes valeurs en dehors du domaine défini.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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