cs_tchanou
Messages postés3Date d'inscriptionmercredi 23 juin 2004StatutMembreDernière intervention23 août 2005
-
19 août 2005 à 11:15
cs_Deuxfleurs
Messages postés19Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 9 mars 2006
-
19 août 2005 à 11:59
Bonjour à tous.
J'ai un besoin urgent et je sollicite votre aide.
J'ai besoin d'un code vb (une fonction,...) qui me permette de faire un interpolation non linéaire (polynômiale degré 2,3,...) sur un ensemble de valeurs numériques.
J'ai besoin que ce code me permette, à partir des couples de valeur (xi,yi) données, de déduire une valeur yn+1 inconnue correspondant à une donnée xn+1 connue (couple (xn+1,yn+1)).
cs_Deuxfleurs
Messages postés19Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention 9 mars 20061 19 août 2005 à 11:59
La plus simple des interpolations est l'interpolation polynomiale de Lagrange. Le degré du polynome interpolateur est à alors inférieur ou égal au nombre de points à interpoler.
Si xi et yi sont tes tableaux respectivement d'abscisses et d'ordonnées et x le point ou tu veux évaluer ton polynome, l'algorithme de l'interpolation de Lagrange ressemblera à ça :
' Calcul des polynomes de Lagrange en x
For i = 0 To UBound(xi)
li(i) = 1
For j = 0 To UBound(xi)
If i <> j Then
li(i) = li(i) * (x - xi(i)) / (xi(i) - xi(j))
End If
Next
Next
' Calcul du résultat
result = 0
For i = 0 To UBound(xi)
result = result + yi(i) * li(i)
Next