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

Messages postés
3
Date d'inscription
mercredi 23 juin 2004
Dernière intervention
23 août 2005
- - 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
Messages postés
19
Date d'inscription
vendredi 16 janvier 2004
Dernière intervention
9 mars 2006
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci 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.