Benutzung auf eigene Gefahr ! |
Beschreibung |
Interpoliert einen Wert t zwischen n Werten mit einem Interpolationspolynom n-1 Grades nach dem Verfahren von Newton |
VBA-Quelltext |
' Die Funktion untersucht die übergebenen Arrays und ermittelt ' aus n Elementen von [Zeit] und [Werte] ein Polynom n-1 Grades, ' setzt [t] ein und gibt den interpolierten Wert zurück Public Function Interpolation(Zeit, Werte, t As Double) As Double Dim i As Long, j As Long ' Interpolation nach Newton For i = LBound(Werte) To UBound(Werte) For j = UBound(Werte) To i + 1 Step -1 Werte(j) = (Werte(j) - Werte(j - 1)) / (Zeit(j) - Zeit(j - i - 1)) Next j Next i ' Hornerschema anwenden, um Interpolationspolynom auszuwerten Interpolation = 0 For i = UBound(Werte) To LBound(Werte) Step -1 Interpolation = Interpolation * (t - Zeit(i)) + Werte(i) Next i End Function ' Diese Funktion arbeitet nur In Excel und wird als Tabellenfunktion eingesetzt Public Function Interpolation(ZeitBereich As Range, WertBereich As Range, t As Double) As Double Dim i As Long, j As Long, Werte() As Double, n As Long n = WertBereich.Cells.Count ReDim Werte(1 To n) For i = 1 To n Werte(i) = WertBereich(i) Next i ' Interpolation nach Newton For i = 1 To n For j = n To i + 1 Step -1 Werte(j) = (Werte(j) - Werte(j - 1)) / (ZeitBereich(j) - ZeitBereich(j - i)) Next j Next i ' Hornerschema anwenden, um Interpolationspolynom auszuwerten Interpolation = 0 For i = n To 1 Step -1 Interpolation = Interpolation * (t - ZeitBereich(i)) + Werte(i) Next i End Function |
Argumente der Funktion/Prozedur |
|
Anwendungsbeispiel(e)... |
Siehe mein Beitrag Einsatz von Klassenmodulen |
Hinweis |
Hier sind zwei Funktionen angegeben:
|