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 d'une fonction


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut Interpolation d'une fonction
    salut,

    j'ai le problème suivant :

    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    beta=0:0.1:90;
    beta=beta.*pi/180; %conversion en radian
     
    ws = 2 * pi * 60;
    C = 1/(15*ws);
    L = 2.56/ws;
    w0 = 1/sqrt(L*C);
    nu=wo/ws;
    eta = w0 / ws;
    S = 1 / ( 1 - 1 / eta^2 );
     
    Ceff = 1 ./ (1./C - 4./pi .* ( 1./(2.*C) .* S .* (beta + sin(2.*beta)./2) + ws.^2 .* L .* S.^2 .* (cos(beta)).^2 .* ( tan(beta) - nu.*tan(nu.*beta) ) ) );
    plot(beta,Ceff);
    Je veux interpoler cette fonction. Donc je vais dans tools, basic fitting, je choisis le degré 9 et je copie le polynome dans une fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function y = poly_Ceff(x)
     
    y=-0.0033*x.^9+0.023*x.^8-0.069*x.^7+0.11*x.^6-0.092*x.^5+0.045*x.^4-0.013*x.^3+0.0017*x.^2-(9.8e-5)*x+0.00018;
    Et pourtant lorsque je veux vérifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    hold on;
    plot(beta,poly_Ceff(beta),'r');
    je ne trouve pas du tout le même graph :'(

    Quelqu'un aurait une explication ?
    J'obtiens le meme polynome en utilisant la fonction polyfit...

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Salut, je n'ai pas exécuté ton prgm mais ton résultat ne m'étonne pas du tout. Je pense que tu dois avoir un pb de bord : pour augmenter la précision de l'interpolation, tout le monde pense qu'il faut augmenter l'ordre du polynome (égalité entre f et P, entre f' et P', entre f'' et P'' etc...) mais plus tu montes dans l'ordre et plus les "bosses" de ton polynomes seront grandes.
    Une solution consiste donc à ne pas augmenter l'ordre du polynome mais plutôt à choisir judicieusement ses points d'interpolation. Pour cela, utilise les polynomes de Chebychef qui place les points sur les extrémités de ton segment (si tu interpoles sur [-1 1] je crois que ces polynomes ont 90 % des points d'interpolations proches de -1 et 1). Je ne sais pas si j'ai été clair...
    Ton pb est plus d'ordre numérique que de programation.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut
    oui je connaissais le pb des effets de bord. J'ai choisi le degré de mon polynôme en comparant les restes. Quand les restes cessent de décroître je considère que j'ai atteint le degré optimal.

    C'est une bonne facon de faire?

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut
    bon en fait j'ai trouvé le probleme.

    Il faut utiliser polyfit et un affichage en format long pour avoir plus de précision.

    Normal si je vais à x^9 il faut des coefficients tres précis et l'affichage par defaut ne va pas en dessous de 10e-4.

    avec des coefficients en format long ca passe ^^


    merci du coup de main en tout cas

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    OK, je ne suis pas sûr de t'avoir été d'une grande aide, mais bon...ton pb est résolu.

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

Discussions similaires

  1. [Débutant] Interpolation d'une fonction à 2 variables
    Par matlab4 dans le forum MATLAB
    Réponses: 7
    Dernier message: 26/06/2015, 10h32
  2. [XL-2003] Fonction d'interpolation d'une série
    Par Jaq.des dans le forum Excel
    Réponses: 2
    Dernier message: 11/01/2013, 14h54
  3. Une Fonction d'interpolation.
    Par issamomassi dans le forum Windows Forms
    Réponses: 0
    Dernier message: 16/04/2010, 11h57
  4. Interpolation par une fonction
    Par n4pkin dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/04/2010, 11h18
  5. Interpolation dans une fonction [ode]
    Par nanox63 dans le forum MATLAB
    Réponses: 6
    Dernier message: 17/04/2009, 11h32

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