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 et soustraction de données [Débutant]


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut interpolation et soustraction de données
    salut tous,

    j'ai une question surement simple pour vous mais pas pour moi...

    données entrées
    j'ai deux vecteurs qui contiennent des données expérimentales X (abscisses) et Y (coordonnées), du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Xexp=1 2 3 4 5 6 7 8 9
    Yexp=5 8 6 4 7 1 5 2 8
    calcul
    je fais un calcul avec un modele et voici les résultats que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    X=1 2.2 2.9 5.2 6.3 9
    Y=5 8.2 6.3 7.2 1.3 8
    resultats
    ce que je voudrais comme résultats c'est un vecteur erreur qui est:

    probleme
    le probleme est que pour faire ceci il faut deux choses:

    1°) que les vecteurs Yexp et Y ont la meme dimension
    2°) que les Y(i) et Yexp(i) soient pris au meme abscisses

    le soucis et que je ne sais pas trop comment transformer mon vecteur Y pour que les calculs correspondent aux données expérimentales...

    je pense que matlab doit avoir une fonction préprogrammée pour cela mais je ne la connais pas...

    j'espere que vous pourrez m'aider

  2. #2
    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,

    pour l'interpolation, il existe la fonction interp1, mais tu ne peux pas directement calculer ton modèle pour les valeurs de Xexp? Cela aurait plus de sens...
    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.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par magelan Voir le message
    Bonjour,
    salut et merci de m'aider

    Citation Envoyé par magelan Voir le message
    pour l'interpolation, il existe la fonction interp1
    ok super !

    Citation Envoyé par magelan Voir le message
    mais tu ne peux pas directement calculer ton modèle pour les valeurs de Xexp? Cela aurait plus de sens...
    au fait c'est le schema numérique qui fait les calculs. (j'utilise ode23) je lui donne un temps initial un temps final et il calcul les increments lui meme et il n'y a pas de raison pour que ça tombe pile avec ce que j'ai comme donnée experimentale..


    EDIT:
    c'est bon j'ai trouvé comment faire. Merrci en tout cas pour ton aide

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    en fait je bloque... j'aurais besoin de votre aide svp:

    Données de départ
    experimental
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Xexp   Yexp
    1           10
    2           20
    3           30
    4           40
    calculé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Xcalcul   Ycalcul
    1.1           15
    2.1           25
    3.1           35
    ma premiere idée
    mettre les abscisses expérimental dans ces calculée et vis versa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    donneesExp1=zeros(length(Xexp{1})+length(Xcalcul{1}),2)
    donneesExp1(:,1)=[Xexp{1};Xcalcul{1}];
    donneesExp1(:,2)=[Yexp{1};zeros(length(Ycalcul{1}),1)];
    je dois avant l'interpolation classer ces données par ordre croissant par rapport à la première colonne, pour ceci je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    donneesExp1=sortrows(donneesExp1)
    par contre comment dois je faire pour faire une interpolation que les données rajoutées, comme ceci ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    donneesExp1=interp1(donneesExp1(:,1),donneesExp1(:,2),Xcalcul{1})
    ==> en fait je n'ai pas compris comment faire pour interpoler qu'aux endroits où il y a des zeros (c'est à dire où j'ai inséré des abscisses)

    ma deuxieme idée
    je pense que la premiere idée est pas mal mais le probleem est que les données expérimentales sont trop nombreuses et je préférais plutot conserver les données expérimentales qui correspondent aux pas de temps calculés car ça me fait des vecteurs beaucoup moins grand et largement suffisant.

    le probleme est que je ne vois pas trop comment faire...

  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
    Citation Envoyé par 21did21 Voir le message
    au fait c'est le schema numérique qui fait les calculs. (j'utilise ode23) je lui donne un temps initial un temps final et il calcul les increments lui meme et il n'y a pas de raison pour que ça tombe pile avec ce que j'ai comme donnée experimentale..
    Ah bon? pourtant dans la doc de ode23 :
    Citation Envoyé par La documentation de ode23
    To obtain solutions at the specific times t0, t1,...,tf (all increasing or all decreasing), use tspan = [t0,t1,...,tf].
    Ensuite je pense que c'est une très mauvaise idée de mélanger tes données expérimentales et calculées, calculer l'erreur la-dessus n'aurait pas vraiment de sens.
    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.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par magelan Voir le message
    Ah bon? pourtant dans la doc de ode23 :
    as oui en effet !

    Citation Envoyé par magelan Voir le message
    Ensuite je pense que c'est une très mauvaise idée de mélanger tes données expérimentales et calculées, calculer l'erreur la-dessus n'aurait pas vraiment de sens.
    en fait je voulais juste garder les abscisses experimentales pour pouvoir faire les interpolations pour ces abscisses

  7. #7
    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
    Citation Envoyé par 21did21 Voir le message
    en fait je voulais juste garder les abscisses experimentales pour pouvoir faire les interpolations pour ces abscisses
    Ok, dans ce cas tu peux faire simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donneesInterpole=interp1(Xcalcul, Ycalcul, Xexp)
    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.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    sinon pour l'interpolation que j'ai fais avec interp1 qu'en penses tu c'est bien comme ça qu'il faut faire ?

  9. #9
    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
    Oui, mais je persiste en pensant que tu vas dégrader ton modèle en procédant ainsi : tu crée un modèle que j'imagine assez complexe puis tu vas l'interpoler avec une fonction linéaire ou polynomiale. Donc l'erreur que tu calculeras ne refléteras pas exactement l'erreur entre ton modèle et tes valeurs expérimentales.

    Pourquoi ne pas directement calculer ton modèle avec les abscisses qui t'intéressent comme suggérer plus haut?
    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.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    tu as raison, c'est ce que je vais faire.
    merci pour ton aide

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

Discussions similaires

  1. [XL-2003] Soustractions de données
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/09/2011, 16h21
  2. Interpolation de données à 2 dimensions
    Par Alex95 dans le forum C
    Réponses: 10
    Dernier message: 18/04/2008, 15h19
  3. soustraction de données issues d'un même champ
    Par NATOU2 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/01/2008, 12h10
  4. Soustraction avec des données
    Par darkspoilt dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/05/2007, 22h18
  5. Soustraction et base de donnée
    Par Sakuragi007 dans le forum Requêtes
    Réponses: 5
    Dernier message: 30/11/2005, 13h41

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