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 Lagrange


Sujet :

MATLAB

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut interpolation Lagrange
    bonjour, j'ai besoin de votre aide à tous pour mon projet matlab. je dois écrire une fonction matlab qui calcule les coefficients du polynome d'interpolation L(x) de lagrange sachant que :

    L(x) = somme des bi.Pi(x) avec bi=b(xi) la fonction à interpoler (qui est sinus )et Pi(x)= produit des (x-xj)/(xi-xj) = 1 pour tout i et 0 quand j différent de j.

    j'ai déja une fonction qui me calcule le polynome, mais après je ne sais pas quoi faire. voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function P = lagrange(xi,n,f)
     
    %xi= vecteur (intervalle)
    for i=1:n,
       R=[0 1];%R est un polynome
       for j=1:n, 
          if j==i,
             F(j,:)=[0 1] ; % F est un polynome
          else
             F(j,:)=[1 -xi(j)]/(xi(i)-xi(j));
          end
          R = conv(F(j,:),R)
       end
       L(i,:) = R % L est un polynome
    end
     
    for i=1:n,
       S(i,:) = L(i,: )*f(xi(i))%termes du polynome de lag: P(x)=som Li(x)fi
    end
     
    P = sum(S) %polynome final d'interpolation
     
    return

    merci pour votre aide!!!

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !

    As-tu fait exprès de choisir une des plus mauvaises méthodes d'interpolation ? Voir Wikipedia:

    Le phénomène de Runge met en lumière le fait que l'interpolation polynomiale n'est pas bien adaptée à l'approximation de fonctions.
    Jean-Marc Blanc

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 489
    Par défaut
    Bonjour,

    "une des plus mauvaises méthodes d'interpolation" ?
    Ben voyons.
    Je laisse passer le (très polémique) "voir Wikipédia" en guise d'explication sérieuse et complète... en remarquant toutefois que la ligne précédent celle que tu sites, Jean-Marc, contredit cette même remarque.

    Soyons clair, on ne peut pas généraliser; le "bon" ou "mauvais" comportement de l'interpolation (c.a.d: l'apparition du phénomène de Runge ou non) dépend de la fonction et des points de collocation utilisés; c.f. l'exemple archi-classique discuté là:
    http://sonia_madani.club.fr/Cloaque/.../lagrange.html

    Pour en revenir à la question initiale, il faudrait s'assurer de ce qui est entendu par "calculer les coefficients du polynôme d'interpolation L(x) de Lagrange". Peut-être s'agit-il simplement de redévelopper l'expression du polynôme de Lagrange et d'extraire les coefficients devant chaque monôme de sa représentation sous la forme a0 + a1*x + a2*x^2 + a3*x^3 ?

    Ehouarn

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut à tous !

    Essayez par exemple avec la caractéristique B-H d'un matériau ferromagnétique ou la caractéristique U-I d'une diode.

    Jean-Marc Blanc

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 1
    Par défaut
    Citation Envoyé par GM2Ppower Voir le message
    bonjour, j'ai besoin de votre aide à tous pour mon projet matlab. je dois écrire une fonction matlab qui calcule les coefficients du polynome d'interpolation L(x) de lagrange sachant que :

    L(x) = somme des bi.Pi(x) avec bi=b(xi) la fonction à interpoler (qui est sinus )et Pi(x)= produit des (x-xj)/(xi-xj) = 1 pour tout i et 0 quand j différent de j.

    j'ai déja une fonction qui me calcule le polynome, mais après je ne sais pas quoi faire. voici ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function P = lagrange(xi,n,f)
     
    %xi= vecteur (intervalle)
    for i=1:n,
       R=[0 1];%R est un polynome
       for j=1:n, 
          if j==i,
             F(j,:)=[0 1] ; % F est un polynome
          else
             F(j,:)=[1 -xi(j)]/(xi(i)-xi(j));
          end
          R = conv(F(j,:),R)
       end
       L(i,:) = R % L est un polynome
    end
     
    for i=1:n,
       S(i,:) = L(i,: )*f(xi(i))%termes du polynome de lag: P(x)=som Li(x)fi
    end
     
    P = sum(S) %polynome final d'interpolation
     
    return

    merci pour votre aide!!!
    Voilà le code pour réaliser une interpolation de Lagrange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    clear, close all
    clc
     
    % a=[0;1];
    % b=[1;-1];
    % c=[2;2];
    % d=[3;-2];
    % points = [a b c d];
     
    xDebut=-1;
    xFin=1;
    N=100;
    k=linspace(xDebut,xFin,N);
    abscisse=cos(((2.*k)-1)*(pi/2*N));
    ordonnee=(1./(1+25.*(abscisse).^2));
    points=[abscisse ; ordonnee]
     
    xi=[];
    xj=[];
     
    for i=1:length(points)
        xi=[xi points(1, i)];
    end
     
    for j=1:length(points)
        temp=[];
        for i=1:length(xi)
            if i~=j
                temp=[temp ; points(1, i)];
            end
        end
        xj=[xj  temp];
    end
     
    polynomes=[];
    for i=1:length(xi)
        Coef=1;
        racines=[];
        for j=1:size(xj, 1)
            racines = [racines xj(j, i)];
            K=xi(1,i)-xj(j,i);
            Coef=Coef*K;
        end
        polynomes = [polynomes ; poly(racines).*(1/Coef)];
    end
     
     
    lagrange=[];
    for i=1:length(xi)
        lagrange=[lagrange ; points(2, i).*polynomes(i, :)];
    end
     
    interpolation = sum(lagrange);
     
    x=linspace(xDebut,xFin);
    p=polyval(interpolation,x);
     
    figure
    hold all
    plot(x, p)
    plot(abscisse, ordonnee)
    scatter(points(1,:),points(2,:))

Discussions similaires

  1. [Débutant] interpolation de Lagrange
    Par mari0marie dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/02/2012, 16h19
  2. Itération interpolation Lagrange
    Par nicolala dans le forum Fortran
    Réponses: 0
    Dernier message: 14/02/2010, 14h06
  3. interpolation de lagrange + extremum + passage par une valeur
    Par john stedd dans le forum Mathématiques
    Réponses: 7
    Dernier message: 25/02/2009, 10h22
  4. Interpolation polynômiale de Lagrange en Pascal
    Par ninie37 dans le forum Pascal
    Réponses: 5
    Dernier message: 26/11/2006, 23h32
  5. Interpolation de Lagrange
    Par jerev dans le forum Mathématiques
    Réponses: 7
    Dernier message: 14/07/2006, 12h11

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