Sub ИОМЧ()
Const n = 8, e = 0.001, m = n - 1
Dim x(n) As Double, y(n) As Double, i As Integer, xcp As Double, S As Double, H(n) As Double, u(n) As Double, k As Integer, _
P(m, n) As Double, j As Integer, c(n) As Double, dy(0) As Double
For i = 1 To n: x(i) = Cells(i, 1): y(i) = Cells(i, 2): Next i: x(0) = 5.3
xcp = (x(1) + x(n)) / 2: S = x(2) - x(1): H(0) = n
For k = 0 To n
u(k) = (x(k) - xcp) / S: P(0, k) = 1: P(1, k) = u(k)
If k > 0 Then c(0) = c(0) + y(k) * P(0, k) / H(0)
Next k
y(0) = c(0) * P(0, 0)
For j = 1 To m
H(j) = H(j - 1) * j ^ 2 * (n ^ 2 - j ^ 2) / (4 * (2 * j - 1) * (2 * j + 1))
If j < m Then
For k = 0 To n: P(j + 1, k) = u(k) * P(j, k) - H(j) / H(j - 1) * P(j - 1, k): Next k
End If
For k = 1 To n: c(j) = c(j) + y(k) * P(j, k) / H(j): Next k
dy(0) = c(j) * P(j, 0)
If Abs(dy(0)) < e Then Exit For
y(0) = y(0) + dy(0)
Next j
Debug.Print y(0), j - 1, Abs(dy(0))
End Sub