Function DividedDifferences(xArray As Variant, yArray As Variant) As Variant
Dim n As Integer
Dim i As Integer, j As Integer
n = UBound(xArray)
Dim table() As Double
ReDim table(n, n)
' 初始化差商表
For i = 0 To n - 1
table(i, 0) = yArray(i)
Next i
' 计算差商
For j = 1 To n - 1
For i = 0 To n - j - 1
table(i, j) = (table(i + 1, j - 1) - table(i, j - 1)) / (xArray(i + j) - xArray(i))
Next i
Next j
' 返回差商表的第一行
Dim differences() As Double
ReDim differences(n)
For i = 0 To n - 1
differences(i) = table(0, i)
Next i
' 确保返回的是Variant类型,兼容所有调用场景
DividedDifferences = differences
End Function
Function NewtonInterpolation(xArray() As Variant, yArray() As Variant, x As