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 :

Approximation polynomiale de degré négatif


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 103
    Points : 49
    Points
    49
    Par défaut Approximation polynomiale de degré négatif
    Bonjour,

    Tout d'abord, désolé si ce titre de veut rien dire (un polynôme de degré négatif n'est pas un polynôme je pense), mais bon soit, ...

    J'ai un vecteur ligne E, de 101 colonnes (ordonnées) et un vecteur ligne m=0:0.1:10. Je voudrais montrer que l'énergie est liée à la masse selon règle en 1/m^{1/3} ("1 sur racine cubique de la masse")

    Le problème, c'est que la fonction polyfit ne marche que pour les degrés entiers.
    Donc je ne sais pas comment faire ? J'ai usé d'une astuce en inversant la relation, puis en inversant les données, mais ... ça ne marche pas

    Merci d'avance pour d'éventuelles pistes de réflexion =)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Petite remarque avant de commencer: pour m = 0, 1/m^(1/3) =
    Ensuite, cela dépend si une constante ko (de la forme ko + k1/m^(1/3) ) intervient, si c'est le cas, cela ne marchera pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    m = 0.1:0.1:10;
    E = 2.3./(m.^(1/3)); % coef à évaluer: 2.3
    y1 = E.*(m.^(1/3)); % on ramène la puissance à 0
    p = polyfit(m,y1,0)
    Dernière modification par Invité ; 18/05/2011 à 21h20.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 103
    Points : 49
    Points
    49
    Par défaut
    merci pour ta réponse !

    Oui en fait j'ai menti, E a 91 colonnes et m=1:0.1:10 ;-)
    normalement il n'y a pas de constante ko ;-)

    Je voudrais bien essayer ton code ... mais en fait je ne le comprends pas

    sinon une tierce personne vient de me montrer la fonction "fit" dans l'aide matlab. Ca peut pas m'aider ça ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu peux en effet aussi utiliser la fonction fit pour résoudre ton problème.
    Quelle partie de mon code ne comprends-tu pas?

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 103
    Points : 49
    Points
    49
    Par défaut
    Je suis en train de lire la doc de fit, ça à l'air puissant mais chaud :-/

    Je ne comprends pas pourquoi tu multiplies par 2 et 3. A moins que ça soit "2 virgule 3", qui serait une valeur de k_1 à tester c'est ça ?

    Et puis surtout si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    E = 2.3./(m.^(1/3));
    y1 = E.*(m.^(1/3));
    ça revient quand même au meme de faire ça :
    y1 = 2.3./(m.^(1/3)).*(m.^(1/3));
    c'est à dire
    y1 = 2.3
    car les m.^(1/3) se simplifient ... non ?
    et je vois pas le sens de faire un polyfit de degré 0... enfin bref je comprends pas =D

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hayabusa Voir le message
    A moins que ça soit "2 virgule 3", qui serait une valeur de k_1 à tester c'est ça ?
    car les m.^(1/3) se simplifient ... non ?
    Oui c'est bien 2 "virgule" 3, et c'est bien pour simplifier
    Citation Envoyé par Hayabusa Voir le message
    et je vois pas le sens de faire un polyfit de degré 0... enfin bref je comprends pas
    Maintenant que tu le dis, c'est pas faux, un simple mean(y1) suffit.

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 103
    Points : 49
    Points
    49
    Par défaut
    mais alors j'ai juste y1 = 2.3 et p = 2.3 ^^ et je vois pas trop en quoi ça m'aide :p

  8. #8
    Invité
    Invité(e)
    Par défaut
    2.3 c'etait juste pour l'exemple, la ligne E = 2.3./(m.^(1/3)); est à retirer bien entendu.

Discussions similaires

  1. Approximation polynomiale d'un nuage de points
    Par kurul1 dans le forum Signal
    Réponses: 3
    Dernier message: 27/04/2012, 16h40
  2. [XL-2010] Régression polynomiale de degré 2
    Par cedji dans le forum Excel
    Réponses: 1
    Dernier message: 04/11/2011, 14h43
  3. Approximation polynomiale d'un ensemble de points
    Par ealrann dans le forum Mathématiques
    Réponses: 15
    Dernier message: 01/01/2011, 22h20
  4. [Débutant] approximation polynomiale d'une fonction
    Par sarita2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 13/03/2010, 14h00
  5. methode d'approximation polynomiale
    Par sylvain.cool dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 11/07/2007, 00h25

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