probleme d'interpolation sous matlab
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

probleme d'interpolation sous matlab



  1. #1
    invite228a0da8

    Lightbulb probleme d'interpolation sous matlab


    ------

    je veux interpoler avec la fonction spline de matlab f(t):
    t=[1000;1850;1950;1980;2000;2050; 2080;2100;2120;2150;2225;2300; 2500];
    f=[0;0;1;4;5;8;10;10.5;10;8;3.5;2 ;0];

    selon un pas de temps constant:
    ti=[1000:5:2500]';
    j'écris donc:
    fs=spline(t,f,ti)
    plot(ti,fs)

    et j'obtiens quelque chose d'abhérent entre 1000 et environ 1900 (cela devrait egal à 0) or cela monte jusqu'à plus de 100!!!
    A partir de 1950 cela parait cohérent
    pouvez vous me donner une solution a mon probleme???

    La première chose que devrait faire tout nouveau (nouvelle) venu(e) c'est de lire la charte du forum. Par exemple le point 2 :
    La courtoisie est de rigueur sur ce forum: pour une demande de renseignements bonjour et merci devraient être des automatismes
    Bienvenue quand même.

    JPL, modérateur

    -----
    Dernière modification par JPL ; 15/05/2005 à 18h08.

  2. #2
    invite24357dd0

    Re : probleme d'interpolation sous matlab

    Salut,
    Je ne connais pas la fonction spline ni les interpolations mais si tu m'expliques, je pourrais t'aider ... Pourquoi n'est-ce pas normal ? Est-ce que ton pas n'est pas trop espacé ?

  3. #3
    invite228a0da8

    Re : probleme d'interpolation sous matlab

    salut
    merci pour ta réponse
    mon projet c'est une modélisation de l'effet de serre de l'an 1000 à l'an 2500 sous matlab
    j'ai un tableau :
    premiere colonne le temps
    deuxieme colonne f(t) combustion des energie fossile

    dans la premiere colonne , le pas de temps n'est pas constant
    il faut donc interpoler, la courbe ressemble a une gaussiene, donc on peut banir interpolation par morceau d'ordre 1 et 2

    la fonction spline est une fonction qui interpole a l'ordre 3 et qui fait que les dérivées 1° et 2° coincident (en gros, interpolation d'ordre 3 avec une fonction C2 sur l'intervalle demandé)

    comme pas de temps j'ai mis 5 ans mais meme en changeant le pas de temps ca ne change rien

    En gros entre l'an 1000 et 1900, il n'y a eu pratiquement aucune emission de gaz a effet de serre, donc cela devrait etre zero...ici cela me donne une sinusoide qui monte jusqu'a 100!!! soit environ 10 fois plus que en l'an 2200 (max théorique...)

    j'espere avoir été claire...je suis un peu paumée

    Merci pour ton aide

    Marine

  4. #4
    invite24357dd0

    Re : probleme d'interpolation sous matlab

    Salut,
    Merci pour tes explications. Mais je pense que çà n'a rien à voir avec un problème de Matlab. Je pense que c'est plutôt un problème avec tes données ...

    Quand tu donnes à Matlab tes deux vecteurs t et f, il n'a des données que pour les années 1950 à plus. Ce qui fait que, si les points fournis sont représentés par des croix bleues et l'interpolation par des points verts, cela donne ceci :


    Matlab essaie d'interpoler (pour moi, synonyme : "deviner") les points qui manquent en appliquant une méthode (ici bicubic spline), à partir des points qu'il a. Donc, en ayant seulement les points d'après 1950, il se dit que, par cette méthode (donc avec l'équation résultant de l'application de cette méthode), il peut tracer la courbe aux points verts.

    Maintenant, comme tu sais que (théoriquement) les années 0 - 1900 ont une émission de 0, tu peux lui indiquer cela :
    Code:
    t=[1000;1100;1200;1300;1400;1500;1600;1700;1850;1950;1980;2000;2050;2080;2100;2120;2150;2225;2300;2500];
    f=[0;0;0;0;0;0;0;0;0;1;4;5;8;10;10.5;10;8;3.5;2 ;0];
    Et, en appliquant la même suite de commandes que toi
    Code:
    ti=[1000:5:2500]';
    fs=spline(t,f,ti);
    plot(ti,fs,'g.',t,f,'b+');
    on obtient alors le graphe suivant (idem : croix bleues = points donnés ; points verts = interpolation)

    Maintenant, c'est un peu mieux pour les années 1000-1700. A priori, je dirais qu'il y aurait un problème entre 1700 et 1800, ainsi qu'entre 1800 et 1900. Mais soit tu ajoutes de nouveaux des points, pour "forcer" l'interpolation, soit il faudrait peut-être réfléchir pour savoir si cette méthode d'interpolation est la plus adaptée (et là, je ne sais pas pourquoi tu as choisi cette méthode et pas une autre).

  5. A voir en vidéo sur Futura
  6. #5
    invite228a0da8

    Re : probleme d'interpolation sous matlab

    j'ai choisi cette fonction parce que le prof nous a dit que ca devrait bien marcher....mais ptet qu'il s'est trompé...
    je vais essayer autre chose

    merci beaucoup

    MArine

  7. #6
    invite228a0da8

    Re : probleme d'interpolation sous matlab

    sinon, vous connaissez une autre fonction de matlab qui pourrait mieu convenir?

    merci encore

    MArine

  8. #7
    invite8cc9db4e

    Re : probleme d'interpolation sous matlab

    bonjour,
    la fonction lsqcurvfit devrait convenir. Cela permet de résoudre au sens des moindres carrés.
    Bonne soirée

  9. #8
    invite228a0da8

    Re : probleme d'interpolation sous matlab

    bon je v essayer ca, bizarre comme nom quand meme...
    merci
    Marine

  10. #9
    invite228a0da8

    Re : probleme d'interpolation sous matlab

    ma version de matlab ne connais pas cette fonction...
    MArine

  11. #10
    inviteb1d3db10

    Re : probleme d'interpolation sous matlab

    Connaissez vous un equivalent du fit de courbe pour fitter une surface a partir de points 3D ?

    oui rien que ca

  12. #11
    b@z66

    Re : probleme d'interpolation sous matlab

    Le problème que rencontre bulette reste le même avec une modélisation utilisant les moindres carrés. Je me souviens avoir utiliser cette méthode pour interpoler la caractéristique d'un amplificateur non-linéaire: il faut toujours "serrer" au plus près les points de référence afin d'éviter de longues plages de valeurs sans mesures sur lesquelles le comportement polynomial des modèles peut facilement faire diverger l'interpolation recherchée.
    La curiosité est un très beau défaut.

  13. #12
    invitea95a6edd

    Smile probleme d'interpolation 3D sous matlab

    Bonjour,
    Je suis à la recherche de techniques pour arriver à trouver la courbure 3D d'un nuage de points. En fait, je pars d'un doc wrml que je tranforme en movie. A partir de ce format je pensais arriver à trouver la courbure de mon nuage de points (avec une fonction des moindre carrées courbe mais je n'arrive pas à la trouver ..) et la longueur de ma courbe, mais en 3D je galère un peu. Auriez vous des idées, techniques etc??
    Merci d'avance

Discussions similaires

  1. Exécutable sous Matlab
    Par invitedd1e6316 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 08/06/2007, 08h42
  2. problème sous matlab avec ode45
    Par invite80950a2d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 13/02/2007, 17h35
  3. probléme stupide sous matlab
    Par invite68ef1cc0 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 04/05/2006, 19h51
  4. polynome d'interpolation
    Par Eogan dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 03/03/2006, 21h47
  5. Probleme de Calcul sous Matlab
    Par invite745632d7 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 20/12/2004, 12h29
Découvrez nos comparatifs produits sur l'informatique et les technologies.