Function Interpoly(x() As Double, y() As Double, Xp As Double) As Double ' INTERPOLATION POLYNOMIALE de même degré que le nb de points données (x,y) ' par la methode de Aitken. Renvoi yp pour xp donné quelconque. ' Paramètres Dim n As Long, j As Long, i As Long ' Algo n = UBound(y) For j = 1 To n - 1 For i = j + 1 To n y(i) = (y(j) * (x(i) - Xp) - y(i) * (x(j) - Xp)) / (x(i) - x(j)) Next i Next j ' Renvoi Interpoly = y(n) End Function Sub Test() ' TEST (avec l'équation particulière y=x^2) ' Paramètres Dim ValeurX() As Double Dim ValeurY() As Double Dim Tempo1() As String Dim Tempo2() As String Dim Nb As Long, t As Long Dim Xp As Double ' Valeurs connues Tempo1 = Split("1 2 4 8") ' les Xi Tempo2 = Split("1 4 16 64") ' les Yi ' Conversion des valeurs en numériques Nb = UBound(Tempo1) ReDim ValeurX(Nb), ValeurY(Nb) For t = 1 To Nb ValeurX(t) = CDbl(Tempo1(t - 1)) ValeurY(t) = CDbl(Tempo2(t - 1)) Next t ' Valeur interpolée pour xp = 10 Xp = 10 MsgBox "pour x=" & Xp & " y=" & Interpoly(ValeurX, ValeurY, Xp) End Sub
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.