2016-05-29 11 views
0

J'essaie d'interpoler une série de points de données en utilisant le deuxième polinomial lagrange. ayantPolynôme de Lagrange: résultats d'interpolation inattendus

point1:(5;100) 
point2: (9;17) 
point3: (12;17) 

et la formule

y=(x-x2)*(x-x3)/(x1-x2)*(x1-x3)*y1+ 
    (x-x1)*(x-x3)/(x2-x1)*(x2-x3)*y2+ 
    (x-x1)*(x-x2)/(x3-x1)*(x3-x2)*y3 

Il est évident qu'une fonction quadratique peut ne pas correspondre aux données .. Il est juste un exemple.

Mais je me demande pourquoi la valeur est étonnamment élevée pour x=7. Si je ne me trompe pas, c'est y=1500.

La formule ci-dessus est-elle correcte?

+1

Dans votre exemple, deux points ont la même coordonnée x. Est-ce une faute de frappe? – lisyarus

+0

Je vote pour clore cette question hors-sujet car il s'agit de [math.se] au lieu de programmation ou de développement logiciel. – Pang

+0

Il s'agit de l'interpolation de DATA. Alors dites-moi comment interpoler une série chronologique? Sur une feuille de papier? Sûrement c'est une question de programmation. Et pas aussi abstrait pour le mettre en maths. IMO – Jan

Répondre

1

réponse:

En résumé:

  1. Pour la même x, vous ne pouvez pas avoir deux valeurs différentes y; Cela viole la définition d'une fonction.
  2. il manque des parenthèses dans votre formule! Pas (x-x2)*(x-x3)/(x1-x2)*(x1-x3), mais ((x-x2)*(x-x3))/((x1-x2)*(x1-x3)).
  3. retour à 1>, notez que la formule d'interpolation a x3-x2 dans le dénominateur. Si vous avez des valeurs liées, vous diviserez 0.
  4. Comment pouvez-vous effectuer une interpolation sur un si petit ensemble de données? Pourtant, vous demandez une interpolation quadratique!

suivi:

1) fixée elle. Accidentellement, j'ai changé toutes les valeurs x et y. Les points étaient donc au format (y, x).

Ah, haha, pas étonnant.

2) Merci! Les crochets ont amélioré l'approximation. En ce qui concerne les parenthèses manquantes: J'ai obtenu la formule de la réponse acceptée ici: Best way to find Quadratic Regression Curve in Java, mais je ne comprends pas cette règle.

C'est l'interpolation célèbre, mais fondamentale: Interpolation de Lagrange. Vous pouvez vérifier sa formule au Wolfram mathworld: Lagrange Interpolating Polynomial. Je ne vous donne pas de lien wikipedia parce que celui-ci semble plus beau.

Le lien que vous avez trouvé doit contenir une faute de frappe. Puisque vous avez suggéré une modification pour corriger cela, j'espère que cela sera bientôt approuvé.

3) Il s'agit d'une série chronologique significative (qui répond à votre 4ème question), il est donc impossible d'avoir des valeurs liées.

Oui, les séries temporelles n'auront pas de valeurs d'égalité.

+0

1) l'a fixé. Accidentellement, j'ai changé toutes les valeurs x et y. Les points étaient donc au format (y, x). 2) Merci! Les crochets ont amélioré l'approximation. 3) C'est une (beaucoup plus grande (qui répond à votre 4ème question) série chronologique.Il est donc impossible d'avoir des valeurs liées – Jan

+0

concernant les parenthèses manquantes: J'ai obtenu la formule de la réponse acceptée ici: http://stackoverflow.com/questions/2075013/best-way-find-quadratique-regression-curve-in-java Mais je ne peux pas commenter (<50rep). (btw: je ne comprends pas cette règle ..) Edited it – Jan

+0

rejeté? n'est-ce pas accepté? puisque je vois la réponse mise à jour .. mais je ne m'inquiète pas: D – Jan

1

la formule devrait être correcte. Mais quand x = 17, vous avez deux valeurs y différentes, c'est peut-être la cause du problème.vous pouvez essayer de changer l'anthor x.

+0

Avec des valeurs y allant jusqu'à 50, le troisième point ne semble pas influencer la valeur y à 7. Les valeurs y supérieures à 50 semblent influencer les valeurs à x = 7 proportionnel (y_3- = 5 -> y- = 5) peut-être que c'est la nature des polynômes lagrange 2ème degré – Jan