9
votes

Interpolation de Lagrange en Python

Je veux interpoler un polynôme avec la méthode Lagrange, mais ce code ne fonctionne pas: xxx

j'ai suivi wikipedia , mais quand je l'exécute, je reçois une indexerror à la ligne 3!

Merci


1 commentaires

Je serais reconnaissant si les descentes expliquent le bowvote ...


4 Réponses :


5
votes

Vérifiez les indices, Wikipedia dit "K + 1 Points de données", mais vous réglez k = len (x_values) où il devrait être k = len (x_values) - 1 si vous avez suivi la formule exactement.


3 commentaires

OK, et pourquoi si je le fais: interpolate ([1, 2, 3], [1, 4, 9]) Il renvoie -0.5x ^ 2 + 1.5x ? Jetez un coup d'œil à ceci: i.imgur.com/mkatz.gif


@RUBIK: Désolé, mais je ne peux pas vous aider avec un problème aussi spécifique sans connaître l'algorithme d'interpolation (et je ne le lirais pas). Vérifiez à nouveau votre logique ou recherchez une implémentation existante. Si vous postez plus de code sur la manière dont vous appliquez l'interpolation (par exemple, la définition / la valeur initiale de x est manquante dans votre question), alors quelqu'un pourrait être capable de vous aider davantage.


J'utilise pypol ( pypol.altervista.org ) et x est monôme (x = 1) (< Un href = "http://pypol.altervista.org/funcks.html#pypol.monomique" rel = "nofollow noreferrer"> pypol.altervista.org/fonctions.html#pypol.monomique )



10
votes

Essayez xxx

Vous pouvez le confirmer comme suit: xxx

donc le résultat est la valeur interpolée en fonction du polynôme qui va à travers les points donnés. Dans ce cas, les 3 points définissent une parabole et les 3 premiers tests montrent que l'indiqué Y_Value est renvoyé pour le X_Value donné.


1 commentaires

Pour que cela fonctionne pour travailler dans python3: Pip3 Installez le futur Vous pouvez ajouter le code: de passée.Builtins importation Réduire, Xrange; Opérateur d'importation



7
votes

Je suis presque une décennie en retard à la fête, mais j'ai trouvé cela à la recherche d'une simple mise en œuvre de l'interpolation de Lagrange. La réponse de Smichr est excellente, mais le python est un peu dépassé et je voulais aussi quelque chose qui fonctionnerait bien avec np.ndarrays afin que je puisse faire un complot facile. Peut-être que d'autres trouveront cela utile: xxx


2 commentaires

Quelqu'un peut-il expliquer ce que l'intrigue de xx vs lp.basis (xx, 0), (xx, 1) .... (xx, 3) signifie?


Il effectue des fonctions de base du polynôme de Lagrange, reconstruisant une figure comme celle-ci: en.wikipedia. org / wiki / fichier: lagrange_polynomial.svg



0
votes

Ce code est compatible avec python 3 : xxx


0 commentaires