Besoin d'un code vb de fonction d'interpolation non linéaire pour prévisions [Résolu]

cs_tchanou
Messages postés
3
Date d'inscription
mercredi 23 juin 2004
Dernière intervention
23 août 2005
- 19 août 2005 à 11:15 - Dernière réponse : cs_Deuxfleurs
Messages postés
19
Date d'inscription
vendredi 16 janvier 2004
Derniè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)).

Merci d'avance.
Afficher la suite 

1 réponse

Meilleure réponse
cs_Deuxfleurs
Messages postés
19
Date d'inscription
vendredi 16 janvier 2004
Dernière intervention
9 mars 2006
- 19 août 2005 à 11:59
3
Merci
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

Merci cs_Deuxfleurs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.